我创建了订阅之后,在本地 storekit 文件中同步到之后,debug 模式下能跑起来来到产品列表。
有了这个之后我就添加了后续的内购的代码。本地测试是 ok 的,但是提交 review 之后,审核那边截图给我看,产品列表都是空的。
而且每次被拒,我都需要在后台重新创建订阅产品,重新填写信息,因为我的 storekit 配置文件再也同步不到之前的那些产品。
搞了三次了,每次都等个 1-2 天,有点烦。
1
kera0a 7 天前 via iPhone
订阅不应该是 appstoreconnect 创建订阅商品后,直接调苹果接口根据商品 id 拉取信息再去付款吗?
你是不是只有本地调试文件?这个东西应该完全不需要的,仅仅用于本地调试 |
2
BadReese 7 天前
你是无服务端的模式么?如果不是,自己服务端返回内购的商品列表+id ,测试的时候一定要测到可以登陆苹果测试账号的商品支付弹窗才算完整
|
3
ryHope 7 天前
用 revenuecat 试试?
|
6
andyL OP @kera0a 我目前本地调试是根据 配置文件拉取的商品列表。我的理解是 debug 的时候,我拉商品列表必须要有这个配置文件,在审核的时候 这个配置文件会失效,代码能直接拉到商品列表。
我的这个理解是正确的吗? |
7
kera0a 7 天前 via iPhone
@andyL
不太对,这个文件仅用于调试一些复杂情况,并不是必须要的。 本地调试跑通是直接苹果后台创建商品后,用苹果的 api 拉取商品信息,再调用购买 api 直接购买,代码流程和正式购买是一样的。之后商品跟随 app 一起审核上线。 |
8
esonL 7 天前
@andyL #6 如一楼所说的,你本地的配置文件仅仅是为了方便调试自己的订阅逻辑,和苹果 AppStoreConnect 后台配置的订阅商品列表毫不相关,本地测试配置结束后需要在 Xcode 的 Edit scheme->Run->Options-> StoreKit Configuration 修改为 None ,拉取后台配置的线上数据走流程,记得本地配置好商品 id 的 group 。不知道我是否正确理解了你的意思,希望我的回答对你有帮助。
|
9
andyL OP @esonL holllllly shit..... 我第一个版本你是这么做的,但是因为别的原因拒绝了。
我理一下,您的意思是就是那些产品名字和 id 我内存中也要自己写一份,直接调用后续的购买吗?都不需要拉 appconnect 中的产品列表,直接根据我内存中的 产品 id 去调用购买就行了吗? |
10
kele999 7 天前
是有几个 product id ,然后去拉产品列表的时候,是告知拉这几个产品 id 的对应信息的。产品名称、价格等等是 connect 那边配置的,做活动的时候,去改价格就行。代码里,一开始只有那几个商品 id ,名称、价格信息全部去 apple 那边取回来,再显示。
|
11
esonL 7 天前
@andyL #9 我的意思是你本地只需要保存产品 id 的数组(可能有多个产品)就好,拿着这组产品 id 去调用苹果的接口(有现成的三方库、或者调用苹果自己提供的 API ),会返回给你一组 SKProduct ,你拿着这组返回数据进行商品列表的展示,后续的订阅、续订、退订等流程就不再进行多余的赘述了(其实这个流程就是需要本地的 StoreKit Configuration 来进行测试的意义)。你在苹果后台配置的商品列表的 id 需要和你项目里配置的产品 id 对应,如果有分组,那最好也对应上。希望我的回答能对你有所帮助。
|
12
andyL OP |
13
supercatdog 7 天前
我之前一个 app 也是这样,后台建好内购之后,本地配置 storekit 同步线上产品,然后跑起来都没有什么问题。提交的时候,审核人员无法获取内购产品。然后我在工程内不使用 storekit 配置,直接获取线上内购产品,只要一次之后就激活了,再次提交就过了。
|
14
andyL OP 我找了很多资料,换了 revenuecat 也试了。在 tf 和不含 storekit 配置的时候,还是无法 load 到产品。找了很多帖子,revenuecat 上提到的一些回复,目前我只能推测是我的税务信息还有问题。
|