diff --git a/docs/index.html b/docs/index.html
index 69ba661..c0fe35d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -63,6 +63,7 @@
EC2 → 阿里云 迁移计划HTML — jiu 服务/数据/DB/文件/域名/CI 整体迁移(2026-07-02 已割接)
DDoS / 爬取洪峰应急HTML — 判定/CC 处置/高防·CDN 切换/黑洞预案(2026-07-05,配套安全三件套加固)
历史导入出库价格错列修复复盘HTML — 售价误落成本列根因/修复设计/26335 行执行结果/遗留脏数据清单/回滚(2026-07-10,shop8 生产)
+ iOS App Store 上架流程HTML — App 备案通过后的 7 步上架:备案号展示/ASC 建 App/隐私问卷/截图/TestFlight/提审备注/过审收尾(2026-07-15)
🧪 测试 · 审计报告
diff --git a/docs/runbooks/ios-appstore-release.html b/docs/runbooks/ios-appstore-release.html
new file mode 100644
index 0000000..129b7d2
--- /dev/null
+++ b/docs/runbooks/ios-appstore-release.html
@@ -0,0 +1,160 @@
+
+
+
+
+
+iOS App Store 上架流程 — 酒库管理系统
+
+
+
+iOS App Store 上架流程(中国区)
+前提:工信部 App 备案已通过(2026-07-15)· Bundle com.yanmei.jiu · Team BYL4KQHMTN · 分发链路:Forgejo CI build-ios → TestFlight → App Store 提审
+
+合规底子已备齐:支付红线(iOS 隐藏一切外部购买 UI,client/lib/core/config/store_compliance.dart)、首启隐私弹窗(privacy_consent_gate.dart,移动端)、账号注销入口(我的页)、隐私政策/用户协议 URL(官网 /privacy/ /terms/)、出口合规声明(Info.plist 的 ITSAppUsesNonExemptEncryption=false)、相机/相册权限文案——均已在代码中落地。上架前唯一代码改动 = 关于页展示 App 备案号(见第 1 步)。
+
+零、现状盘点
+
+
+| 合规件 / 前置 | 状态 | 位置 / 说明 |
+| 工信部 App 备案 | 已通过 | 2026-07-15 下号。App 备案号与网站备案号不同,形如 京ICP备2026039814号-XA,在阿里云 ICP 代备案控制台「App 备案」列表查看 |
+| 苹果 3.1.1 支付红线 | 已落地 | hideExternalPurchaseUi:iOS 包隐藏在线购买/价格/升级入口;保留兑换码激活(3.1.3(b) 多平台服务:允许使用在别处获得的授权) |
+| 首启隐私同意弹窗 | 已落地 | PrivacyConsentGate,iOS/Android 首启弹《隐私政策》《用户协议》,同意持久化 |
+| 账号注销途径 | 已落地 | 「我的」页注销入口(审核指南 5.1.1(v):支持注册就必须支持注销) |
+| 出口合规(加密) | 已落地 | ITSAppUsesNonExemptEncryption=false(仅标准 HTTPS,属豁免),提交构建时不再弹加密问卷 |
+| 签名 / CI | 就绪 | 发行证书 .ios-certs/distribution.cer(2027-06-16 到期,换证后须做备案变更更新公钥/SHA-1);CI build-ios job 自动出 ipa 传 TestFlight,7 个 secrets 见 docs/ios-signing.md |
+| 关于页 App 备案号展示 | 已落地 | 2026-07-15:页脚改为 App 备案号 京ICP备2026039814号-2A(原型 about/m-about + about_screen.dart 同一提交,golden 已更新),随 client 1.1.9 发出 |
+| version.yaml iOS 下载链接 | 待填 | backend/config/version.yaml 的 download_urls.ios 为空,过审后填 App Store 链接(第 7 步) |
+
+
+
+一、拿号 + App 内展示备案号(唯一代码改动)
+
+
+- App 备案号 =
京ICP备2026039814号-2A(岩美酒库 iOS App;主体号无后缀、网站为 -1。真相源:brain 账号地图)。
+- 关于页页脚补展示:网站号旁加一行 App 备案号(同样链到
beian.miit.gov.cn)。按 design-first 铁律:先改 design/prototype/ 关于屏原型 → 再改 client/lib/screens/about/about_screen.dart(桌面+移动两处页脚),同一提交落地。
+- 该改动并入下一个 client 版本即可(如 1.1.9),不必单独发版——但提审的构建必须已含此展示。
+
+
+
+二、App Store Connect 建 App
+
+
+- 登录
appstoreconnect.apple.com → 我的 App → 「+」新建 App。
+- 平台 iOS;名称 「岩美酒库」;主要语言 简体中文;Bundle ID 选
com.yanmei.jiu;SKU 填 jiu-ios。
+- 价格与销售范围:价格 免费;销售范围至少勾选 中国大陆(其他地区随意,无备案要求)。
+
+
名称必须与备案一字不差:备案登记的 App 名称是「岩美酒库」,ASC 上架名、App 内显示名保持一致,改名需先做备案变更。
+
+
+三、填 App 信息(一次性)
+
+
+- 中国大陆合规信息:App 信息页 →「中国大陆的互联网信息服务备案」→ 类型选 ICP 备案,填第 1 步拿到的 App 备案号。缺此项中国区直接驳回
+- 隐私政策 URL:
https://jiu.51yanmei.com/privacy/;技术支持 URL 填官网。
+- App 隐私(数据收集问卷):如实勾选——联系信息(手机号/账号)、用户内容(商品照片)、标识符与诊断(设备信息/异常上报);均「与用户关联」、不用于追踪(无广告/无第三方共享 → 无需 ATT 弹窗)。
+- 年龄分级:问卷全「无」→ 4+。
+- 类别:主类别「商务」,副类别「效率」。
+
+
+
+四、截图与文案素材
+
+
+| 素材 | 规格 | 说明 |
+| iPhone 截图(必需) | 6.9" 1320×2868(或 6.7" 1290×2796),3–8 张 | 模拟器 iPhone 16 Pro Max 跑 app 截核心屏:库存 / 入库 / 出库 / 财务 / 我的 |
+| iPad 截图 | 13" 2064×2752 | 工程 TARGETED_DEVICE_FAMILY = "1,2" 支持 iPad → iPad 截图为必填。已拍板(2026-07-15):保留 iPad 支持——app 响应式宽屏布局(侧边栏形态)在 iPad 上是现成的,补一套 13" 截图即可 |
+| 描述 / 关键词 | 描述 ≤4000 字,关键词 ≤100 字符 | 面向门店老板的酒类库存管理:入库出库、序列号追溯、财务应收应付、多端同步等卖点;关键词如「酒库,库存,烟酒店,进销存,序列号」 |
+| 宣传文本(可选) | ≤170 字 | 每版可改,不触发重审 |
+
+
# 模拟器截图(本机)
+open -a Simulator
+xcrun simctl boot "iPhone 16 Pro Max"
+cd client && flutter run -d "iPhone 16 Pro Max" --release
+# 逐屏进入后:
+xcrun simctl io booted screenshot ~/Desktop/shot-inventory.png
+
+
+五、构建上传 TestFlight
+
+
+- 正常发版即可:
/release client 1.1.x → CI build-ios job 自动出 ipa 并上传 TestFlight。
+- 已知坑:Xcode 26.2 偶发
CompileStoryboard failed(无具体错误)——不是工程问题,CI 重跑即成功。
+- 构建在 ASC「TestFlight」页处理完成(几分钟到 1 小时)后,回到 App「分发」页 → 「构建版本」→ 选中该 build。
+
+
+
+六、提交审核
+
+
+- 审核备注(App Review 信息)必填演示账号:app 登录必需 → 提供一个演示门店的账号密码(用种子数据门店,切勿给真实客户数据)。备注里同时写清商业模式,堵 3.1.1 质询:
+
本 App 为多平台门店库存管理服务(macOS/Windows/Web/Android/iOS)。
+iOS 版不含任何应用内购买或外部购买引导;订阅授权通过用户在
+其他平台获得的兑换码激活(审核指南 3.1.3(b) 多平台服务)。
+演示账号:门店编号 S003 · 用户名 admin · 密码见 backend/seeds/S003.sql
+(预置演示数据,可完整体验)。
+已拍板用 S003(御品轩名酒坊)做演示门店,seed 含 admin/operator/test 三账号——但当前种子只有账号、没有业务数据,且只进过本地库。提审前须:① 在线上建好 S003 门店与账号(改生产库前先备份,遵守既有红线);② 录入一批演示库存/出入库/财务数据——审核员登录后空白页面有 4.2 最小功能被拒风险。
+- 版本发布方式选「手动发布」:过审后自己控制上架时机(配合 version.yaml 链接更新)。
+- 提交 → 一般 24–48h 出结果。
+
+
常见被拒点自查:① 3.1.1——iOS 包内残留价格/购买/「去官网」文案(已由 hideExternalPurchaseUi 收口,新增页面注意遵守);② 演示账号登不上/数据空白;③ 2.1——启动崩溃或明显 bug(提审构建先在 TestFlight 真机过一遍);④ 中国区备案号未填或与名称不符。
+
+
+七、过审后收尾
+
+
+- 手动点「发布此版本」→ 数小时内 App Store 可搜到。
+- 拿到商店链接
https://apps.apple.com/cn/app/id〔AppID〕 → 填入 backend/config/version.yaml 的 download_urls.ios,随下一次 client 发版生效(官网下载页与后端 /version 实时读,无需重建官网/重启后端)。
+- 日常节奏:每次 client 发版 CI 自动上 TestFlight;提审 App Store 是手动动作——可攒功能大版本再提审,小修版只走其他平台。
+- 长期备忘:发行证书 2027-06-16 到期,换证后公钥/SHA-1 变化,须在阿里云做 App 备案变更,否则商店端校验不一致有下架风险。
+
+
+
+流程总览
+
+
+| # | 步骤 | 谁做 | 耗时 |
+| 1 | 查 App 备案号 + 关于页展示(原型先行,并入 client 1.1.9) | 用户查号,Claude 改码 | 0.5 天 |
+| 2 | ASC 建 App(名称/Bundle/免费/中国大陆) | 用户(Apple 账号操作) | 10 分钟 |
+| 3 | App 信息:备案号 / 隐私问卷 / 分级 / 类别 | 用户 | 30 分钟 |
+| 4 | 截图(iPhone 必需 + iPad)与描述文案 | Claude 出图出稿,用户上传 | 0.5 天 |
+| 5 | 发版构建 → TestFlight → 选中构建 | CI 自动 + 用户点选 | 1–2 小时 |
+| 6 | 提审(演示账号 + 3.1.3(b) 备注,手动发布) | 用户 | 审核 24–48h |
+| 7 | 发布 + version.yaml 填商店链接 | 用户点发布,Claude 改配置 | 数小时 |
+
+
+
+2026-07-15 制定 · 关联:docs/ios-signing.md(签名一次性配置)· 备案参数见项目记忆 project-app-icp-filing
+
+