Search code examples
iosin-app-purchaseapp-store-connect

In App Purchases not working during App Review only


My app keeps getting rejected for Guideline 2.1 - Performance - App Completeness:

"We found that your in-app purchase products exhibited one or more bugs when reviewed on iPad running iOS 15.6.1 on Wi-Fi.

Specifically, your app still did not produce further action when we tapped on the “Buy” feature.

We are unable to provide further information regarding our review environment."

I have tested my in-app-purchases multiple times on simulators and physical devices running multiple iOS versions and they all worked perfectly.

I included a screen recording of the IAPs working on an iPhone running iOS 15.6.1 and they replied with:

"While we appreciate that your app is intended primarily for use on iPhone, in order to bring your app into compliance with App Store guidelines, all apps designed for use on iPhone must still be formatted correctly and behave properly when running on iPad."

It seems that SKProductsRequest is returning 0 products and returning invalidProductIdentifiers which then shows an error dialog when the button is pressed:

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
    DispatchQueue.main.async { [self] in
        self.appleProducts = response.products
        paymentButton.hideLoading()
    }
    
    invalidIdentifiers = response.invalidProductIdentifiers

}

@IBAction func buttonPressed(_ sender: PrimaryButton) {
        if appleProducts.count != 0 {
            let payment = SKPayment(product: appleProducts[0])
            SKPaymentQueue.default().add(payment)
            
            sender.showLoading()
            sender.isUserInteractionEnabled = false
        } else {
            reusableDialog.createErrorDialog(title: "Payment Error", message: "An error has occured, please try again later", container: self.view)
        }
}

I am not sure what is happening here since i can't even reproduce this issue.


Solution

  • I replied again to app review saying that the problem may just be on their side and they tested the IAPs with a different Apple ID. It worked and my app got approved so I think that the problem was on their side since I didn't change anything.