我正在尝试在Swift 4 for iOS中启用应用程序内购买,当我测试时,我无法在应用程序中正确显示(或加载)显示名称和描述。我确实得到了我在if (products.count == 0) {
中输入的错误消息。我无法获得我在AppStoreConnect中设置的产品标题和产品描述,以便在我测试我的应用时正确加载。相反,代码认为没有产品,因为它运行if (products.count == 0) {
闭包中的代码。我检查了其他所有内容(即捆绑ID,产品ID,StoreKit导入,代理设置,AppStoreConnect端的所有内容都已设置等)。没有Xcode警告,并且应用程序内购买状态为“准备提交”。有什么建议?
var product: SKProduct?
var productID = "myProductID"
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
var products = response.products
if (products.count == 0) {
productTitle.text = "Warning" // GETS DISPLAYED
productDescripton.text = "Unable to connect to In-App Purchase." // GETS DISPLAYED
} else {
product = products[0]
productTitle.text = product?.localizedTitle
productDescripton.text = product?.localizedDescription
buyButton.isEnabled = true
buyButton.alpha = 1.0
}
let invalid = response.invalidProductIdentifiers
for product in invalid {
print("\(product)")
}
}
在没有警告的情况下导致此问题的常见问题是
这是一篇很好的博客文章,更详细地介绍了所有内容:Configuring In-app Products is Hard
如果您是整合应用程序内购买的新手,那么您应该阅读此内容。如果您有干净的代码,并且您认为在App Store Connect中正确设置了所有内容,但仍无法正常测试。具体来说,如果您的products数组在不应该显示为空时显示为空。然后,确保您已完成以下操作:
1)通过App Store Connect中的用户和访问设置Sandbox Tester。这需要使用尚未与iTunes,App Store或Apple一起使用的电子邮件进行设置。
2)通过App Store Connect填写协议,税务和银行业务中的所有必要表格。当付费应用程序显示活动状态时,您就会知道所有内容都已填写完毕。
3)正在测试已经从iTunes和App Store注销的真实设备。