Posts

Post not yet marked as solved
0 Replies
491 Views
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
Posted
by dwrae.
Last updated
.
Post not yet marked as solved
2 Replies
2.3k Views
It would be nice to have an example on what to pass to MIDIEventListAdd() as UInt32 * words if you have MIDI 1 type of messages (status, data1, data2), more so because MIDISend() crashes on iOS14.
Posted
by dwrae.
Last updated
.