【发布时间】:2020-11-06 13:57:24
【问题描述】:
我是应用内购买和 SwiftyStoreKit 的新手。
我在我的应用中进行了应用内购买并将其发送给审核。
我的申请版主拒绝并写了原因:
我们发现您的应用内购买产品存在一个或多个错误 在通过 Wi-Fi 运行 iOS 14.1 的 iPhone 和 iPad 上进行审核时。
具体来说,您应用的应用内购买不显示应用的价格。 此外,经过进一步审查,我们发现您的应用不允许用户 购买应用内购买。
接下来的步骤
在您的服务器上验证收据时,您的服务器需要能够 处理从 Apple 获取收据的生产签名应用程序 测试环境。推荐的方法适用于您的生产 服务器始终根据生产 App Store 验证收据 第一的。如果验证失败并显示错误代码“使用沙盒收据 在生产中,”您应该针对测试环境进行验证 而是。
没有显示价格可能是因为应用程序收到了答案代码:“skerrordomain code=0”或类似的东西。或者因为 Apple 服务器返回了 0 个产品。
也就是说,当 ViewController 启动时,app 从 Apple 服务器请求产品的价格,然后将其写入按钮。
我不知道到底是什么问题,因为在我的本地设备上购买是与沙盒用户一起工作的。在模拟器中出现错误:“skerrordomain code=0”。
这是一个代码示例:
enum RegisteredPurchase: String {
case item1 = "com.app.appname.item1"
case item2 = "com.app.appname.item2"
case item3 = "com.app.appname.item3"
}
purchases: [RegisteredPurchase]
var productList: Set<String> = []
for purchase in purchases {
productList.insert(purchase.rawValue)
}
SwiftyStoreKit.retrieveProductsInfo(productList) { result in
var products: Dictionary<RegisteredPurchase, String> = [:]
for product in result.retrievedProducts {
products[RegisteredPurchase(rawValue: product.productIdentifier)!] = product.localizedPrice
}
if (result.error == nil) {
self.setupPrice(products)
}
}
在结果中我得到了retrieveProducts。在本地设备上所有 3 个产品都来了,在模拟器中我得到 0 和错误。
【问题讨论】:
标签: ios swift in-app-purchase app-store-connect swiftystorekit