如何从SKProductsRequestDelegate重新触发productsRequest()?

时间:2018-04-11 21:10:34

标签: ios swift in-app-purchase

我的应用被拒绝了两次,因为IAP价格没有显示给应用评论员。由于它在我的iPhone上工作正常,我对此非常感兴趣。

我的四个订阅被检索并显示在tableview中:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return options?.count ?? 0
    }

...

var options: [Subscription]?

extension SubscriptionService: SKProductsRequestDelegate {
    func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
        options = response.products.map { Subscription(product: $0) }
    }

    func request(_ request: SKRequest, didFailWithError error: Error) {
        if request is SKProductsRequest {
            print("Subscription Options Failed Loading: \(error.localizedDescription)")
        }
    }
}

代理productsRequest通过SKProductsRequestDelegate自动加载选项。我不明白我错过了什么。除非审稿人在离线模式下测试应用程序并且无法访问互联网?出于安全原因可能是这种情况吗?

我不应该从appstore加载产品productsRequest(),而是在客户端硬编码价格?

更新 我现在可以复制这个问题:

如果设备处于飞行模式,然后启动应用程序,则会自然调用此方法:

func request(_ request: SKRequest, didFailWithError error: Error) {

但即使退出飞机模式后,也无法实现此功能 productsRequest()被重新提升。有什么方法可以手动触发,而不是应用程序回到前台时?

0 个答案:

没有答案