0

我在使用 SwiftyStoreKit 框架时遇到问题,我什至不确定如何测试以查看是否已解决问题。当我使用我的沙盒帐户时,所有购买都很好。但是当我将它提交到 App Store 时,他们拒绝了它,因为他们说他们收到一条消息,上面写着“无法检索产品信息 - 无效的产品标识符:com.rrtenz.puzzlesfromsurvivor2.unlockAll”。

我在下面包含了他们的屏幕截图和问题描述的全文。

在此处输入图像描述

指南 2.1 - 性能 - 应用程序完整性

在通过 Wi-Fi 运行 iOS 的 iPad 上查看时,我们在您的应用程序中发现了一个或多个错误。

从商店进行任何选择时,我们收到了附加的错误消息。

下一步

要解决此问题,请在设备上运行您的应用以识别任何问题,然后修改并重新提交您的应用以供审核。

如果我们误解了您的应用程序的预期行为,请在调解中心回复此消息,以提供有关这些功能的预期工作方式的信息。

对于新应用程序,请从设备上卸载所有以前版本的应用程序,然后安装并按照步骤重现问题。对于更新,请安装新版本作为对先前版本的更新,然后按照步骤重现问题。

资源

有关测试您的应用程序和准备审查的信息,请参阅技术说明 TN2431:应用程序测试指南。

有关网络概述,请查看关于网络。

该产品已添加到 App Store Connect,并且产品标识符匹配。

我不知道这是否重要,但我的应用程序包标识符是“com.rrTenz.Puzzles -for-Survivors ”,我的产品标识符是“com.rrtenz.puzzlesfromsurvivor2 .xxxxx ”。

这是我的代码:

应用委托:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    SwiftyStoreKit.completeTransactions(atomically: true) { purchases in
        for purchase in purchases {
            switch purchase.transaction.transactionState {
            case .purchased, .restored:
                if purchase.needsFinishTransaction {
                    // Deliver content from server, then:
                    SwiftyStoreKit.finishTransaction(purchase.transaction)
                }
            // Unlock content
            case .failed, .purchasing, .deferred:
                break // do nothing
            @unknown default:
                fatalError()
            }
        }
    }
    return true
}

获取信息代码:

func getInfo(purchase: RegisteredPurchase) {
    NetworkActivityIndicatorManager.NetworkOperationStarted()
    SwiftyStoreKit.retrieveProductsInfo([bundleID + "." + purchase.rawValue], completion: {
        result in
        NetworkActivityIndicatorManager.NetworkOperationFinished()

        if let product = result.retrievedProducts.first {
            //handle info here
            [...]
        }else {
            //error alert
            [...]
        }
    })
}

制作购买代码:

func purchase(purchase: RegisteredPurchase) {
    NetworkActivityIndicatorManager.NetworkOperationStarted()
    SwiftyStoreKit.purchaseProduct(bundleID + "." + purchase.rawValue, completion: {
        result in
        NetworkActivityIndicatorManager.NetworkOperationFinished()

        if case .success(let product) = result {
            //update purchase variables here
            [...]
        }
        //purchase complete alert
        [...]
    })
}

所以正如我之前提到的,我不确定如何调试这个问题,因为当我使用我的沙盒帐户时,我什至无法复制该行为。如果有人有任何建议或可以确定我做错了什么,我将不胜感激。

4

0 回答 0