Post

Replies

Boosts

Views

Activity

Purchase receipts are empty since today
Since today, we are receiving reports from several customers on iPadOS17.x and iPadOS18 that their app runs in 'demo' mode. This can only happen if the purchase receipt is not found and this also shows in the log file they sent us. We can also reproduce it on an officially installed version of our app, but not when run from Xcode. Is anyone else experiencing this?
1
0
193
Oct ’24
appStoreReceiptURL not found in AUv3 app extension
I have an Audio Unit app extension with an in-app purchase. When starting the app and running it as standalone, the in-app purchase's receipt can be verified without problems: NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL]; NSData *receipt = [NSData dataWithContentsOfURL:receiptURL                                             options:0                                               error:&readError]; However, when running the audio unit inside a host, receiptURL is file:///private/var/mobile/Containers/Data/PluginKitPlugin/D87B0A4A-2670-41AC-9400-2787A9B9982F/StoreKit/sandboxReceipt and the receipt is nil, probably because the file does not exist or it cannot be accessed from the plug-in running in the host environment. The error is: Error Domain=NSCocoaErrorDomain Code=260 "The file “sandboxReceipt” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/private/var/mobile/Containers/Data/PluginKitPlugin/63A457CA-305C-45B5-ABCB-60FEDA70E4FA/StoreKit/sandboxReceipt, NSUnderlyingError=0x28316c450 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}} Although I'm running a Sandbox environment, I don't think that's the actual issue. So the question is, how to validate in-app purchase receipts from within an host? What's more, once I do an in-app purchase in the standalone version (so just running the app from its icon), then the very same file is created and can be accessed from within the plug-in! So this means that StoreKit does not write the receipt when a purchase is done from within the host. iPadOS 16.1.1
0
0
624
Dec ’22