From 73fa669377b81c14ee96ca0ca5189bc68fc2b96e Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Mar 2026 22:32:13 +0000 Subject: [PATCH] fix: resolve App Store rejections for Watch icon and subscription legal links - Watch icon: change background from black to dark gray (#2C2C2E) so the circular icon shape is visible on Apple Watch (Guideline 4) - PaywallView: replace custom paywall with Apple's SubscriptionStoreView which properly displays subscription title, price, duration, and functional links to Terms of Use and Privacy Policy (Guideline 3.1.2c) https://claude.ai/code/session_011hgrS3LLg6Sc5jC45Y7eK9 --- .../AppIcon.appiconset/icon-1024.png | Bin 15726 -> 60709 bytes iPhoneApp/PaywallView.swift | 151 ++---------------- 2 files changed, 12 insertions(+), 139 deletions(-) diff --git a/WatchApp/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/WatchApp/Assets.xcassets/AppIcon.appiconset/icon-1024.png index a28024f2b94cc91349cc86eba53828085d82e28a..04258455411fdc43b89213c72b85e3cb12e52822 100644 GIT binary patch literal 60709 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%0A`s7@RTAxVPfu@orh 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 diff --git a/iPhoneApp/PaywallView.swift b/iPhoneApp/PaywallView.swift index b756155..5073844 100644 --- a/iPhoneApp/PaywallView.swift +++ b/iPhoneApp/PaywallView.swift @@ -5,17 +5,14 @@ import StoreKit private let termsOfUseURL = URL(string: "https://www.apple.com/legal/internet-services/itunes/dev/stdeula/")! private let privacyPolicyURL = URL(string: "https://douinc.github.io/clicker/PRIVACY_POLICY.html")! -/// Custom paywall view with price-first hierarchy to comply with App Store guideline 3.1.2. -/// The billed amount is the most prominent pricing element; trial info is subordinate. +/// Paywall using Apple's SubscriptionStoreView for full guideline 3.1.2 compliance. +/// Automatically displays subscription title, price, length, and legal links. struct PaywallView: View { @Environment(SubscriptionManager.self) private var subscriptionManager @Environment(\.dismiss) private var dismiss - @Environment(\.scenePhase) private var scenePhase - @State private var isPurchasing = false - @State private var errorMessage: String? var body: some View { - ScrollView { + SubscriptionStoreView(groupID: subscriptionGroupID) { VStack(spacing: 24) { // Header VStack(spacing: 16) { @@ -29,7 +26,6 @@ struct PaywallView: View { Text("Control your presentations with ease") .foregroundStyle(.secondary) } - .padding(.top, 40) // Features VStack(alignment: .leading, spacing: 12) { @@ -39,146 +35,23 @@ struct PaywallView: View { } .padding(.horizontal, 8) - Spacer(minLength: 24) - - // Pricing section — billed amount is largest and most prominent - if let product = subscriptionManager.yearlyProduct { - PricingSection(product: product) - } else if subscriptionManager.productLoadFailed { - VStack(spacing: 12) { - Text("Unable to load pricing") - .font(.subheadline) - .foregroundStyle(.secondary) - Button("Retry") { - Task { - await subscriptionManager.loadProducts() - } - } - .font(.subheadline.weight(.medium)) - .foregroundStyle(.blue) - } - .padding() - } else { - ProgressView("Loading...") - .padding() - } - - // Subscribe button - if let product = subscriptionManager.yearlyProduct { - Button { - Task { await purchase(product) } - } label: { - Group { - if isPurchasing { - ProgressView() - .tint(.white) - } else { - Text("Subscribe") - .font(.title3.weight(.semibold)) - } - } - .frame(maxWidth: .infinity) - .frame(height: 54) - .background(.blue, in: RoundedRectangle(cornerRadius: 14)) - .foregroundStyle(.white) - } - .disabled(isPurchasing) - .padding(.horizontal, 4) - } - - // Error message - if let errorMessage { - Text(errorMessage) - .font(.caption) - .foregroundStyle(.red) - } - - // Restore purchases - Button { - Task { - await subscriptionManager.restorePurchases() - } - } label: { - Text("Restore Purchases") - .font(.subheadline) - .foregroundStyle(.blue) - } - - // Legal links + // Legal links — functional links required by guideline 3.1.2(c) HStack(spacing: 16) { - Link("Terms of Use", destination: termsOfUseURL) + Link("Terms of Use (EULA)", destination: termsOfUseURL) Text("·").foregroundStyle(.secondary) Link("Privacy Policy", destination: privacyPolicyURL) } - .font(.caption) - .foregroundStyle(.secondary) - .padding(.bottom, 24) - } - .padding(.horizontal, 24) - } - .background(Color(uiColor: .systemBackground)) - .task { - await subscriptionManager.loadProducts() - await subscriptionManager.updateSubscriptionStatus() - } - .onChange(of: scenePhase) { _, newPhase in - if newPhase == .active { - Task { - await subscriptionManager.updateSubscriptionStatus() - } + .font(.footnote) } + .padding(.top, 40) } - } - - private func purchase(_ product: Product) async { - isPurchasing = true - errorMessage = nil - do { - let success = try await subscriptionManager.purchase(product) - if success { + .subscriptionStoreButtonLabel(.multiline) + .storeButton(.visible, for: .restorePurchases) + .onInAppPurchaseCompletion { _, result in + if case .success(.success(_)) = result { + await subscriptionManager.updateSubscriptionStatus() dismiss() } - } catch { - errorMessage = error.localizedDescription - } - isPurchasing = false - } -} - -/// Pricing section with billed amount as the most prominent element. -/// Trial/introductory info is subordinate in size, color, and position. -struct PricingSection: View { - let product: Product - - var body: some View { - VStack(spacing: 8) { - // Primary: billed amount — largest and most prominent - Text(product.displayPrice + "/year") - .font(.system(size: 36, weight: .bold, design: .rounded)) - .foregroundStyle(.primary) - - // Subordinate: trial info — smaller font, secondary color, below price - if let subscription = product.subscription, - let introOffer = subscription.introductoryOffer { - Text(introOfferText(introOffer)) - .font(.subheadline) - .foregroundStyle(.secondary) - } - } - .padding(.vertical, 8) - } - - private func introOfferText(_ offer: Product.SubscriptionOffer) -> String { - switch offer.paymentMode { - case .freeTrial: - let days = offer.period.value * (offer.period.unit == .day ? 1 : offer.period.unit == .week ? 7 : 30) - return "\(days)-day free trial included" - case .payUpFront: - return "Introductory price: \(offer.displayPrice)" - case .payAsYouGo: - return "Introductory price: \(offer.displayPrice)/period" - default: - return "" } } }