Is checking [SKPaymentQueue canMakePayments] no longer necessary?

https://developer.apple.com/library/prerelease/ios/documentation/StoreKit/Reference/SKPaymentQueue_Class/index.html#//apple_ref/occ/clm/SKPaymentQueue/canMakePayments states, "Your application should confirm that the user is allowed to authorize payments before adding a payment to the queue." However, in iOS 9, StoreKit will automatically display a message ("In-app purchases are not allowed") when In-App Purchases are disabled via Restrictions. Furthermore, it seems that in iOS 9, canMakePayments will also return false if "Installing Apps" is disabled. That seems like a bug...

Replies

I can confirm that this function always returns false. On iOS 9 at least.

I'm not sure what you're seeing, but it definitely does not always return false in iOS 9. If it did, we would be getting thousands of complaints per day from iOS 9 users unable to make purchases, and we aren't.


I'm guessing you're seeing an issue specific to certain device settings or iCloud account settings. If you figure out which setting is causing it for you, please post back and let folks know.

I'm experiencing this same problem in iOS 9.2.1. [SKPaymentQueue canMakePayments] returns true with In-App Purchases restricted or unrestricted. However, it returns false with Installing Apps restricted, true with Installing Apps unrestricted.

I confirm I also has the same issue on the iOS 9.2.1 for in-app purchases restrictions.