Swiftui付费订阅验证verifyReceipt一直返回21002的解决办法

我的app要添加付费订阅功能 ,第一次弄没有经验,跟着苹果官方文档一步步搞,结果到请求:https://sandbox.itunes.apple.com/verifyReceipt 接口验证的时候一直返回

{
"status": 21002,
}

怎么修改都不行,一直都是返回21002。结果一番查阅折腾,发现主要的问题是因为我在 Xcode 中使用了StoreKit 测试,

StoreKit 测试是什么:

Xcode 中的 StoreKit 测试是一个本地测试环境,用于测试应用内购买,无需连接到 App Store 服务器。在 Xcode 项目的本地 StoreKit 配置文件中设置应用内购买,或从 App Store Connect 中的应用内购买设置在 Xcode 中创建同步的 StoreKit 配置文件。启用配置文件后,测试环境会在您的应用程序调用 StoreKit API 时使用此本地数据。

更多说明请看这里:https://developer.apple.com/documentation/xcode/setting-up-storekit-testing-in-xcode/

因为启用StoreKit testing 后,所有的数据都在本地,是不和苹果的服务器交互的,所有拿着receipt-data无论是请求沙盒验证接口(https://sandbox.itunes.apple.com/verifyReceipt)还是生产验证接口(https://buy.itunes.apple.com/verifyReceipt)返回都是 21002。

只需要禁用 StoreKit configuration就可以了! 具体操作如下图:

将 StoreKit configuration 设置为 None 。然后重新运行就可以了!

庄朋龙
庄朋龙

一个爱生活的技术菜鸟

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注