【问题标题】:In-app purchases trouble with SwiftyStoreKit and AppStore Connect moderatorSwiftyStoreKit 和 AppStore Connect 版主的应用内购买问题
【发布时间】: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


    【解决方案1】:

    已通过删除所有产品并创建新产品来修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多