应用商店预览地址:https://apps.apple.com/cn/app/aceword/id1665061271
一、大致介绍
整个上架前前后后花了快一个月时间,终于赶在除夕审核通过,顺利上架。
本篇博客记录这次苹果应用商城上架的大致流程,以及踩过的坑。希望对你们有帮助。
我们使用flutter进行开发,对于iOS版本进行少部分修改,就可以直接提交,下面是关键流程。
二、关键流程
1. 注册公司账号
1.1 邓白氏编码(D-U-N-S编号)
这个是企业身份标识,注册Apple公司主体账号必须先申请这个。大概花了5天?直接在苹果开发者官网申请。
https://developer.apple.com/enroll/duns-lookup/#!/search 底部
1.2 个人账号迁移
最开始打算用个人账号,迁移至公司主体,但是这个过程特别慢。下面这一步卡了一个多月。于是只好新注册一个公司账号,损失688😭。
2. 内购
2.1 银行账户、报税单
填写银行账户的表单中,只有 CNAPS 代码稍微麻烦些,可以去百度上搜一下。
报税单的话,可以参考这个文章:https://blog.csdn.net/joinclear/article/details/107641680
2.2 创建商品
商品分为两大类,四小类。
大类 | ||
---|---|---|
App 内购买项目 | 消耗型项目 | 非消耗型项目 |
订阅 | 自动续期订阅 | 非自动续期订阅 |
需要注意的点是,
- 这个产品ID不能修改,即使删掉该商品,也不能复用。
- 价格不能随意输,只能使用内置价格表,但是即使对于下图,4个$0.99,他们对应的人民币也不一样。可以点击其他货币查看。
2.3 支付的前后端设计
2.3.1 iOS端
我们使用flutter的第三方包in_app_purchase,调起内购,完成支付后,会得到一个PurchaseVerificationData,拿着这个凭证发给后端。
https://pub.dev/packages/in_app_purchase
2.3.2 java后端
我们后端用的java,收到前端发来的支付凭证后,向苹果服务器验证。
请求:
- method:
POST
- url:
https://buy.itunes.apple.com/verifyReceipt
- data:
{"receipt-data":"支付凭证","password":"密钥"}
注意点:
- 该验证只能验证凭证是否valid,并且可多次验证,所以需要自行处理逻辑。
- 前后端通信时,须携带产品id,因为苹果那边返回的是最近所有的交易明细,跟当前凭证无关。
3. 审核时需要注意的问题
3.1 预览图
预览图须至少包含四个尺寸。
3.2 第三方登录
如果提供比如微信登录这种第三方登录,则需要同时提供Apple登录,否则会审核失败。
3.3 Apple登录按钮的文案
只有两种文案可以选择,市面上大部分app放的是Apple的logo图标。
我们最开始用的使用Apple ID登录,被拒审了~只能如下文案(不确定):
- 通过Apple登录
- 通过Apple继续
3.4 审核时效
第一次提交,我们通常是凌晨2-3点发布,会在第二天下午4点左右,由“正在等待审核”,变为“正在审核”,并且基本在5点左右会出结果。
3.5 ipv6的问题
服务器要开启ipv6的支持。
4. 其他流程
4.1 微信登录与跳转
我们使用flutter的第三方包fluwx,进行微信登录与微信支付。
https://pub.dev/packages/fluwx
iOS的微信登录需要获取universal link
效果为使用Safari访问https://link.aceword.xyz,即可跳转到app。
注意点:
苹果审核时,他们的手机上没有安装微信的话,需要隐藏 ”使用微信登录“按钮。
4.2 Apple登录
使用sign_in_with_apple进行ios端的苹果登录。最终只能获得用户的email及name。
https://pub.dev/packages/sign_in_with_apple
篇幅原因,写的不太详细,大家对哪一部分感兴趣可以留言交流。