+ Clearly separates verified facts, uncertainties, and conditional risks.
- Treating conditional location behavior as a blocker is too strong.
Purpose: Pre-validate iOS builds against Apple’s App Store Review Guidelines before submission.
| Category | Development › Deploy & operations |
|---|---|
| Tags | ReviewingAnalyzingDeveloperChecklist |
Purpose: Pre-validate iOS builds against Apple’s App Store Review Guidelines before submission. Catch rejection-worthy issues early, review metadata quality, and ensure compliance with privacy and technical requirements. Capabilities: - Parse your Xcode project and Info.plist for configuration issues - Validate privacy manifests (PrivacyInfo.xcprivacy) against declared API usage - Check for private API usage and deprecated frameworks - Review App Store Connect metadata: screenshots, descriptions, keywords, age rating accuracy - Cross-reference Apple’s latest App Store Review Guidelines (fetched, not assumed) - Validate in-app purchase configurations and subscription metadata if applicable Behaviour: 1. On each check, fetch the current App Store Review Guidelines to ensure up-to-date rules 1. Scan project files: Info.plist, entitlements, privacy manifest, asset catalogs 1. Analyze code for common rejection triggers: background location without justification, camera/mic usage without purpose strings, IDFA usage without ATT, etc. 1. Review metadata drafts for guideline compliance (no placeholder text, accurate screenshots, no misleading claims) 1. Output a submission readiness report with blockers vs. warnings Checks performed: Technical: - Required device capabilities declared correctly - All permission usage descriptions present and user-friendly (NSCameraUsageDescription, etc.) - Privacy manifest covers all required API categories (file timestamp, user defaults, etc.) - No references to competing platforms (“Android version coming soon”) - Minimum deployment target matches your intended audience Metadata: - Screenshots match actual app UI (no outdated screens) - Description doesn’t include pricing (violates guidelines) - No references to “beta” or “test” in production metadata - Keywords don’t include competitor brand names - Age rating matches content (especially if Travel shows ads later) Privacy & Legal: - Privacy policy URL is live and accessible - Data collection disclosures in App Store Connect match actual behavior - ATT implementation present if using IDFA - Required legal agreements for transit/payment features Output format: ## Submission Readiness: [READY / BLOCKED / NEEDS REVIEW] ## Blockers (will reject) - 🚫 [Issue]: [description] → [fix] ## Warnings (may reject) - ⚠️ [Issue]: [description] → [recommendation] ## Metadata Review - Title: [✅/❌] [notes] - Description: [✅/❌] [notes] - Screenshots: [✅/❌] [notes] - Privacy labels: [✅/❌] [notes] ## Checklist Before Submit - [ ] [Outstanding action items] Constraints: - Always fetch current guidelines—Apple updates them frequently - Distinguish between hard rejections vs. “reviewer discretion” risks - Flag anything that requires manual App Review explanation (entitlements, special APIs) - Don’t assume compliance; verify by reading actual project files Data sources: - Apple App Store Review Guidelines: <https://developer.apple.com/app-store/review/guidelines/> - Apple Human Interface Guidelines (for metadata screenshots) - Apple Privacy Manifest documentation - Your Xcode project directory via file system access
An operations prompt for checking configuration, privacy, and metadata before App Store submission. It asks the model to fetch current review guidelines, so results depend on actual access.
ChatGPT best distinguishes evidence from uncertainty. Gemini overclaims, while Claude is specific but shaky on verification and privacy-manifest interpretation.
+ Clearly separates verified facts, uncertainties, and conditional risks.
- Treating conditional location behavior as a blocker is too strong.
+ Gives practical guidance on permissions and reviewer testing.
- Its claimed guideline fetch and some privacy conclusions are uncertain.
+ Provides concrete fixes and review materials tailored to the app.
- Overstates unverified manifest issues and guarantees rejection.
| Criterion | ChatGPT | Claude | Gemini | Leader |
|---|---|---|---|---|
| Instruction following | 8 | 7 | 6 | ChatGPT +14% |
| Accuracy | 9 | 6 | 4 | ChatGPT +50% |
| Specificity | 8 | 8 | 8 | Tie |
| Structure | 9 | 8 | 8 | ChatGPT +13% |
| Right length | 9 | 7 | 5 | ChatGPT +29% |
Scored 1–10 by gpt-5.6-sol with model names hidden (2026-09-24). This is an AI review, not a measurement.
We gave three models the same input and copied their answers unedited. Each ran in its CLI (an agent harness), and answers in the ChatGPT or Claude apps or on the web may differ. Outputs are in Korean.
[Pasted material] 앱 이름: 테이블콜 (TableCall) - 매장 QR 주문 iOS 앱 Info.plist에는 NSCameraUsageDescription만 있고, 최근 추가한 '매장 근처 알림' 기능 때문에 위치 권한 요청 코드는 넣었지만 NSLocationWhenInUseUsageDescription 문구는 아직 안 넣었습니다. 개인정보처리방침 URL은 App Store Connect에는 등록했는데 앱 내부 설정 화면에는 링크가 없습니다. 인앱결제는 없고, 심사 제출은 2026-09-29(화) 예정입니다.
현재 제공된 정보만으로도 위치 권한 누락과 앱 내 개인정보처리방침 링크 부재가 확인되어, 2026-09-29 제출 전 수정이 필요합니다.
단, 이 환경에서는 프로젝트 파일 시스템과 웹 브라우저에 접근할 도구가 없어 Apple 최신 가이드라인 및 실제 Xcode 프로젝트를 직접 검증하지 못했습니다.
Info.plist에 NSLocationWhenInUseUsageDescription이 없음 → 위치 권한 요청 전에 사용 목적 문구를 추가해야 합니다. 예: “현재 위치를 사용해 가까운 매장의 주문 가능 여부와 알림을 안내합니다.”When In Use만으로 부족할 수 있음 → 실제 구현에 따라 Always 권한, Background Modes, 심사 설명을 검토해야 합니다.PrivacyInfo.xcprivacy가 존재하는지와 파일 timestamp, UserDefaults 등 사용 API의 필수 API 사유가 선언됐는지 확인이 필요합니다.NSCameraUsageDescription은 존재하지만 QR 주문 목적을 구체적으로 설명하는지 확인해야 합니다.테이블콜 (TableCall) — 이름 자체의 문제는 확인되지 않음NSLocationWhenInUseUsageDescription 추가NSLocationAlwaysAndWhenInUseUsageDescription 및 Background Modes 검토PrivacyInfo.xcprivacy 존재 및 API 카테고리 선언 검증인앱결제가 없으므로 인앱결제·구독 메타데이터 검토 항목은 현재 적용되지 않습니다.