Skip to content

Commit a9c0292

Browse files
authored
[#702] 베타 테스트 참여 항목을 prod에서만 노출한다 (#703)
* fix: Settings 베타 참여 항목 prod 노출 조건 추가 * refactor: Settings 베타 URL 판별 로직 분리 * ui: Settings 베타 참여 링크 컴포넌트 정리
1 parent 4316746 commit a9c0292

2 files changed

Lines changed: 27 additions & 12 deletions

File tree

Application/Presentation/ProfileTab/Sources/Settings/SettingsFeature.swift

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,30 @@ struct SettingsFeature {
3434
var loading = LoadingFeature.State()
3535
var alertType: Action.AlertType?
3636
var appVersion = Self.appVersion()
37-
var appstoreUrl = Bundle.main.object(forInfoDictionaryKey: "TESTFLIGHT_URL") as? String
37+
var betaTestURL = Self.betaTestURL(
38+
databaseID: Bundle.main.object(forInfoDictionaryKey: "FIRESTORE_DATABASE_ID") as? String,
39+
testFlightURL: Bundle.main.object(forInfoDictionaryKey: "TESTFLIGHT_URL") as? String
40+
)
3841
var policyURL = Bundle.main.object(forInfoDictionaryKey: "PRIVACY_POLICY_URL") as? String
3942

4043
var isLoading: Bool {
4144
loading.isLoading
4245
}
4346

47+
static func betaTestURL(databaseID: String?, testFlightURL: String?) -> URL? {
48+
guard databaseID?.trimmingCharacters(in: .whitespacesAndNewlines) == "prod",
49+
let rawValue = testFlightURL else {
50+
return nil
51+
}
52+
53+
let urlString = rawValue.trimmingCharacters(in: .whitespacesAndNewlines)
54+
guard !urlString.isEmpty, !urlString.hasPrefix("$(") else {
55+
return nil
56+
}
57+
58+
return URL(string: urlString)
59+
}
60+
4461
private static func appVersion() -> String? {
4562
let marketingVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String
4663
let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String

Application/Presentation/ProfileTab/Sources/Settings/SettingsView.swift

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,15 @@ struct SettingsView: View {
7171
.foregroundColor(Color.blue)
7272
}
7373
}
74-
Button(action: {
75-
if let appStoreString = store.appstoreUrl,
76-
let url = URL(string: appStoreString) {
77-
UIApplication.shared.open(url)
78-
}
79-
}) {
80-
VStack(alignment: .leading) {
81-
Text(String(localized: "settings_join_beta"))
82-
Text(String(localized: "settings_join_beta_subtitle"))
83-
.foregroundStyle(Color.gray)
84-
.font(.caption)
74+
if let betaTestURL = store.betaTestURL {
75+
Link(destination: betaTestURL) {
76+
VStack(alignment: .leading) {
77+
Text(String(localized: "settings_join_beta"))
78+
.foregroundStyle(Color.primary)
79+
Text(String(localized: "settings_join_beta_subtitle"))
80+
.foregroundStyle(Color.gray)
81+
.font(.caption)
82+
}
8583
}
8684
}
8785
}

0 commit comments

Comments
 (0)