“无法检索产品信息”“无效的产品标识符” SwiftyStoreKit iOS Swift Xcode

时间:2019-05-09 20:52:28

标签: ios swift xcode in-app-purchase swiftystorekit

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

我在下面提供了他们的屏幕截图以及问题描述的全文。

enter image description here

  

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

     

在iPad上进行审核时,我们在您的应用中发现了一个或多个错误   在Wi-Fi上运行iOS。

     

从以下位置进行选择时,我们收到了附件错误消息   商店。

     

后续步骤

     

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

     

如果我们误解了您应用的预期行为,请回复   解决中心中的此消息以提供有关这些   功能是可以使用的。

     

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

     

资源

     

有关测试您的应用并准备进行审核的信息,   请参阅技术说明TN2431:应用测试指南。

     

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

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

我不知道这是否重要,但是我的应用程序的捆绑包标识符为“ com.rrTenz。生存者之谜”,而我的产品标识符为“ com.rrtenz。 Puzzlesfromsurvivor2 .xxxxx”。

这是我的代码:

AppDelegate:

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
        [...]
    })
}

因此,如前所述,我不确定如何调试此问题,因为使用沙箱帐户时甚至无法复制该行为。如果任何人有任何建议或可以确定我在做什么错,我将不胜感激。

0 个答案:

没有答案