From 1167a01c6a735ef19eca5d5d9bbb32ed1d372631 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Wed, 15 Jul 2026 06:49:57 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20iOS=20App=20Store=20=E4=B8=8A=E6=9E=B6?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=20runbook=EF=BC=88=E5=A4=87=E6=A1=88-2A/?= =?UTF-8?q?=E4=BF=9D=E7=95=99=20iPad/S003=20=E6=BC=94=E7=A4=BA=E9=97=A8?= =?UTF-8?q?=E5=BA=97=E5=B7=B2=E6=8B=8D=E6=9D=BF=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- docs/index.html | 1 + docs/runbooks/ios-appstore-release.html | 160 ++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 docs/runbooks/ios-appstore-release.html 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.plistITSAppUsesNonExemptEncryption=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.cer2027-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.yamldownload_urls.ios 为空,过审后填 App Store 链接(第 7 步)
    +
    + +

    一、拿号 + App 内展示备案号(唯一代码改动)

    +
    +
      +
    1. App 备案号 = 京ICP备2026039814号-2A(岩美酒库 iOS App;主体号无后缀、网站为 -1。真相源:brain 账号地图)。
    2. +
    3. 关于页页脚补展示:网站号旁加一行 App 备案号(同样链到 beian.miit.gov.cn)。按 design-first 铁律:先改 design/prototype/ 关于屏原型 → 再改 client/lib/screens/about/about_screen.dart(桌面+移动两处页脚),同一提交落地。
    4. +
    5. 该改动并入下一个 client 版本即可(如 1.1.9),不必单独发版——但提审的构建必须已含此展示
    6. +
    +
    + +

    二、App Store Connect 建 App

    +
    +
      +
    1. 登录 appstoreconnect.apple.com → 我的 App → 「+」新建 App。
    2. +
    3. 平台 iOS;名称 「岩美酒库」;主要语言 简体中文;Bundle ID 选 com.yanmei.jiu;SKU 填 jiu-ios
    4. +
    5. 价格与销售范围:价格 免费;销售范围至少勾选 中国大陆(其他地区随意,无备案要求)。
    6. +
    +
    名称必须与备案一字不差:备案登记的 App 名称是「岩美酒库」,ASC 上架名、App 内显示名保持一致,改名需先做备案变更。
    +
    + +

    三、填 App 信息(一次性)

    +
    +
      +
    1. 中国大陆合规信息:App 信息页 →「中国大陆的互联网信息服务备案」→ 类型选 ICP 备案,填第 1 步拿到的 App 备案号。缺此项中国区直接驳回
    2. +
    3. 隐私政策 URLhttps://jiu.51yanmei.com/privacy/;技术支持 URL 填官网。
    4. +
    5. App 隐私(数据收集问卷):如实勾选——联系信息(手机号/账号)、用户内容(商品照片)、标识符与诊断(设备信息/异常上报);均「与用户关联」、不用于追踪(无广告/无第三方共享 → 无需 ATT 弹窗)。
    6. +
    7. 年龄分级:问卷全「无」→ 4+。
    8. +
    9. 类别:主类别「商务」,副类别「效率」。
    10. +
    +
    + +

    四、截图与文案素材

    +
    + + + + + + +
    素材规格说明
    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

    +
    +
      +
    1. 正常发版即可:/release client 1.1.x → CI build-ios job 自动出 ipa 并上传 TestFlight。
    2. +
    3. 已知坑:Xcode 26.2 偶发 CompileStoryboard failed(无具体错误)——不是工程问题,CI 重跑即成功。
    4. +
    5. 构建在 ASC「TestFlight」页处理完成(几分钟到 1 小时)后,回到 App「分发」页 → 「构建版本」→ 选中该 build。
    6. +
    +
    + +

    六、提交审核

    +
    +
      +
    1. 审核备注(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 最小功能被拒风险。
    2. +
    3. 版本发布方式选「手动发布」:过审后自己控制上架时机(配合 version.yaml 链接更新)。
    4. +
    5. 提交 → 一般 24–48h 出结果。
    6. +
    +
    常见被拒点自查:① 3.1.1——iOS 包内残留价格/购买/「去官网」文案(已由 hideExternalPurchaseUi 收口,新增页面注意遵守);② 演示账号登不上/数据空白;③ 2.1——启动崩溃或明显 bug(提审构建先在 TestFlight 真机过一遍);④ 中国区备案号未填或与名称不符。
    +
    + +

    七、过审后收尾

    +
    +
      +
    1. 手动点「发布此版本」→ 数小时内 App Store 可搜到。
    2. +
    3. 拿到商店链接 https://apps.apple.com/cn/app/id〔AppID〕 → 填入 backend/config/version.yamldownload_urls.ios,随下一次 client 发版生效(官网下载页与后端 /version 实时读,无需重建官网/重启后端)。
    4. +
    5. 日常节奏:每次 client 发版 CI 自动上 TestFlight;提审 App Store 是手动动作——可攒功能大版本再提审,小修版只走其他平台。
    6. +
    7. 长期备忘:发行证书 2027-06-16 到期,换证后公钥/SHA-1 变化,须在阿里云做 App 备案变更,否则商店端校验不一致有下架风险。
    8. +
    +
    + +

    流程总览

    +
    + + + + + + + + + +
    #步骤谁做耗时
    1查 App 备案号 + 关于页展示(原型先行,并入 client 1.1.9)用户查号,Claude 改码0.5 天
    2ASC 建 App(名称/Bundle/免费/中国大陆)用户(Apple 账号操作)10 分钟
    3App 信息:备案号 / 隐私问卷 / 分级 / 类别用户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
    + +