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.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
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.
中文简介正在准备中。当前显示原文说明。