Detects missing or insufficient in-app account deletion functionality required since June 30, 2022 under Guideline 5.1.1(v) for all apps that support account creation.
日本語の概要は準備中です。原文の説明を表示しています。
Detects hardcoded iPhone-sized widths, missing iPad orientation keys, and absent size-class adaptation that cause layout failures on iPad reviewers' devices under guidelines 2.1 and 2.4.1.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Detects hardcoded iPhone-sized widths, missing iPad orientation keys, and absent size-class adaptation that cause layout failures on iPad reviewers' devices under guidelines 2.1 and 2.4.1.
references/guidelines/2-performance.mdCase: Fixed UIStackView widths causing overflow on iPad Air Source: https://help.adalo.com/publishing-apps/publishing-to-the-apple-app-store/submit-your-build-to-the-app-store/app-rejected-apple-guideline-2.1-ipad-support Root cause: Stack views constrained to 375 pt — the iPhone SE/8 screen width — overflowed or misaligned on the wider iPad viewport.
Case: Text truncation from hardcoded frame sizes matching iPhone widths
Source: Apple Developer Forums
Root cause: CGRect frames initialised with literal width 375 or 390 clipped label content on iPad's larger canvas.
Case: App reviewer uses iPad Air — layout must work on the larger viewport Source: Apple Developer Forums Root cause: Developers tested only on iPhone simulators; iPad Air review exposed missing adaptive constraints and broken navigation hierarchies.
Invoke when submitting a universal app (iPhone + iPad) or when the UISupportedInterfaceOrientations~ipad key is present in Info.plist.
| Name | Type | Default | Description |
|---|---|---|---|
project_root | path | cwd | iOS/macOS project root |
shared_context | object | nil | Pre-collected context from appstore-full-audit Phase 1 |
Skip this phase if shared_context is provided.
Glob **/Info.plist — locate all Info.plist files in the project.Glob **/*.swift — collect all Swift source files for pattern scanning.Glob **/*.storyboard and **/*.xib — note any Interface Builder files (manual review may be needed).Hardcoded iPhone widths (UIKit)
Grep pattern frame\.width.*375|frame\.width.*390|frame\.size\.width.*375 in **/*.swift
Flag every match as 🔴 CRITICAL — these values are iPhone screen widths and will produce broken layouts on iPad.
Fixed SwiftUI frame widths
Grep pattern \.frame\(width: in **/*.swift
Review each match: a numeric literal (e.g., .frame(width: 375)) is a defect; a named constant or relative value may be acceptable. Flag numeric literals as 🟠 HIGH.
iPad idiom branch coverage
Grep pattern UIDevice\.current\.userInterfaceIdiom in **/*.swift
If found, verify the branch also handles .pad (not only .phone). Missing .pad branch → 🟠 HIGH. If the pattern is absent entirely and the app declares iPad support, flag as 🟡 MEDIUM.
iPad orientation key in Info.plist
Read each Info.plist found in Phase 1.
Check for the key UISupportedInterfaceOrientations~ipad. Absence → 🔴 CRITICAL (Apple treats the app as iPhone-only on iPad).
Size-class adaptation
Grep pattern traitCollection\.horizontalSizeClass in **/*.swift
Absence in a universal app → 🟡 MEDIUM (app may not adapt to regular-width iPad environment).
Collect all findings from Phase 2 and build the prioritised findings list below. Include file paths and line numbers from Grep output. If no issues are found in a priority tier, omit that tier's section.
## iPad Layout Audit — Findings
### 🔴 CRITICAL — Guaranteed rejection
- [ ] TODO: <exact actionable step> — `file:line` — Guideline 2.1
### 🟠 HIGH — Very likely rejection
- [ ] TODO: <exact actionable step> — `file:line` — Guideline 2.4.1
### 🟡 MEDIUM — Possible rejection
- [ ] TODO: <exact actionable step> — `file:line`
### 🟢 LOW — Best practice
- [ ] TODO: <exact actionable step>
Glob, Grep, Read
shared_context is provided by orchestrating agent.Run these in your project root to check manually:
# Find hardcoded iPhone widths (375=iPhone SE/8, 390=iPhone 14)
!grep -rn "375\|390\|frame\.width" . --include="*.swift" | grep -v "//\|Test"
# Check iPad orientation support in Info.plist
!find . -name "Info.plist" -not -path "*/Pods/*" | head -1 | xargs plutil -convert json -o - | python3 -c "import sys,json; d=json.load(sys.stdin); print('iPad orientations:', d.get('UISupportedInterfaceOrientations~ipad', 'MISSING'))"
# Check size class handling
!grep -rn "horizontalSizeClass\|verticalSizeClass\|userInterfaceIdiom" . --include="*.swift"
examples/swift/LayoutPatterns.swift
Find target files
**/*.swift, **/*.m, **/Info.plist, **/*.storyboard, **/*.xibSearch for rejection patterns
\.frame.*width.*375\|\.frame.*width.*390\|\.frame.*width.*414 — hardcoded iPhone widthsUIScreen.main.bounds.width used as fixed layout value (not adaptive)UIUserInterfaceIdiom.*pad\|userInterfaceIdiom == \.pad\|isPad — iPad branch (correct)Info.plist → check UISupportedInterfaceOrientations~ipad key existsDetermine verdict
375/390/414 width found → 🟠 HIGH (Guideline 2.4.1)UISupportedInterfaceOrientations~ipad missing from Info.plist → 🟠 HIGHReport
view.bounds.width (scene-based); UIScreen.main is deprecated since iOS 16 — do not use it as a replacement; add UISupportedInterfaceOrientations~ipad to Info.plistまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Detects missing or insufficient in-app account deletion functionality required since June 30, 2022 under Guideline 5.1.1(v) for all apps that support account creation.
日本語の概要は準備中です。原文の説明を表示しています。
Detects feature patterns that require a higher age rating than commonly submitted, enforcing Guideline 2.3.6 which requires age ratings to accurately reflect the app's content and social features.
日本語の概要は準備中です。原文の説明を表示しています。
Detects apps that send user data to third-party AI systems without explicit in-app consent and disclosure, enforcing Guideline 5.1.2(i).
日本語の概要は準備中です。原文の説明を表示しています。
Detects placeholder content, stub UI, hardcoded test credentials, and non-production endpoints that signal an incomplete app to reviewers under Guideline 2.1.
日本語の概要は準備中です。原文の説明を表示しています。
Detects app name violations including names exceeding 30 characters, beta labels, Apple trademark terms, and version numbers in the display name, enforcing Guideline 2.3.7.
日本語の概要は準備中です。原文の説明を表示しています。
App Store rejection prevention for iOS/macOS apps. Covers privacy, UGC, IAP, metadata, layout, and quality checks based on real Apple rejection cases.
日本語の概要は準備中です。原文の説明を表示しています。