ano*_*dev 13 xcode in-app-purchase ios
Apple在iOS 11中引入了推荐的应用程序内购买.虽然我已经实现了新的必需SKPaymentTransactionObserver方法,paymentQueue:shouldAddStorePayment:for:,但我无法成功测试"购买"项目.是否应该能够在Sandbox测试环境中进行测试和购买?
Apple确实讨论了通过表单的URL启动测试:
ITMS服务://行动= purchaseIntent&bundleId = com.example.app及产品识别= com.example.app.myIAP
我把URL放在给自己的电子邮件中.当我点击URL时,我得到以下顺序:
1)切换到MyApp,并使用带有我的产品标识符的产品调用shouldAddStorePayment,com.example.app.myIAP(鼓励开始)
2)有paymentQueue:shouldAddStorePayment:for:return true.
3)paymentQueue:updatedTransactions:被调用,具有"购买"(但未购买)状态的交易.它有一个nil transactionIdentifier.
4)弹出警告说要登录.我使用沙盒Apple ID登录 - 点击登录警报上的"购买"按钮.
5)另一个弹出说登录.我使用沙盒Apple ID登录 - 点击登录警报上的"购买"按钮.
6)paymentQueue:updatedTransactions:被调用,事务处于"失败"状态.它有一个非零的transactionIdentifier.
shouldAddStorePayment例程应该做些额外的事吗?
我提交了经过上述有限测试的应用程序。我能够真正购买促销的应用内购买。
但这里存在先有鸡还是先有蛋的情况。现在这些项目已在商店中,我可以针对本地/调试构建运行并从 App Store 进行测试。但我想我也烧毁了几个沙盒用户 ID 来尝试。
以下是我现在可以执行的序列。
1) 进入App Store并退出。
2) 构建/运行您的应用程序并使用恢复购买 - 使用您的沙箱用户 ID/密码登录。
3) 验证您的 Sandbox User 现在是否已登录 App Store(请勿使用 Sandbox User 直接登录 App Store,否则该用户将不再工作。)
4) 找到您的应用程序,然后找到具有推广功能的应用程序内购买部分。选择促销的应用内购买功能。
5) 您的应用程序已加载。稍后,您会收到一条提醒:确认您的应用内购买 ---- 您想以 0.99 美元购买 XXXX 吗?--- [环境:沙盒] ---- 取消/购买
6) 购买后,用户会收到提醒:一切就绪。---- 您购买成功。---- [环境:沙盒] ---- 好的
7) 如果您对沙盒用户已经购买的商品执行此操作,您会收到一条警告:您已经购买了该商品。您想免费再次获得它吗?---- [环境:沙盒] ---- 取消/确定
上面的要点是,您会收到像之前看到的那样的警报消息,而不是真正购买时从底部弹出的收据类型项目。
希望这会有所帮助,但对于第一次来说仍然不是一个好的答案。
| 归档时间: |
|
| 查看次数: |
1781 次 |
| 最近记录: |