App Store 海外上架与海外基础设施:TestFlight、全球节点、收款与税务
补全海外发布另一半:App Store 审核与 TestFlight、隐私标签,以及面向海外用户该如何选服务器与 CDN、用 Stripe/Paddle 收款并处理税务、选 FCM 等海外基础服务,给出独立开发者最小可行海外架构
- 掌握 App Store 海外上架流程、TestFlight 内测与审核要点
- 理解海外服务器选址与全球 CDN 的作用,会选就近区域
- 分清 Stripe 与 Paddle(MoR) 在收款和税务上的差异
- 能为独立产品搭出一套最小可行的海外技术架构
海外发布:App Store + 一套海外基础设施
海外的 iOS 仍走 App Store,但用户、服务器、支付、推送、合规体系全部换成海外生态。这一课先过 App Store 海外上架,再讲支撑海外用户的基础设施怎么选,最后给独立开发者一套最小架构。费用、分成、审核时长、税率以各平台官方最新信息为准。
App Store 海外上架与 TestFlight
App Store 海外发布链路
① Apple Developer 账号、证书与描述文件(Stage15-m8)
② Xcode Archive 上传构建版本到 App Store Connect
③ 填写 App 隐私标签(Privacy Label):如实声明数据采集
④ TestFlight:先拉测试员内测(可分内部测试组/外部测试组)
⑤ 提交 App Review,按 App Review Guidelines 自查
⑥ 通过后可手动/定时/分阶段发布(Phased Release)
数字订阅/虚拟商品走 IAP;实物或线下服务可用第三方支付iOS 审核相对严格,先用 TestFlight 让真实用户装测试版跑一轮(外部测试人数上限较大),把崩溃、权限、付费链路问题在正式审核前解决。审核被拒会收到具体条款编号,对照指南修复后重新提交,不要在没解决问题时反复原样提交。
海外服务器与全球 CDN
海外用户离大陆服务器远、跨境链路不稳,所以面向海外必须把服务部署在离用户近的区域(如用户在北美选美西/美东、欧洲选法兰克福、东南亚选新加坡),并用全球 CDN(如 Cloudflare 一类)把静态资源缓存到全球边缘节点。好处:就近访问延迟低、隐藏源站 IP、附带 DDoS 防护与免费证书。
Stripe 与 Paddle:收款主体和税务是关键区别
海外收款两种主流路线:Stripe 这类支付基础设施——它帮你处理收单、订阅、防欺诈,但法律上「你自己」是销售主体,需要自己注册合适的经营主体、自己处理各国增值税(VAT)/销售税(Sales Tax)合规;Paddle 这类 Merchant of Record(记录商户/MoR)——它作为法律意义上的卖方向用户收款、再结算给你,由它代征代缴全球增值税、处理退款和部分合规,接入更省心但抽成更高。独立开发者若不想一开始就面对全球税务,MoR 模式通常更省事;规模大、想掌握客户与费率时再考虑 Stripe 直连。
向欧盟用户销售要面对 VAT、英国 VAT、美国各州 Sales Tax;数据上要面对 GDPR(欧盟)、CCPA(加州)等,核心要求包括:合法采集、明确同意、隐私政策、数据可导出与可删除(被遗忘权)。技术上要预留「导出我的数据」「删除我的账号与数据」能力,这和国内的注销要求方向一致、可以同一套能力复用,Stage16-m5 展开。
独立开发者的最小海外架构
最小可行海外架构(一个人也能维护)
- 一个就近区域云服务器(或 Serverless) + 全球 CDN(带证书)
- 静态站点/资源走 CDN,一个无状态 API 后端
- 一个托管数据库(优先云厂商托管、自动备份)
- 大模型/TTS 等第三方走服务端中继(同 Stage15-m7)
- 收款:早期用 MoR(如 Paddle)省税务,iOS 内购走 IAP
- 推送 FCM、崩溃与统计选一套海外可用服务
- 隐私政策 + 数据删除/导出入口 + 基础监控告警
朋友好学海外版 pygoodly 即按「独立品牌、独立海外栈」分治,避免与国内栈强耦合国内栈和海外栈为什么不强行共用(选学)
国内依赖的某些推送、统计、支付、大模型服务在海外不可用或体验差,海外服务在大陆也可能访问不稳;数据合规上两边要求也不同。强行用一套栈服务全球,会出现「一边合规一边违规、一边快一边慢」。更稳的是按市场分栈:客户端尽量复用同一套代码、用配置切换 API 地址与第三方通道,后端与数据按地区独立。这样某一侧出问题或被审核,不会拖垮另一侧。
独立开发者第一次做海外付费、且不想自己处理全球增值税/销售税,更适合的选择是?
本节小结
App Store海外:Archive上传→App Store Connect填隐私标签→TestFlight内外测→按审核指南自查提审→通过后可定时/分阶段发布,数字商品走IAP、被拒按条款修复勿原样重提。海外基础设施:服务器选就近区域(北美/法兰克福/新加坡)、全球CDN边缘加速隐藏源站带DDoS防护与证书。收款:Stripe是支付基础设施、自己为销售主体自负VAT/Sales Tax;Paddle等MoR作为法律卖方代收代征全球税、省心抽成高,早期更适合。海外合规GDPR/CCPA要求同意/隐私政策/数据导出删除,可与国内注销能力复用。推送FCM、崩溃统计选海外可用服务。最小海外架构=就近服务器+全球CDN+无状态API+托管数据库+服务端中继第三方+MoR/IAP收款+FCM+删除导出+监控;中外分栈、客户端复用代码用配置切换。
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
国内各应用商店通常要求独立渠道包或渠道标识,用于分别提审、升级提示和来源统计。正确做法是所有渠道共用同一份代码,只在构建时注入不同渠道号,用构建脚本一次出齐,并逐一回验每个包的签名、版本号和渠道标识;手工改包最容易导致某个商店常年停在旧版、用户一直收不到更新。