From 64994d32a350f73827ecb44e2f5ff0a52548218e Mon Sep 17 00:00:00 2001 From: Lee Nayeon Date: Mon, 10 Aug 2026 00:13:46 +0900 Subject: [PATCH 01/11] =?UTF-8?q?docs:=20#487=20fastfile=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ByeBoo-iOS/fastlane/Fastfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/ByeBoo-iOS/fastlane/Fastfile b/ByeBoo-iOS/fastlane/Fastfile index 66dfbbdc..339399e2 100644 --- a/ByeBoo-iOS/fastlane/Fastfile +++ b/ByeBoo-iOS/fastlane/Fastfile @@ -23,18 +23,20 @@ SCHEME = "ByeBoo-iOS" platform :ios do - def notify_discord_success(lane_name) + def notify_discord_success(lane_name, build_number) + version = get_version_number(xcodeproj: XCODEPROJ) sh( "curl -H 'Content-Type: application/json' " + - "-d '{\"content\": \"๐Ÿ’Ÿ๐ŸŽ **#{lane_name}** ์„ฑ๊ณต! ๐ŸŽ‰\"}' " + + "-d '{\"content\": \"๐Ÿ’Ÿ๐ŸŽ **#{lane_name}** ์„ฑ๊ณต! ๐ŸŽ‰\\niOS #{version} (#{build_number})\"}' " + "#{ENV['DISCORD_URL']}" ) end def notify_discord_failure(lane_name, error_message) + safe_message = error_message.to_s.gsub('"', "'").gsub("\n", " ") sh( "curl -H 'Content-Type: application/json' " + - "-d '{\"content\": \"๐Ÿค”๐ŸŒ€ **#{lane_name}** ์‹คํŒจ\\n```#{error_message.to_s.gsub('"', "'").gsub("\n", " ")}```\"}' " + + "-d '{\"content\": \"๐Ÿค”๐ŸŒ€ **#{lane_name}** ์‹คํŒจ\\n```#{safe_message}```\"}' " + "#{ENV['DISCORD_URL']}" ) end @@ -56,11 +58,10 @@ platform :ios do latest_build + 1 end - desc "Push a new beta build to TestFlight" lane :upload_testflight do begin - iprepare_ci_and_signing + prepare_ci_and_signing build_number = next_build_number increment_build_number( @@ -104,13 +105,16 @@ platform :ios do skip_screenshots: true, skip_metadata: true, force: true, - submit_for_review: true, # ์ž๋™์œผ๋กœ ์‹ฌ์‚ฌ ์ œ์ถœ - automatic_release: true, # ์‹ฌ์‚ฌ ํ†ต๊ณผ ํ›„ ์ž๋™ ์ถœ์‹œ + submit_for_review: true, # ์ž๋™์œผ๋กœ ์‹ฌ์‚ฌ ์ œ์ถœ + automatic_release: true, # ์‹ฌ์‚ฌ ํ†ต๊ณผ ํ›„ ์ž๋™ ์ถœ์‹œ precheck_include_in_app_purchases: false, submission_information: { - add_id_info_uses_idfa: false, # admob ์ถ”๊ฐ€ ์‹œ true๋กœ ๋ณ€๊ฒฝ - export_compliance_uses_encryption: false + add_id_info_uses_idfa: false, # AdMob ์ถ”๊ฐ€ ์‹œ true๋กœ ๋ณ€๊ฒฝ + export_compliance_uses_encryption: false } + ) + + notify_discord_success("App Store ๋ฐฐํฌ", build_number) rescue => e notify_discord_failure("App Store ๋ฐฐํฌ", e.message) raise e From 8ea99f27529f3af5196cbad7dbfe150eb23c739d Mon Sep 17 00:00:00 2001 From: Lee Nayeon Date: Tue, 18 Aug 2026 16:03:32 +0900 Subject: [PATCH 02/11] =?UTF-8?q?docs:=20#490=20releasenote=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20apikey=20=EB=B0=A9?= =?UTF-8?q?=EC=8B=9D=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ByeBoo-iOS/fastlane/Fastfile | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/ByeBoo-iOS/fastlane/Fastfile b/ByeBoo-iOS/fastlane/Fastfile index 339399e2..753c3a2c 100644 --- a/ByeBoo-iOS/fastlane/Fastfile +++ b/ByeBoo-iOS/fastlane/Fastfile @@ -23,6 +23,21 @@ SCHEME = "ByeBoo-iOS" platform :ios do + def prepare_ci_and_signing + app_store_connect_api_key( + key_id: ENV['APP_STORE_CONNECT_API_KEY_KEY_ID'], + issuer_id: ENV['APP_STORE_CONNECT_API_KEY_ISSUER_ID'], + key_content: ENV['APP_STORE_CONNECT_API_KEY_CONTENT'], + is_key_content_base64: true + ) + setup_ci + match(type: "appstore") + update_project_team( + path: XCODEPROJ, + teamid: ENV['TEAM_ID'] + ) + end + def notify_discord_success(lane_name, build_number) version = get_version_number(xcodeproj: XCODEPROJ) sh( @@ -41,15 +56,6 @@ platform :ios do ) end - def prepare_ci_and_signing - setup_ci - match(type: "appstore") - update_project_team( - path: XCODEPROJ, - teamid: ENV['TEAM_ID'] - ) - end - def next_build_number latest_build = latest_testflight_build_number( app_identifier: ENV['APP_IDENTIFIER'], @@ -103,7 +109,8 @@ platform :ios do upload_to_app_store( skip_screenshots: true, - skip_metadata: true, + skip_metadata: false, + skip_app_version_update: true, force: true, submit_for_review: true, # ์ž๋™์œผ๋กœ ์‹ฌ์‚ฌ ์ œ์ถœ automatic_release: true, # ์‹ฌ์‚ฌ ํ†ต๊ณผ ํ›„ ์ž๋™ ์ถœ์‹œ From 51df8e19f76b2735014bd0415889e37c4cee080d Mon Sep 17 00:00:00 2001 From: Lee Nayeon Date: Tue, 18 Aug 2026 16:15:17 +0900 Subject: [PATCH 03/11] =?UTF-8?q?docs:=20#490=201.2.4=20=EB=A6=B4=EB=A6=AC?= =?UTF-8?q?=EC=A6=88=EB=85=B8=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ByeBoo-iOS/fastlane/metadata/ko/release_notes.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 ByeBoo-iOS/fastlane/metadata/ko/release_notes.txt diff --git a/ByeBoo-iOS/fastlane/metadata/ko/release_notes.txt b/ByeBoo-iOS/fastlane/metadata/ko/release_notes.txt new file mode 100644 index 00000000..4cb41473 --- /dev/null +++ b/ByeBoo-iOS/fastlane/metadata/ko/release_notes.txt @@ -0,0 +1,2 @@ +- ๊ณตํ†ต ์—ฌ์ • ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋Œ“๊ธ€๊ณผ ์ข‹์•„์š”๋ฅผ ๋‚จ๊ธฐ๋ฉฐ ์ด๋ณ„์˜ ์•„ํ””์„ ๊ณต์œ ํ•˜๊ณ , ์„œ๋กœ ์œ„๋กœํ•  ์ˆ˜ ์žˆ์–ด์š”! +- ๋ฉ”์ธํŽ˜์ด์ง€์— ์•Œ๋ฆผํ•จ์ด ์ถ”๊ฐ€๋์–ด์š”! ์ด์ œ ๋ณด๋ฆฌ๋ฅผ ๋” ์ž์ฃผ ๋งŒ๋‚  ์ˆ˜ ์žˆ์–ด์š”! From 3b40c0e74493f8e5abae6d4667b8b659a63f49c2 Mon Sep 17 00:00:00 2001 From: yeonee Date: Tue, 18 Aug 2026 16:49:21 +0900 Subject: [PATCH 04/11] =?UTF-8?q?feat:=20#491=20=EB=AF=B9=EC=8A=A4?= =?UTF-8?q?=ED=8C=A8=EB=84=90=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/Mixpanel/AlarmEvents.swift | 14 ++++++++++++++ .../Mixpanel/CommonJourneyEvents.swift | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/AlarmEvents.swift diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/AlarmEvents.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/AlarmEvents.swift new file mode 100644 index 00000000..8f98f554 --- /dev/null +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/AlarmEvents.swift @@ -0,0 +1,14 @@ +// +// AlarmEvents.swift +// ByeBoo-iOS +// +// Created by ์ด๋‚˜์—ฐ on 8/18/26. +// + +import Mixpanel + +struct AlarmEvents { + enum Name { + static let alarmMain = "alarm_main" + } +} diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/CommonJourneyEvents.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/CommonJourneyEvents.swift index c58985cf..fc6e0445 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/CommonJourneyEvents.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Mixpanel/CommonJourneyEvents.swift @@ -13,5 +13,7 @@ struct CommonJourneyEvents { static let commonJourneyWriteClick = "common_journey_write_click" static let commonJourneyWriteSuccess = "common_journey_write_success" static let commonJourneyOthersAnswerPageview = "common_journey_others_answer_pageview" + static let commonJourneyComment = "common_journey_comment" + static let commonJourneyLike = "common_journey_like" } } From 88e521afc5a4ef3614839a49814bbd6fa6947244 Mon Sep 17 00:00:00 2001 From: yeonee Date: Tue, 18 Aug 2026 16:49:39 +0900 Subject: [PATCH 05/11] =?UTF-8?q?feat:=20#491=20=EB=AF=B9=EC=8A=A4?= =?UTF-8?q?=ED=8C=A8=EB=84=90=20=EC=8B=AC=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Home/ViewController/NotificationsViewController.swift | 4 ++++ .../ViewController/CommonQuestHistoryViewController.swift | 4 ++++ .../ViewController/CommonQuestMyAnswersViewController.swift | 4 ++++ .../Quest/ViewController/CommonQuestReplyViewController.swift | 4 ++++ .../Quest/ViewController/CommonQuestViewController.swift | 2 ++ 5 files changed, 18 insertions(+) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Home/ViewController/NotificationsViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Home/ViewController/NotificationsViewController.swift index e4281a55..dff7321c 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Home/ViewController/NotificationsViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Home/ViewController/NotificationsViewController.swift @@ -8,6 +8,8 @@ import Combine import UIKit +import Mixpanel + final class NotificationsViewController: BaseViewController { private let rootView = NoticesView() @@ -30,6 +32,8 @@ final class NotificationsViewController: BaseViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) viewModel.action(.viewWillAppear) + + Mixpanel.mainInstance().track(event: AlarmEvents.Name.alarmMain) } override func viewDidLoad() { diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift index aa56c93d..a6b688ae 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift @@ -303,6 +303,8 @@ extension CommonQuestHistoryViewController { case .success(let result): let entity = result.entity self?.rootView.questContentView.updateUI(likeCount: entity.likeCount, isLiked: entity.isLiked) + + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) case .failure(let error): ByeBooLogger.error(error) } @@ -319,6 +321,8 @@ extension CommonQuestHistoryViewController { case .success: ByeBooLogger.debug("๋Œ“๊ธ€ ์ž…๋ ฅ ์„ฑ๊ณต") self.scrollToComment() + + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyComment) case .failure(let error): ByeBooLogger.debug(error) } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift index 67697919..03f79a82 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift @@ -8,6 +8,8 @@ import Combine import UIKit +import Mixpanel + final class CommonQuestMyAnswersViewController: BaseViewController { private let rootView = CommonQuestMyAnswersView() @@ -112,6 +114,8 @@ extension CommonQuestMyAnswersViewController { likeCount: entity.likeCount, isLiked: entity.isLiked ) + + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) case .failure(let error): ByeBooLogger.error(error) } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestReplyViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestReplyViewController.swift index f852d994..991471e9 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestReplyViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestReplyViewController.swift @@ -8,6 +8,8 @@ import Combine import UIKit +import Mixpanel + final class CommonQuestReplyViewController: BaseViewController { private let rootView = CommonQuestReplyView() @@ -106,6 +108,8 @@ extension CommonQuestReplyViewController { case .success: ByeBooLogger.debug("๋‹ต๊ธ€ ์ž…๋ ฅ ์„ฑ๊ณต") self.scrollToComment() + + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyComment) case .failure(let error): ByeBooLogger.debug(error) } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift index 5c322839..0b620031 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift @@ -94,6 +94,8 @@ extension CommonQuestViewController { case .success(let result): let entity = result.entity self?.updateLikeCount(answerID: result.answerID, likeCount: entity.likeCount, isLiked: entity.isLiked) + + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) case .failure(let error): ByeBooLogger.error(error) } From 9ac9d3a2e267dfa93f2731d9575e218f46b28805 Mon Sep 17 00:00:00 2001 From: yeonee Date: Tue, 18 Aug 2026 16:56:08 +0900 Subject: [PATCH 06/11] =?UTF-8?q?chore:=20#491=20=EC=A3=BC=EC=84=9D=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Quest/ViewController/CommonQuestHistoryViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift index a6b688ae..bf8d662e 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift @@ -270,7 +270,7 @@ extension CommonQuestHistoryViewController { rootView.configure( answerID: answerID, question: entity.question, - writtenAt: ServerDateFormatter.shared.relativeTimeString(from: answer.writtenAt) ?? "", //TODO: ViewModel๋กœ ์ˆ˜์ • + writtenAt: ServerDateFormatter.shared.relativeTimeString(from: answer.writtenAt) ?? "", profileIcon: ProfileIcon.image(for: answer.profileIcon) ?? .relievedBadge, nickname: answer.writer, content: answer.content, From 241aa098958d31ee623d51f806d0d82b7e1377dd Mon Sep 17 00:00:00 2001 From: Lee Nayeon Date: Tue, 18 Aug 2026 17:18:22 +0900 Subject: [PATCH 07/11] =?UTF-8?q?docs:=20#490=20=EC=9E=90=EB=8F=99=20?= =?UTF-8?q?=EC=B6=9C=EC=8B=9C=20off,=20=EB=B9=8C=EB=93=9C=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EB=82=A0=EC=A7=9C+=EC=8B=9C=EA=B0=84=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ByeBoo-iOS/fastlane/Fastfile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ByeBoo-iOS/fastlane/Fastfile b/ByeBoo-iOS/fastlane/Fastfile index 753c3a2c..e5c1f042 100644 --- a/ByeBoo-iOS/fastlane/Fastfile +++ b/ByeBoo-iOS/fastlane/Fastfile @@ -56,12 +56,10 @@ platform :ios do ) end + # ๋‚ ์งœ+์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๋นŒ๋“œ ๋ฒˆํ˜ธ (์˜ˆ: 2026081815 -> 2026๋…„ 08์›” 18์ผ 15์‹œ) + # ์žฌ๋ฐฐํฌ ์‹œ์—๋„ ํ•ญ์ƒ ์ด์ „๋ณด๋‹ค ํฐ ๊ฐ’์ด ๋˜๋„๋ก YYMMDDHM์œผ๋กœ ์‚ฌ์šฉ def next_build_number - latest_build = latest_testflight_build_number( - app_identifier: ENV['APP_IDENTIFIER'], - initial_build_number: 0 - ) - latest_build + 1 + Time.now.getlocal("+09:00").strftime("%Y%m%d%H%M").to_i # ํ•œ๊ตญ์‹œ๊ฐ„ ๊ธฐ์ค€ end desc "Push a new beta build to TestFlight" @@ -113,7 +111,7 @@ platform :ios do skip_app_version_update: true, force: true, submit_for_review: true, # ์ž๋™์œผ๋กœ ์‹ฌ์‚ฌ ์ œ์ถœ - automatic_release: true, # ์‹ฌ์‚ฌ ํ†ต๊ณผ ํ›„ ์ž๋™ ์ถœ์‹œ + automatic_release: false, precheck_include_in_app_purchases: false, submission_information: { add_id_info_uses_idfa: false, # AdMob ์ถ”๊ฐ€ ์‹œ true๋กœ ๋ณ€๊ฒฝ From 4a871f7c3c066c14fabf0eba2902ef474948a66c Mon Sep 17 00:00:00 2001 From: yeonee Date: Tue, 18 Aug 2026 17:18:57 +0900 Subject: [PATCH 08/11] =?UTF-8?q?setting:=20#490=20=EB=B2=84=EC=A0=84=201.?= =?UTF-8?q?2.4=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj b/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj index de2d12b6..ca1c6493 100644 --- a/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj +++ b/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj @@ -328,7 +328,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.3.0; + MARKETING_VERSION = 1.2.4; PRODUCT_BUNDLE_IDENTIFIER = "com.heartz.ByeBoo-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -371,7 +371,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.3.0; + MARKETING_VERSION = 1.2.4; PRODUCT_BUNDLE_IDENTIFIER = "com.heartz.ByeBoo-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; From 3e8df865a55d1f1c6b682ef9fa1b196ea5c415ef Mon Sep 17 00:00:00 2001 From: yeonee Date: Tue, 18 Aug 2026 17:32:39 +0900 Subject: [PATCH 09/11] =?UTF-8?q?refactor:=20#494=20=EC=A2=8B=EC=95=84?= =?UTF-8?q?=EC=9A=94=20true=EC=9D=BC=20=EB=95=8C=EB=A7=8C=20=EC=A7=91?= =?UTF-8?q?=EA=B3=84=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewController/CommonQuestHistoryViewController.swift | 4 +++- .../ViewController/CommonQuestMyAnswersViewController.swift | 4 +++- .../Quest/ViewController/CommonQuestViewController.swift | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift index bf8d662e..6fbe4710 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestHistoryViewController.swift @@ -304,7 +304,9 @@ extension CommonQuestHistoryViewController { let entity = result.entity self?.rootView.questContentView.updateUI(likeCount: entity.likeCount, isLiked: entity.isLiked) - Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) + if entity.isLiked { + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) + } case .failure(let error): ByeBooLogger.error(error) } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift index 03f79a82..a14ef3d8 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestMyAnswersViewController.swift @@ -115,7 +115,9 @@ extension CommonQuestMyAnswersViewController { isLiked: entity.isLiked ) - Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) + if entity.isLiked { + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) + } case .failure(let error): ByeBooLogger.error(error) } diff --git a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift index 0b620031..3c450872 100644 --- a/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift +++ b/ByeBoo-iOS/ByeBoo-iOS/Presentation/Feature/Quest/ViewController/CommonQuestViewController.swift @@ -95,7 +95,9 @@ extension CommonQuestViewController { let entity = result.entity self?.updateLikeCount(answerID: result.answerID, likeCount: entity.likeCount, isLiked: entity.isLiked) - Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) + if entity.isLiked { + Mixpanel.mainInstance().track(event: CommonJourneyEvents.Name.commonJourneyLike) + } case .failure(let error): ByeBooLogger.error(error) } From 435b0de255f8ba507f707312e02c41f775917371 Mon Sep 17 00:00:00 2001 From: Lee Nayeon Date: Tue, 18 Aug 2026 17:35:23 +0900 Subject: [PATCH 10/11] =?UTF-8?q?docs:=20#494=20yml=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/fastlane_ci.yml | 34 ++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/.github/workflows/fastlane_ci.yml b/.github/workflows/fastlane_ci.yml index f401f7e5..89853d8f 100644 --- a/.github/workflows/fastlane_ci.yml +++ b/.github/workflows/fastlane_ci.yml @@ -1,9 +1,12 @@ name: Fastlane CI on: + push: + branches: + - release pull_request: branches: - - main + - release - develop types: [closed] @@ -11,11 +14,14 @@ jobs: fastlane: name: Run Fastlane runs-on: macos-latest - if: github.event.pull_request.merged == true - + if: github.event_name == 'push' || github.event.pull_request.merged == true + defaults: + run: + working-directory: ./ByeBoo-iOS + steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{ secrets.GITHUB_TOKEN }} @@ -36,12 +42,10 @@ jobs: - name: Run upload_testflight if: github.event.pull_request.base.ref == 'develop' env: - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} - FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} - FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }} + APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }} + APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} + APP_STORE_CONNECT_API_KEY_CONTENT: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENT }} APP_IDENTIFIER: ${{ secrets.APP_IDENTIFIER }} - FASTLANE_ITC_TEAM_ID: ${{ secrets.FASTLANE_ITC_TEAM_ID }} TEAM_ID: ${{ secrets.TEAM_ID }} PRIVATE_REPOSITORY: ${{ secrets.PRIVATE_REPOSITORY }} MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} @@ -49,15 +53,13 @@ jobs: DISCORD_URL: ${{ secrets.DISCORD_URL }} run: bundle exec fastlane upload_testflight - - name: Run release_app_store on main - if: github.event.pull_request.base.ref == 'main' + - name: Run release_app_store on release + if: github.event_name == 'push' || github.event.pull_request.base.ref == 'release' env: - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} - FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} - FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }} + APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }} + APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} + APP_STORE_CONNECT_API_KEY_CONTENT: ${{ secrets.APP_STORE_CONNECT_API_KEY_CONTENT }} APP_IDENTIFIER: ${{ secrets.APP_IDENTIFIER }} - FASTLANE_ITC_TEAM_ID: ${{ secrets.FASTLANE_ITC_TEAM_ID }} TEAM_ID: ${{ secrets.TEAM_ID }} PRIVATE_REPOSITORY: ${{ secrets.PRIVATE_REPOSITORY }} MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} From d3eaf42407c3831767c653e9f5387f5407053fb9 Mon Sep 17 00:00:00 2001 From: yeonee Date: Tue, 18 Aug 2026 17:45:46 +0900 Subject: [PATCH 11/11] =?UTF-8?q?hotfix:=20#496=20release=20match=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj b/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj index ca1c6493..cebb8afe 100644 --- a/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj +++ b/ByeBoo-iOS/ByeBoo-iOS.xcodeproj/project.pbxproj @@ -352,7 +352,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = "ByeBoo-iOS/ByeBoo-Prod.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 18; DEVELOPMENT_TEAM = ""; @@ -375,7 +375,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.heartz.ByeBoo-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.heartz.ByeBoo-iOS"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.heartz.ByeBoo-iOS"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;