Skip to content

庄朋龙的博客

有志者自有千方万计,无志者只感千难万难。

Menu
  • 首页
  • 生活
  • 创业
  • 编程
  • 运维
  • 视频课程
    • 跨境独立站
    • Shopee跨境电商
    • TEMU跨境电商
  • 资源分享
    • 网站推荐
    • 开源推荐
    • 可商用字体
    • 书籍分享
Menu

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

Posted on 2023年5月31日 by 庄朋龙

我的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 。然后重新运行就可以了!

Category: 编程

全栈开发者×创业偏执狂

相信代码能改变命运,也相信凌晨四点的服务器警报里有真实的人生。

我的创业项目:
SHOPAGG / SmallShop / DigitShops / 文硕阁

© 2025 庄朋龙的博客