mufeng-ios-release-audit
iOS App Store 上线前完整发布审计。逐项核验权限文案、托管 EULA/条款 URL 及违禁内容条款、硬编码价格、.lproj 本地化完整性、App 图标、版本号与 build 号、数据层强制解包、零编译警告、多语言商店元数据,并产出微信/X/Reddit 上线文案。触发词:iOS…
Skill by ichangyou
Chalk Labs
Need help deploying mufeng-ios-release-audit?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ichangyou-mufeng-ios-release-audit
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/mufeng-ios-release-audit
What's inside
- Skill name
mufeng-ios-release-audit- Description
- iOS App Store 上线前完整发布审计。逐项核验权限文案、托管 EULA/条款 URL 及违禁内容条款、硬编码价格、.lproj 本地化完整性、App 图标、版本号与 build 号、数据层强制解包、零编译警告、多语言商店元数据,并产出微信/X/Reddit 上线文案。触发词:iOS 要上线了、上线前检查、提交 App Store、会不会被拒、审核会过吗、iOS release 检查、发版前审查、iOS 发布审计、iOS release audit、生成上线文案。仅限 iOS/App Store 项目。
- License
- MIT
- Compatibility
- Codex and Claude Code. An iOS project; macOS and Xcode for build verification.
- Instructions
- 321 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (2)
- README.md
- SKILL.md
SKILL.md (first lines)
# 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) 链接。注意三点,全是 SpeechNote 那次踩过的:
- 「元数据」指**商店页描述字段**,不是推广文本,不是审核备注,不是 App 内
- App 内购买页有「服务条款」按钮**不算数**——SpeechNote 内购页有按钮,照样被拒
- 必须是完整 `https://` 网址才会被 App Store 渲染成可点链接;写「服务条款」四个字或相对路径无效
先看代码里的法务 URL 到底存不存在:
```bash
grep -rhoE 'https://[A-Za-z0-9./_-]*(privacy|terms|eula|legal)[A-Za-z0-9./_-]*' --include="*.swift" . | sort -u
```
**关键判定**:Terms/EULA 是否只是个本地文本常量(如 `presentLegalPage(termsContent)`)而**根本没有网址**。这正是 SpeechNote 反复被拒的根因——不是"URL 填错了",是"URL 压根不存在"。若 grep 只出隐私政策、没出 terms,直接判 FAIL。
再验证每个 URL 真能访问(reviewer 会点):
```bash
for u in <上一步的 URL>; do
echo "$(curl -s -o /dev/null -w '%{http_code}' -L --max-time 15 "$u") $u"
done
```
非 200 判 FAIL。
**若确实缺 EULA 网址**,两个选择:
- 省事:用 Apple 标准 EULA `https://www.apple.com/legal/internet-services/itunes/dev/stdeula/`
- 一致(推荐):与隐私政策同域自托管一份 terms 页,同时把 App 内按钮也改成开这个网址
⚠️ 若 App 内用的是自定义条款文本、元数据却填 Apple 标准 EULA,二者内容不一致是隐患。
## 3. 条款内容覆盖违禁内容
**教训来源**:Creem 审核拒因——支付通道要求 Terms 明确禁止 NSFW 内容。第 2 项的 200 只证明页面存在,不证明内容达标。
对第 2 项拿到的 Terms/EULA URL 拉正文检查:
```bash
curl -sL --max-time 20 "$TERMS_URL" | sed 's/<[^>]*>//g' | \
grep -inE 'prohibit|forbidden|not permitted|nsfw|adult content|porn|sexual|illegal|unlawful|禁止|不得|违法'
```
**判定**:
- 命中明确的禁止性条款(违禁内容 / 违法用途 / 年龄门槛,至少其一)→ `✅ PASS`,引用命中行作证据
- URL 可达但无命中 → `⚠️ 需人工确认`,并在报告里给出建议补写的条款要点:禁止色情/NSFW 内容、禁止违法用途、平台对违规内容的处置权、使用年龄门槛
- 页面 JS 渲染导致 curl 拿不到正文 → `⚠️ 需人工确认`,注明原因,让用户人工打开核对
- 若用 Apple 标准 EULA,本项自动 PASS(Apple 条款已覆盖),但要提醒:App 内自定义条款与之不一致仍是隐患(见第 2 项)
## 4. 付费墙无硬编码价格
**先摆正认知**:在用的 Paywall 代码通常本来就没问题——ShotZen 的价格、月均价、省钱角标全是运行时从 StoreKit `displayPrice` 取或实时算的。真正的坑在另外三处。
**(a) `.lproj` 里的死字符串**(ShotZen 实际中招,3 条硬编码 `$9.99`/`$14.99`):
```bash
grep -rnE '[¥$€£][0-9]+([.,][0-9]{2})?|[0-9]+\.99' $(git ls-files "*.lproj/Localizable.strings")
```
命中后**不要直接判 FAIL**——先 grep 该 key 是否还被 `L()` 引用。ShotZen 那 3 条无人引用、不显示,但属于地雷(有人接回去就显示错价),结论是删掉。
**(b) Swift 源码里的价格字面量**:
```bash
grep -rnE '"\s*[¥$€£][0-9]+' --include="*.swift" .
```
**(c) 静态营销截图印死价格 —— 风险最大的一项**
商店截图是静态图,不会跟着动态价格变。改价后截图里的价格必然对不上,既影响转化,reviewer 也可能挑。**这项无法自动检测**,必须让用户人工确认:截图里的 Paywall 画面有没有印具体价格。在表格里标为「需人工确认」。
**(d) 项目 CLAUDE.md 里关于价格的描述可能过时**
ShotZen 的 CLAUDE.md 曾写着「Save 69% chip 硬编码、调价要同步改文案」,核实下来角标是实时算的,这条已过时。**以代码为准,不要信文档**。From ichangyou/mf-ai-skills, MIT.
More from ichangyou/mf-ai-skills
- 0.603score
mufeng-wechat-publish-full
ichangyou
Use when publishing articles to WeChat Official Account (微信公众号), including tasks that involve SEO/GEO-friendly Markdown metadata, professional article…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-ios-app-opportunity
ichangyou
Mine App Store public data (category charts, app details, ratings, icons, screenshots, keyword search results and 1-2 star reviews) to find what users…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-ios-visual-regression
ichangyou
Visual regression testing for iOS apps (UIKit or SwiftUI).
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-app-builder
ichangyou
Use when turning a product idea into an implementation-ready app project for Codex or Claude Code, when a new iOS/macOS/web/backend project needs PRD, MVP…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-materials-to-wechat-publish
ichangyou
Use when source materials in a directory, such as notes, drafts, transcripts, screenshots, outlines, or code snippets, need to be turned into a professional…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-stock-research
ichangyou
Educational stock research skill for market analysis and financial study.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-blog-writing
ichangyou
Chinese technical blog writing for mufeng.blog with Joey's tone, clear problem-solution structure, concise explanations, minimal code only when necessary, and…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-ios-app-naming
ichangyou
Generate and clear names for an iOS/macOS app: brainstorm candidates, then screen each through a five-step check (App Store name collisions, USPTO and TMview…
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
mufeng-app-icon
ichangyou
设计、重做或精修 App icon(应用图标),默认面向 iOS/iPadOS。基于真实产品与品牌提出可视方向,精修核心图形,制作多尺寸预览,按目标 Xcode/系统适配并验证。用于“设计 Appicon”“优化应用图标”“做深色图标”;页面 UI、操作图标和独立 logo 设计不属于本 skill。
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
mufeng-bilingual-storybook
ichangyou
Create visually reviewed Chinese and English picture-book PDFs from Markdown stories.
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
mufeng-ios-design
ichangyou
优化或设计原生 iOS App 的 SwiftUI/UIKit 界面、App icon 与原创 logo。读取真实项目上下文,比较设计方向,统一规范,按范围实现并检查实际运行结果。适用于“优化这个 iOS 页面”“设计 App 图标”“设计品牌标志”;纯上线审计或截图差异检测使用对应专项 skill。
SkillAFreshness: A★ 2Claude Code +9 - 0.600score
mufeng-dankoe-writing
ichangyou
深度长篇写作风格指南,模仿 Dan Koe 的写作风格。当用户请求创作长篇文章、博客文章、深度内容、思想领袖类文章,或明确要求使用挑衅性、对话式、深度思考的写作风格时触发。适用于创建需要深度阐述观点、挑战传统思维、提供系统化框架的内容。关键词触发:**长篇文章、深度写作、Dan Koe…
SkillAFreshness: A★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 5, 2026 (26 days ago)
- Last release
- Jun 12, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/ichangyou/mf-ai-skills
- Website
- mufeng.blog
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ichangyou
- 0.603score
mufeng-app-builder
ichangyou
Use when turning a product idea into an implementation-ready app project for Codex or Claude Code, when a new iOS/macOS/web/backend project needs PRD, MVP…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-ios-visual-regression
ichangyou
Visual regression testing for iOS apps (UIKit or SwiftUI).
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-blog-writing
ichangyou
Chinese technical blog writing for mufeng.blog with Joey's tone, clear problem-solution structure, concise explanations, minimal code only when necessary, and…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-ios-app-naming
ichangyou
Generate and clear names for an iOS/macOS app: brainstorm candidates, then screen each through a five-step check (App Store name collisions, USPTO and TMview…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-ios-app-opportunity
ichangyou
Mine App Store public data (category charts, app details, ratings, icons, screenshots, keyword search results and 1-2 star reviews) to find what users…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
mufeng-materials-to-wechat-publish
ichangyou
Use when source materials in a directory, such as notes, drafts, transcripts, screenshots, outlines, or code snippets, need to be turned into a professional…
SkillAFreshness: A★ 2Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get mufeng-ios-release-audit running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
mufeng-ios-release-audit skill. Agent Mart. https://agentmart.dev/skills/ichangyou-mufeng-ios-release-audit (last updated 2026-10-24)