Fix macOS Sign in with Apple infinite-load (App Review 1.0.1 reject)#32
Conversation
Apple Review rejected 1.0.1 on a MacBook Air M3 (submission ID 62f70d2b-3ce5-4965-892d-c1d184de19e0) under Guideline 2.1(a) — Sign in with Apple 'loaded indefinitely' — and Guideline 2.1(b) because the reviewer couldn't locate the Pro IAPs as a consequence. Root cause: on macOS the WindowGroup instantiated LibraryView() directly, skipping the iOS auth gate. SignInView's Sign in with Apple button + its result handlers were wrapped in #if os(iOS) with no else branch, so the Mac build literally had no way to log in. Reviewer hit the unauth path, CloudKit sync attempted to start without a token, and the UI never recovered. The fix routes macOS through RootView (same auth gate as iOS) — RootView's mainContent already has a macOS branch rendering the shared LibraryView surface, so window chrome (MacMainWindowBinder, hidden title) is preserved. The iOS guards around SignInWithAppleButton/handleAppleResult/ submitSignIn are removed; both APIs are cross-platform and APIClient's signInWithApple has no platform restrictions. Build verified: xcodebuild -scheme FastSharedApp -destination 'platform=macOS,arch=arm64' → BUILD SUCCEEDED. Also adds apple/scripts/appstore-status.rb — a read-only Spaceship script that queries the real submission state (versions, builds, IAPs) from App Store Connect so future rejections can be diagnosed without screen- sharing the ASC dashboard. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
WalkthroughO PR contém duas mudanças independentes: (1) unificação do fluxo de autenticação no macOS para garantir que passa por RootView e SignInView em vez de pular direto para LibraryView, com expansão de "Sign in with Apple" para cross-platform; (2) adição de novo script de diagnóstico em Ruby para consultar status de submissões, builds, In-App Purchases e assinaturas no App Store Connect. ChangesUnificação de autenticação macOS
Script de diagnóstico App Store Connect
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Context
App Review rejected version 1.0.1 on 2026-05-05 (submission ID
62f70d2b-3ce5-4965-892d-c1d184de19e0), tested on a MacBook Air (15-inch, M3, 2024), citing:Both rejections share a single root cause.
Root cause
On macOS,
FastSharedApp.normalWindowContentinstantiatedLibraryView()directly, skipping the iOS auth gate.SignInView's Sign in with Apple button + result handlers were wrapped in#if os(iOS)with no#else, so the Mac build literally had no way to sign in. The reviewer hit the unauthenticated path, CloudKit sync attempted to start without a token, and the UI never recovered — manifesting as the infinite spinner. Since the reviewer never got past auth, they never saw the Pro IAPs either → 2.1(b).Fix
FastSharedApp.swift#ifbranch now usesRootView()(same auth gate as iOS).RootView.mainContentalready has a macOS branch that renders the sharedLibraryViewsurface, so window chrome (MacMainWindowBinder, hidden title) is preserved.SignInView.swift#if os(iOS)guards aroundSignInWithAppleButton,handleAppleResult, andsubmitSignIn. BothSignInWithAppleButtonandAPIClient.signInWithAppleare cross-platform.apple/scripts/appstore-status.rbREJECTEDso we know to resubmit both.Verification
Confirmed current ASC state via
apple/scripts/appstore-status.rb:REJECTED(build 199394062 attached)REJECTED(build 199392389 attached)199560339from 2026-04-28Next steps (post-merge)
make appstore-sync && FASTSHARED_SUBMIT_FOR_REVIEW=YES make appstore-submit.🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
Bug Fixes
New Features