benjaminmayo / merchantkit

A modern In-App Purchases management framework for iOS.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rejected by Apple

denandreychuk opened this issue · comments

Hi! I recently got rejected by Apple with this weird reason:

Guideline 2.1 - Performance - App Completeness

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

Next Steps

When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead.

Do you have any idea how to fix it?

My current version MerchantKit 0.13.0

They attached screenshot, with alert caused by:
productInterfaceControllerDidChangeFetchingState, .genericProblem

Was it reviewed on Friday by any chance? The App Store suffered a pretty bad outage, which affected receipt validation. That honestly sounds like what happened here.

Unfortunately not. It was reviewed today.

What does your Merchant initialiser look like? Are you using the default configuration or something more complicated?

I'm using default configuration.

Merchant(configuration: .default, delegate: self)

Hmm. With the default config, I can't think of anything obvious that would be MerchantKit's fault here. (Local validation certainly doesn't care about sandbox versus production receipts.) If this was my app, I'd probably try submitting as-is a second time to see if they flag it again or if it was a weird quirk.

Got it, thanks. Appreciate your quick feedback! Will come back later, after Apple's review.

Regardless of your current situation, it would be helpful for MerchantKit to report a more detailed error than genericProblem. The error is created here; we could pass along the error rather than abstracting it away completely.

Ye, sounds great.

@denandreychuk I'm not saying this is definitely your issue, but I ran into a similar response and the only change I made was adding a check and alerting on SKPaymentQueue.canMakePayments prior to kicking off the purchase flow.

That check sounds like something I should add to MerchantKit itself.

@benjaminmayo I successfully passed the review, so I believe that Apple was just retrograde those days :)

Good news :) and thanks to @Nomad00 for flagging the SKPaymentQueue.canMakePayments thing, I should accommodate that in the framework.