应用上架核心知识点(iOS + Android + 海外)
覆盖 iOS App Store、Google Play 全流程,以及海外应用特别注意的法务、内容、支付、税务、地区合规事项。要求:准确、细致、全面、精简。
目录
一、Apple App Store 上架
1.1 证书与签名
| 类型 | 用途 |
|---|---|
| Apple Developer Program | 个人 / 公司($99/年);公司账号需 D-U-N-S 编码 |
| Apple Developer Enterprise Program | 企业内部分发($299/年,不能上架 App Store) |
| Development Certificate | 开发调试 |
| Distribution Certificate | 上架发布 |
| Provisioning Profile | App ID + 证书 + 设备的绑定关系 |
| App ID (Bundle ID) | 全局唯一(com.company.app),关联 Capabilities |
- 签名方式:Xcode Automated Signing(推荐个人/小团队)/ Manual Signing(CI/CD 必备)。
- fastlane match:把证书与 Profile 加密存 Git,团队成员与 CI 一键拉取;比
sigh/cert更安全。 - Keychain:私钥(
.p12)必须备份,丢失不可恢复。
1.2 App Store Connect 配置
- 新建 App Record:填 Name(30 字)、Primary Language、Bundle ID、SKU(内部唯一)、User Access。
- 角色权限:Admin、App Manager、Developer、Marketing、Finance、Sales;最小权限原则分配。
- TestFlight:内测(最多 100 内部测试员,无审核)/ 外测(最多 10000 外部测试员,需简短审核)。
- Sandbox Tester:用于 IAP 沙盒测试的测试账号。
- App-Specific Shared Secret:服务端验签 Receipt 时必填。
1.3 元数据(Metadata)
| 字段 | 限制 | 要点 |
|---|---|---|
| App Name | 30 字符 | 含核心关键词;与商标一致 |
| Subtitle | 30 字符 | iOS 11+,辅助关键词 |
| Promotional Text | 170 字符 | 可随时改,无需重新审核 |
| Description | 4000 字符 | 不可堆关键词,分行+重点 |
| Keywords | 100 字符 | 逗号分隔,不与 Name 重复 |
| Screenshots | 6.7"/6.5"/5.5"/iPad 多尺寸 | 必须真实 UI,不可拉伸 |
| App Preview | 15–30s,每尺寸 1–3 个 | H.264/HEVC,≤ 30MB |
| App Icon | 1024×1024 PNG | 不可含 Alpha 通道,不可圆角 |
| What's New | 自由 | 版本更新说明 |
| Privacy Policy URL | 必填 | 缺一不可上架 |
| Support URL / Marketing URL | 必填 / 可选 | |
| Copyright | 形如 2024 Company Inc. | |
| Age Rating | 问卷 | 含暴力、色情、赌博、UGC 等 |
1.4 隐私清单(PrivacyInfo.xcprivacy,iOS 17+)
xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<true/>
<key>NSPrivacyTrackingDomains</key>
<array>
<string>tracking.yourdomain.com</string>
</array>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeName</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<true/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<true/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeThirdPartyAdvertising</string>
</array>
</dict>
</array>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>- Required Reason API:
UserDefaults、FileTimestamp、SystemBootTime、DiskSpace、ActiveKeyboards,每类必须声明 Reason Code。 - App Privacy Details:在 App Store Connect 填写"数据采集类型",与隐私清单保持一致。
1.5 IAP 配置
- 产品类型:消耗型、非消耗型、自动续期订阅、非续期订阅。
- 订阅组(Subscription Group):同一组内订阅升级/降级/交叉;用户在同一时间只能持有一项。
- 本地化定价:App Store Connect 自动生成各国价格层级;可手动覆盖。
- Family Sharing:是否共享给家人组。
- Promotional Offer:针对老订阅用户的折扣(需服务端签名)。
- Offer Code:兑换码(一码一用)。
- 沙盒测试:用 Sandbox Tester;StoreKit Configuration File 支持 Xcode 本地测试(V2)。
1.6 提交构建
- 上传:Xcode → Product → Archive → Distribute App → App Store Connect;或命令行
xcrun altool --upload-app、fastlane pilot。 - 加密出口合规:Build 是否含加密?如仅 HTTPS/标准加密可勾"豁免"。
- IDFA 声明:是否使用 IDFA 跟踪广告?勾选后触发审核。
- 加急审核:每年有限次数,仅适用于紧急修复。
1.7 发布方式
- Phased Release(7 天灰度):1% → 2% → 5% → 10% → 20% → 50% → 100%,每日推一格。
- Manual Release:审核通过后手动发布。
- Version Release Control:可选自动或手动。
1.8 审核指南核心条款
| 条款 | 名称 | 触发场景 |
|---|---|---|
| 2.1 | App Completeness | 崩溃、占位符、无法登录、IPv6 不通 |
| 2.3 | Accurate Metadata | 截图与实际不符、文案提竞品名、热更新藏功能 |
| 2.5.1 | Private API | 使用私有/未公开 API |
| 2.5.6 | IPv6 | 仅 IPv6 网络无法访问 |
| 4.2 | Minimum Functionality | 纯 H5 套壳、功能过于单薄 |
| 4.3 | Spam | 马甲包、模板生成、矩阵号 |
| 5.1.1 | Data Collection | 权限说明不具体、缺账号注销 |
| 5.1.2 | Data Use | 数据用于无关用途 |
| 5.2.1 | Intellectual Property | 商标侵权、未授权内容 |
| 3.1.1 | IAP Required | 数字商品绕过 IAP |
| 3.1.2 | Subscriptions | 多端订阅未统一、缺恢复购买 |
| 3.2.2 | Unacceptable | 诱导分享/刷量 |
4.3(Spam)应对
- 底层差异化:UI、交互、核心功能必须明显不同。
- 业务定位区分:在 App Store Connect 申诉中详细阐述受众。
- 避免共用 Bundle ID 前缀、共用域名、共用代码签名特征。
- 多开发者账号风险:被关联识别后整组下架。
5.1.1 隐私要点
- Info.plist 权限文案具体到用途("用于上传头像",不是"用于访问相册")。
- 账号注销必须Hard Delete:连同 UGC、关联数据一起删,并通知第三方服务。
- 不强制索要无关权限才能进主界面。
3.1.1 支付要点
- 数字商品/服务必须用 IAP:VIP、虚拟币、订阅、解锁功能。
- 实物商品、打车、外卖、机票可走第三方支付。
- Reader App 例外(2022 反垄断和解):流媒体/阅读类可放外部链接。
- 欧盟 DMA:2024 起允许第三方支付商店(External Link Entitlement)。
- 不可出现:第三方支付图标、跳转链接、"前往官网购买"等引导。
1.9 苹果新技术合规
- Live Activities / ActivityKit(iOS 16.1+):必须在隐私政策中说明数据采集。
- WidgetKit:不可用作纯广告位。
- App Intents / Siri Shortcuts:涉及系统级集成,需测试无崩溃。
- Vision Pro:是否兼容、是否需要专属体验。
- Push Notifications:需在 Capabilities 启用 Push Notifications。
二、Google Play 上架
2.1 签名
- Play App Signing:Google 用
App Signing Key(最终签名)+ 你上传用Upload Key(每次上传校验)。 - 强烈建议加入 Play App Signing:丢失 Upload Key 可申请重置;不加入则丢 Key 整 App 报废。
- keystore.jks:本地妥善保管,密码可用
keytool管理。 - 签名密钥升级:Play Console 支持申请密钥升级(同一应用更换签名密钥,需用户接受过渡)。
2.2 Play Console 配置
- 商店资料:App Name、Short Description(80 字)、Full Description(4000 字)、Icon、Feature Graphic、Screenshots、Promo Video。
- 内容分级问卷(IARC):填问卷自动生成分级(ESRB/PEGI/USK/GRAC/ClassInd 等)。
- 数据安全声明(Data Safety Form):声明收集的数据类型、用途、是否分享、是否加密、能否删除。
- 目标受众和内容:13 岁以下儿童标记可能触发 Designed for Families。
- 政府应用 / 新闻应用 / 金融应用:各自有专属声明。
- 隐私政策 URL:必填。
- 应用内分级 / 内容分级:每个地区可独立配置。
2.3 商店资料
| 字段 | 限制 |
|---|---|
| App Name | 30 字符 |
| Developer Name | 50 字符 |
| Short Description | 80 字符 |
| Full Description | 4000 字符 |
| App Icon | 512×512 PNG,32-bit |
| Feature Graphic | 1024×500 PNG/JPG |
| Screenshots | 2–8 张;Phone / Tablet / Wear / TV 多形态 |
| Promo Video | YouTube 链接 |
| Localized Listings | 支持 70+ 语言 |
2.4 上传产物
- Android App Bundle (.aab):Google Play 2021 起强制接收;自动 Slicing 出 APK 给用户。
- Split APK:原生分发用(不通过 Play)。
- Dynamic Feature Module (DFM):用户按需下载功能模块(如相机特效)。
- Asset Packs:大资源(>150MB)动态下发,最大 2GB;游戏常用。
- ProGuard / R8 混淆:
minifyEnabled true、shrinkResources true;保留 mapping.txt 用于崩溃符号化。
2.5 测试轨道(Tracks)
| 轨道 | 人数 | 备注 |
|---|---|---|
| Internal Testing | 100 人 | 立即生效,无需审核 |
| Closed Testing (Alpha) | 按邮件邀请 | 可分多个轨道 |
| Open Testing (Beta) | 任意用户 | 用户在 Play 中可搜到,标注"测试版" |
| Production | 灰度 1%/10%/50%/100% | Staged Rollout,可随时暂停 |
| Managed Publishing | 控制版本审批与上线时机 | 审核通过后手动发布 |
2.6 Google Play Billing
- BillingClient(5/6/7):必须用最新主版本,旧版会拒绝上架。
- 产品类型:One-time Product、Subscription(Base Plan + Offer)。
- Base Plan:基础方案;Offer:免费试用、首月优惠、促销码。
- Region Pricing:各国独立价格;建议按"购买力平价"设置。
- Promo Codes:兑换码(一码一用,年度限额 500/季度)。
- User Choice Billing(韩国、欧盟、印度、印尼、日本试点):可集成第三方支付,但需向 Google 仍支付服务费(11%/26%)。
- 必须走 PBL:数字商品(虚拟币、订阅、解锁);实物商品、网约车、机票可走第三方。
2.7 Play 政策核心条款
- Spam & Minimum Functionality(4.3 的兄弟条款):重复内容、自动生成、功能过于单薄。
- Repetitive Content:跨 App 复制粘贴的模板。
- Impersonation:与已知品牌相似。
- Intellectual Property:商标/版权侵权。
- Deceptive Behavior:伪装、误导。
- Permission Policy:高危权限(SMS、Call Log、Location、All Files Access)严格限制用途。
- Background Location:仅地图/导航/健身可申请。
- Notification Permission(Android 13+):需运行时申请。
- Foreground Service(Android 14+):必须声明
foregroundServiceType。 - Malware:检测 PUA(潜在有害应用)。
- Target API Level:每年提升门槛(2024 要求 Target 34)。
2.8 Data Safety 表要点
- 数据类型:位置、联系、照片、文件、ID 等。
- 用途:App 功能、分析、广告、开发者用。
- 是否分享给第三方:SDK 间共享也算。
- 是否加密:传输加密 + 存储加密。
- 能否删除:用户可申请删除数据。
- 隐私政策一致:声明必须与代码实际行为完全一致。
2.9 Play Integrity API
- Google 推出替代 SafetyNet 的服务。
- 三类校验:设备完整性(真机/未 Root)、应用完整性(签名一致)、账号/许可证(已购买)。
- 用于:防作弊、防外挂、防恶意 Mod、防越狱设备。
- 服务端可主动返回 "Play Integrity Token" 给后端校验。
三、海外应用特别注意
3.1 法规矩阵
| 地区 | 法规 | 注意点 |
|---|---|---|
| 欧盟 | GDPR / DSA / DMA | CMP 弹窗、第三方支付开放、内容透明 |
| 欧盟 | Cookie Law / ePrivacy | 必须用户同意才设非必要 Cookie |
| 美国加州 | CCPA / CPRA | "Do Not Sell My Info" 链接 |
| 美国联邦 | COPPA | 13 岁以下儿童应用需家长同意 |
| 美国 | HIPAA | 健康数据需特殊处理 |
| 巴西 | LGPD | 类 GDPR |
| 加拿大 | PIPEDA | 隐私合规 |
| 中国 | PIPL | 数据出境安全评估 |
| 韩国 | PIPA | 14 岁以下家长同意 |
| 韩国 | Game Industry Act | 游戏需 GRAC 分级(强制) |
| 日本 | 资金决済法 | 虚拟货币、积分系统登记 |
| 日本 | 个人情报保护法 | 类 GDPR |
| 俄罗斯 | Federal Law 152-FZ | 数据本地化(用户数据存俄罗斯) |
| 印度 | DPDP Act 2023 | 数字个人数据保护 |
| 越南 | Decree 13/2023 | 数据本地化 |
| 印尼 | PDP Law | 数据保护 |
| 阿联酋 | PDPL | 隐私法规 |
3.2 隐私政策要点
- 数据采集范围:列明设备 ID、位置、联系人、相册等。
- 采集目的:每项数据对应用途。
- 第三方 SDK 清单:名称、SDK 名、采集数据类型、隐私政策链接(Firebase、AppsFlyer、Adjust、Crashlytics 等)。
- 数据存储地点:服务器地理位置。
- 用户权利:访问、修改、删除、导出、撤回同意;GDPR 须 30 天内响应。
- Cookie/SDK Policy:列出所有使用 Cookie 与 SDK 的第三方。
- 儿童隐私:单独章节。
- 国际传输条款:SCC、BCRs。
- 政策变更通知:邮件、App 内通知。
- 联系信息:DPO(Data Protection Officer)邮箱。
3.3 支付合规
- 苹果抽成:30%(标准)/ 15%(小型开发者计划,年净收入 < $100 万)。
- 谷歌抽成:30% / 15%(小型开发者计划,年收入前 $1M 15%)/ 11%(订阅 12 个月后用户)。
- 欧盟 DMA:2024 起 Apple 须允许第三方支付/商店,"External Link Entitlement";Google 须允许 User Choice Billing。
- 韩国:全球首个立法强制开放第三方支付。
- 替代支付链接:Reader App(阅读、流媒体)反垄断和解可放外部链接(仅美国市场)。
- 反洗钱 AML / KYC:金融类应用必须有用户身份验证流程。
- PCI DSS:信用卡数据不得在 App 内直接处理,必须走支付网关。
3.4 内容审查
- 政治敏感:台湾、香港、新疆、藏独等内容在大陆市场严格审查;其他地区一般宽松。
- 宗教:中东禁止猪肉/酒精/赌博/LGBTQ+ 元素。
- 色情 / 暴力:分级(IARC、PEGI、ESRB)。
- UGC 类:必须有内容审核机制(自动 + 人工)、举报入口、删除流程、DMCA Takedown(美国)。
- 博彩类:各国牌照要求不同,多数国家需运营地牌照。
- 金融类:部分国家需金融牌照或资质声明。
3.5 推广与 ASO
- 关键词策略:每地区独立调研(不要直接翻译英文关键词)。
- 截图本地化:UI 文字、文案、模特、色调按文化调整。
- 评分评价管理:Play Console / App Store Connect 都可回复评论;评分低于 4.0 严重影响下载。
- Apple Search Ads(ASA):CPA 模式,按 TTR/CVR 出价;海外获客主要渠道之一。
- Google UAC(Universal App Campaign):自动化投放 YouTube/Search/Play/Display。
- Meta Ads:Facebook/Instagram,配合 CAPI 服务端归因。
- TikTok Ads:海外年轻用户核心。
- 网红营销:地区化合作(北美 YouTuber、东南亚 TikToker)。
3.6 客服与用户支持
- 多语言客服:英语、西语、葡语、日语、阿拉伯语。
- Helpshift / Zendesk:集成 IM 客服、FAQ、推送召回。
- GDPR 数据请求响应:30 天内提供数据/删除;通过专属 Portal 或邮箱。
- CCPA "Do Not Sell" 链接:网页 + App 内。
- 退款政策:清晰可查;用户在 App 内购买后通过 Apple/Google 系统申请退款。
3.7 税务
- Apple / Google:自动代扣部分国家销售税/VAT/GST,开发者收净分成。
- W-8BEN:非美国开发者收美国收入必填,否则预扣 30%。
- 欧盟 OSS(One Stop Shop):数字服务 VAT 一站式申报。
- 日本消费税:10%;JCT(Invoice 制度)2023 起强制。
- 韩国 VAT:10%;B2C 数字服务需在韩登记。
- 印度 GST:18%;数字服务需登记。
- 俄罗斯 VAT:20%;2022 起对部分跨境数字服务征免。
3.8 本地化细节(容易踩坑)
- 颜色:白色在亚洲部分国家代表丧礼;红色在中国喜庆、在西方警示;紫色在巴西象征死亡。
- 节日:黑色星期五、圣诞、斋月、双 11、情人节、儿童节按地区运营。
- 数字格式:印度用 Lakhs/Crores(1,00,000);欧洲分位符
1.234,56。 - 日期格式:美
MM/DD/YYYY、欧DD/MM/YYYY、ISOYYYY-MM-DD。 - 货币符号:$ 不一定是美元(澳元、加元、新西兰元都用);¥ 是日元也是人民币。
- 电话区号:+1(美加)、+44(英)、+81(日)、+86(中)。
- 姓名:日韩姓名在前姓在后;欧美姓名在前;西班牙语系双姓。
- 地址格式:美国是街道-城市-州-邮编;日本是邮编-都道府县-市区-町;中国是省-市-区-街道-邮编。
- 时区显示:跨时区用户必须按其当前时区显示,不可硬编码服务端时区。
3.9 数据合规
- 数据本地化:俄罗斯(用户数据存俄境内)、印度(支付数据存印度境内)、越南(特定数据存越南)。
- 跨境传输:欧盟→美国 须走 SCC 或 DPF;中国数据出境须安全评估(PIPL)。
- 服务器地区分布:建议美东(北美)、欧洲(法兰克福/爱尔兰)、亚太(新加坡/东京/悉尼)多区域。
- 备份策略:跨区域冷备;GDPR 备份须能识别用户删除请求("Right to be Forgotten")。
3.10 监控与运营
- 评论监控:AppFollow / AppFigures 统一聚合。
- 舆情监控:Twitter、Reddit、Discord、Telegram、TikTok 评论。
- 回复评论:评分每提升 0.1,转化率显著提升。
- 防止 4.3 马甲:避免共用代码签名、域名、品牌;多账号用独立 Apple ID 与 Google 账号。
- 防止账号封禁:严格遵守反洗钱、反欺诈、反恐怖主义条款;金融类尤其敏感。
3.11 法务主体
- 香港公司:低税率(8.25%/16.5%)、易开银行账户、与中国大陆友好。
- 新加坡公司:17% 所得税,但新创企业前三年减免;声誉好。
- BVI / 开曼:零税,常作 VIE 架构顶层,但开银行账户难。
- 美国 LLC(怀俄明/特拉华):非美居民可注册,收 Apple/Google 收款方便;但需申报 Form 5472。
- 中国大陆主体:上架国内应用市场必备;ICP 备案、软著。
四、其他分发渠道
| 渠道 | 地区 | 备注 |
|---|---|---|
| Samsung Galaxy Store | 全球 | 三星设备,可双发布 |
| Huawei AppGallery | 全球(中国主力) | 华为设备,海外无 GMS |
| Xiaomi / OPPO / VIVO / 应用宝 | 中国 | 各家商店独立审核 |
| Amazon Appstore | 美国 | Fire 平板、Fire TV |
| One Store | 韩国 | 韩国 20%+ 市场份额 |
| Yandex Store / RuStore | 俄罗斯 | Google Play 受限 |
| APKMirror / APKPure | 全球 | 第三方 APK 分发(绕过 Play) |
| Web 直接下载 | 全球 | iOS Enterprise 不可对外,Android sideload |
| Microsoft Store | Windows | 可分发 Android 应用(WSA 已废弃) |
附:上架 Checklist 全量版
iOS App Store
- [ ] Apple Developer 账号(公司账号需 D-U-N-S)
- [ ] Bundle ID、App ID、Capabilities 配置
- [ ] Distribution Certificate + Provisioning Profile
- [ ] fastlane match 证书同步
- [ ] App Store Connect 新建 App Record
- [ ] App Name、Subtitle、Description、Keywords
- [ ] Promotional Text、What's New
- [ ] 多尺寸 Screenshot + App Preview 视频
- [ ] App Icon 1024×1024
- [ ] Privacy Policy URL、Support URL、Marketing URL
- [ ] Age Rating 问卷完成
- [ ] Copyright、Trade Dress
- [ ] PrivacyInfo.xcprivacy 配置完整
- [ ] App Privacy Details(数据采集类型)与代码一致
- [ ] ATT Pre-Prompt + System ATT 弹窗
- [ ] 账号删除入口(Hard Delete)
- [ ] IAP 产品配置、订阅组、本地化定价
- [ ] IAP 沙盒测试 + S2S 验签
- [ ] StoreKit 2 + Transaction.updates 监听
- [ ] 防掉单:本地持久化 + 服务端确认 + 启动恢复
- [ ] 加密出口合规、IDFA 声明
- [ ] TestFlight 内测 + 外测
- [ ] 审核备注、演示账号
- [ ] Phased Release 灰度配置
- [ ] 监控:Crashlytics / Sentry 上线
- [ ] dSYM 上传符号化
- [ ] 推送:APNs 证书(或 .p8 Token)
Google Play
- [ ] Google Play 开发者账号(个人 $25 一次性 / 公司)
- [ ] Play App Signing 加入
- [ ] Upload Key + keystore.jks 备份
- [ ] 商店资料(App Name、Short/Full Description)
- [ ] Icon 512×512、Feature Graphic 1024×500
- [ ] 多形态 Screenshots(Phone/Tablet/Wear/TV)
- [ ] Promo Video(YouTube)
- [ ] Localized Listings(多语言)
- [ ] 内容分级问卷(IARC)
- [ ] Data Safety Form
- [ ] Target Audience & Content
- [ ] 政府 / 新闻 / 金融 应用专属声明(如适用)
- [ ] Privacy Policy URL
- [ ] AAB 上传 + R8 混淆
- [ ] mapping.txt 上传 Play Console
- [ ] BillingClient 最新主版本
- [ ] Base Plan + Offer 配置
- [ ] Region Pricing 各国价格
- [ ] Promo Codes
- [ ] Internal / Closed / Open 测试轨道
- [ ] Production 灰度 1% → 10% → 50% → 100%
- [ ] Managed Publishing 控制
- [ ] 监控:Crashlytics / Play Vitals
- [ ] 推送:FCM 配置
- [ ] Play Integrity API 集成
海外合规通用
- [ ] 多语言隐私政策(GDPR / CCPA / PIPL 重点地区)
- [ ] UMP SDK 弹窗
- [ ] 第三方 SDK 清单与隐私声明一致
- [ ] 数据存储地区规划(多区域)
- [ ] W-8BEN(如适用)
- [ ] 商标注册(核心市场)
- [ ] DMCA Takedown 流程(UGC 类)
- [ ] 评论监控 + 多语言客服
- [ ] ASO + ASA / UAC / Meta Ads 投放
- [ ] 税务:VAT / GST / JCT 申报
- [ ] 法务主体:香港 / 新加坡 / BVI
- [ ] 灰度 + 回滚机制