应用内购买显示名称和描述未正确加载 - Swift 4
In-App Purchase Display Name and Description not properly loading - Swift 4
我正在尝试为 iOS 在 Swift 4 中启用应用程序内购买,但当我在应用程序中无法正确显示(或加载)显示名称和描述时测试。我确实收到了我在 if (products.count == 0) {
中输入的错误处理消息。当我测试我的应用程序时,我无法正确加载在 AppStoreConnect 中设置的产品名称和产品描述。相反,代码认为没有产品,因为它在 if (products.count == 0) {
闭包中运行代码。我四重检查了其他所有内容(即 Bundle ID、Product ID、StoreKit 的导入、委托已设置、AppStoreConnect 端的所有内容已设置等)。没有 Xcode 警告,应用内购买状态为 "Ready To Submit"。有什么建议么?
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)")
}
}
会在没有警告的情况下导致这种情况的常见情况是:
您的产品不在 'Ready to Submit' 阶段。这通常来自丢失的屏幕截图,即使对于 Sandbox 也是必需的(您可以上传空白图像以进行 Sandbox 测试)。
您尚未在 App Store Connect 中签署 'Paid Applications' 协议
这是一篇很好的博客 post,它涵盖了所有内容,内容更详细一些:Configuring In-app Products is Hard
如果您是集成应用内购买方面的新手,那么您应该阅读本文。如果您有干净的代码并且您认为您在 App Store Connect 中正确设置了所有内容,但仍然无法正确测试。具体来说,如果您的产品数组在不应该显示为空时显示为空。然后,确保您已完成以下操作:
1) 通过 App Store Connect 中的用户和访问设置沙盒测试器。这需要使用尚未用于 iTunes、App Store 或 Apple 的电子邮件进行设置。
2) 通过 App Store Connect 填写了协议、税务和银行业务中的所有必要表格。当付费应用程序显示活动状态时,您会知道所有内容都已填写。
3) 正在已退出 iTunes 和 App Store 的真实设备上进行测试。
我正在尝试为 iOS 在 Swift 4 中启用应用程序内购买,但当我在应用程序中无法正确显示(或加载)显示名称和描述时测试。我确实收到了我在 if (products.count == 0) {
中输入的错误处理消息。当我测试我的应用程序时,我无法正确加载在 AppStoreConnect 中设置的产品名称和产品描述。相反,代码认为没有产品,因为它在 if (products.count == 0) {
闭包中运行代码。我四重检查了其他所有内容(即 Bundle ID、Product ID、StoreKit 的导入、委托已设置、AppStoreConnect 端的所有内容已设置等)。没有 Xcode 警告,应用内购买状态为 "Ready To Submit"。有什么建议么?
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)")
}
}
会在没有警告的情况下导致这种情况的常见情况是:
您的产品不在 'Ready to Submit' 阶段。这通常来自丢失的屏幕截图,即使对于 Sandbox 也是必需的(您可以上传空白图像以进行 Sandbox 测试)。
您尚未在 App Store Connect 中签署 'Paid Applications' 协议
这是一篇很好的博客 post,它涵盖了所有内容,内容更详细一些:Configuring In-app Products is Hard
如果您是集成应用内购买方面的新手,那么您应该阅读本文。如果您有干净的代码并且您认为您在 App Store Connect 中正确设置了所有内容,但仍然无法正确测试。具体来说,如果您的产品数组在不应该显示为空时显示为空。然后,确保您已完成以下操作:
1) 通过 App Store Connect 中的用户和访问设置沙盒测试器。这需要使用尚未用于 iTunes、App Store 或 Apple 的电子邮件进行设置。
2) 通过 App Store Connect 填写了协议、税务和银行业务中的所有必要表格。当付费应用程序显示活动状态时,您会知道所有内容都已填写。
3) 正在已退出 iTunes 和 App Store 的真实设备上进行测试。