← ClaudeAtlas

mufeng-ios-release-auditlisted

iOS App Store 上线前完整发布审计。逐项核验权限文案、托管 EULA/条款 URL 及违禁内容条款、硬编码价格、.lproj 本地化完整性、App 图标、版本号与 build 号、数据层强制解包、零编译警告、多语言商店元数据,并产出微信/X/Reddit 上线文案。触发词:iOS 要上线了、上线前检查、提交 App Store、会不会被拒、审核会过吗、iOS release 检查、发版前审查、iOS 发布审计、iOS release audit、生成上线文案。仅限 iOS/App Store 项目。
ichangyou/mf-ai-skills · ★ 2 · AI & Automation · score 75
Install: claude install-skill ichangyou/mf-ai-skills
# iOS App Store 完整发布审计 对着代码库逐项核验,输出 pass/fail 表格。**全程只读,不改代码**——发现问题先报告根因和修复方案,等用户批准再动手。 ## 来源 清单的每一项都来自真实事故或真实审查,不是通用最佳实践的罗列: | 会话 | 项目 | 产出的教训 | |---|---|---| | 2026-07-09 | SpeechNote | **Guideline 3.1.2 反复拒审**:Terms 只是 App 内本地文本页,没有网址,导致商店页描述里没有可点 EULA 链接 | | 2026-07-12 上午 | ShotZen | 上线前审查:版本号 1.1.1 与素材 1.2.0 不符;CoreData `fatalError` 启动崩溃隐患 | | 2026-07-12 晚 | ShotZen | 商店文案四语;简中名称必须锁定备案名 | | 2026-07-12 深夜 | ShotZen | 定价:`.lproj` 里 3 条硬编码旧价死字符串;静态截图印死价格风险 | | — | Creem | 支付通道审核拒因:Terms 必须明确禁止 NSFW 内容——URL 可达不等于内容达标 | ## 前置 确认在 iOS repo 根目录(有 `*.xcodeproj`)。所有文件枚举**一律用 `git ls-files`**——`find` 会命中 `build/`、`.build/DerivedData/` 里的构建产物副本,导致同一语言重复统计、结果失真(已踩过)。 --- ## 1. 权限说明文案 两种存放位置,**都要查**,查空了不等于 FAIL: ```bash # (a) GENERATE_INFOPLIST_FILE = YES 的项目,文案在 pbxproj 里(ShotZen 是这种) grep -oE "INFOPLIST_KEY_NS[A-Za-z]*UsageDescription = [^;]*;" *.xcodeproj/project.pbxproj | sort -u # (b) 有独立 Info.plist 的项目(SpeechNote 是这种,(a) 会返回空) grep -A1 "UsageDescription" $(git ls-files "*Info.plist" | head -1) ``` (a) 返回空只说明项目用的是 (b),别误判成"没有权限文案"。 **判定**:代码里实际请求的每种权限都要有对应文案;文案说清**为什么要**和**数据去哪**,不能只写 "需要相册权限"。 参考达标写法(ShotZen):"ShotZen reads your screenshots to organize them with on-device AI. Photos never leave your device." 顺带查出口合规声明,缺了每次提交都要手填加密问卷: ```bash grep -o "ITSAppUsesNonExemptEncryption[^;]*;" *.xcodeproj/project.pbxproj | sort -u ``` ## 2. 托管的条款/EULA URL **这是唯一一次真实 App Store 拒审的位置,优先级最高。** 3.1.2 要求:有自动续订/内购的 App,**商店页描述(Description)字段**里必须有可点击的 Terms of Use (EULA)