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. 关于页页脚补展示:网站号旁加一行 App 备案号(同样链到 beian.miit.gov.cn)。按 design-first 铁律:先改 design/prototype/ 关于屏原型 → 再改 client/lib/screens/about/about_screen.dart(桌面+移动两处页脚),同一提交落地。
  3. 该改动并入下一个 client 版本即可(如 1.1.9),不必单独发版——但提审的构建必须已含此展示

二、App Store Connect 建 App

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

三、填 App 信息(一次性)

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

四、截图与文案素材

素材规格说明
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 字每版可改,不触发重审

可直接粘贴的文案(2026-07-15 备稿)

◆ 副标题(≤30 字符)
酒类门店进销存与序列号溯源

◆ 宣传文本(≤170 字符)
为酒水批发与零售门店打造的进销存管理工具:入库出库、序列号溯源、
财务应收应付、多端同步,一套搞定。

◆ 描述(≤4000 字符)
岩美酒库是面向酒水批发与零售门店的进销存管理系统,把入库、出库、
库存、财务对账与序列号溯源整合在一套简洁可靠的产品里。

【核心功能】
· 库存管理:实时库存台账,支持汉字/拼音/首字母快速搜索,安全库存
  预警,一目了然
· 序列号溯源:每一瓶酒独立编号建档,品牌/型号/版本/批次/生产日期
  全程可查,杜绝串货错账
· 入库出库:单据化流转,草稿—审核—入账全流程留痕,支持撤回与退单
· 财务对账:应收应付自动汇总,往来单位逐笔可查,利润统计清晰
· 基础数据:品牌/型号/版本字典统一维护,录单选择即建档
· 多端同步:iPhone / iPad / Mac / Windows / 网页版数据实时同步,
  店里店外无缝切换
· 多人协作:管理员/操作员/只读三种角色,成本利润仅管理员可见

【适用场景】
名酒行、烟酒店、酒类批发商、酒窖会所等需要精细化管理酒水库存与
往来账目的经营者。

【联系我们】
官网:https://jiu.51yanmei.com
客服邮箱:support@51yanmei.com

◆ 关键词(≤100 字符,半角逗号分隔)
酒库,酒水,进销存,库存管理,烟酒店,名酒,序列号,溯源,批发,零售,应收应付,对账,酒窖,库存

◆ URL 三件套
技术支持 URL:https://jiu.51yanmei.com/docs/
营销 URL(可选):https://jiu.51yanmei.com
隐私政策 URL:https://jiu.51yanmei.com/privacy/
# 模拟器截图(本机)
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. 已知坑:Xcode 26.2 偶发 CompileStoryboard failed(无具体错误)——不是工程问题,CI 重跑即成功。
  3. 构建在 ASC「TestFlight」页处理完成(几分钟到 1 小时)后,回到 App「分发」页 → 「构建版本」→ 选中该 build。

六、提交审核

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

七、过审后收尾

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

流程总览

#步骤谁做耗时
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