应用内购买显示名称和描述未正确加载-Swift 4

时间:2019-02-12 03:18:15

标签: ios swift in-app-purchase

我正在尝试在iOS的Swift 4中启用应用程序内购买,并且在测试时无法正确显示(或加载)应用程序中的显示名称和说明。我确实收到了放在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)")
    }
}

2 个答案:

答案 0 :(得分:0)

会导致这种情况而不会发出警告的常见原因是:

  1. 您的产品尚未处于“准备提交”阶段。这通常是由于缺少屏幕截图而导致的,即使对于沙箱,也是必须的(您可以上传空白图像进行沙箱测试)。

  2. 您尚未在App Store Connect中签署“付费应用程序”协议

这是一篇不错的博客文章,其中详细介绍了所有内容:Configuring In-app Products is Hard

答案 1 :(得分:0)

如果您是集成应用内购买的新手,则应阅读此书。如果您有干净的代码,并且认为您在App Store Connect中已正确设置了所有内容,但仍然无法正确测试。具体来说,如果您的产品数组在不应该显示为空时显示为空。然后,确保已完成以下操作:

1)通过用户和在App Store Connect中访问来设置沙盒测试器。这需要使用iTunes,App Store或Apple尚未使用的电子邮件进行设置。

2)通过App Store Connect填写协议,税收和银行业务中的所有必要表格。您会知道,当“付费应用程序”显示“活动状态”时,所有内容都会填写完毕。

3)在已从iTunes和App Store注销的真实设备上进行测试。