소스 검색

Prevent launch-time review prompts for existing premium users.

Only trigger the 10-second rating prompt after an in-session premium upgrade, and request a rating immediately when a long-time premium user opens signup/manage premium.

Made-with: Cursor
huzaifahayat12 3 달 전
부모
커밋
e0a43f651e
1개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 9 1
      meetings_app/ViewController.swift

+ 9 - 1
meetings_app/ViewController.swift

@@ -487,6 +487,10 @@ private extension ViewController {
 
     @objc private func premiumButtonClicked(_ sender: NSClickGestureRecognizer) {
         if storeKitCoordinator.hasPremiumAccess {
+            if hasReachedRatingUsageThreshold && !userHasRated {
+                requestAppRatingIfEligible(markAsRated: false)
+                return
+            }
             showPaywall(upgradeFlow: true, preferredPlan: .lifetime)
         } else {
             showPaywall()
@@ -1059,7 +1063,11 @@ private extension ViewController {
             Task { [weak self] in
                 await self?.loadSchedule()
             }
-            scheduleRatingPromptAfterPremiumUpgrade()
+            // Skip delayed review prompt during initial launch entitlement sync.
+            // We only want this after a real in-session upgrade.
+            if hasCompletedInitialStoreKitSync {
+                scheduleRatingPromptAfterPremiumUpgrade()
+            }
         }
         if hadPremiumAccess && !hasPremiumAccess {
             showPaywall()