diff --git a/Paxo/DefaultConfig.swift b/Paxo/DefaultConfig.swift index 5d2f77a..d6ccb0d 100644 --- a/Paxo/DefaultConfig.swift +++ b/Paxo/DefaultConfig.swift @@ -17,6 +17,9 @@ enum DefaultConfig { /// 이용약관 — Apple 표준 EULA static let termsOfUseURL = "https://www.apple.com/legal/internet-services/itunes/dev/stdeula/" + /// 출시 후 App Store 앱 페이지 URL을 설정한다. + static let appStoreURL: URL? = nil + /// 바이너리에서 추출 가능한 앱 버전 필터이며 실제 권한은 Apple 로그인 세션으로 검증한다. static let appToken: String = Secrets.appToken } diff --git a/Paxo/UI/SettingsView.swift b/Paxo/UI/SettingsView.swift index 896a6a0..f4c9cd5 100644 --- a/Paxo/UI/SettingsView.swift +++ b/Paxo/UI/SettingsView.swift @@ -160,6 +160,25 @@ struct SettingsView: View { appState.showOnboarding() } } + + Section("지원 및 공유") { + if let feedbackURL { + Link(destination: feedbackURL) { + Label("의견보내기", systemImage: "envelope") + } + } + + if let appStoreURL = DefaultConfig.appStoreURL { + ShareLink(item: appStoreURL) { + Label("앱 공유", systemImage: "square.and.arrow.up") + } + } else { + Button(action: {}) { + Label("앱 공유", systemImage: "square.and.arrow.up") + } + .disabled(true) + } + } } .formStyle(.grouped) .frame(width: 460, height: 660) @@ -174,4 +193,12 @@ struct SettingsView: View { } @State private var showsDeleteConfirmation = false + + private var feedbackURL: URL? { + var components = URLComponents() + components.scheme = "mailto" + components.path = "paxo.app.official@gmail.com" + components.queryItems = [URLQueryItem(name: "subject", value: "Paxo 의견 보내기")] + return components.url + } }