In-App Purchase: Hosted Content cannot be unpacked if User is not Administrator
| Originator: | mc | ||
| Number: | rdar://17299627 | Date Originated: | 2014-06-13 |
| Status: | Open | Resolved: | |
| Product: | OS X SDK | Product Version: | Xcode 5.1.1, OS 10.9.4 |
| Classification: | Serious Bug | Reproducible: | Always |
In my Mac App on the Mac App Store (http://fflp.me), the user can buy new content (new characters) from the Store (Cmd B) by clicking on the price or "Restore" (or "Restore All" in the menu. After the usual confirmation dialogs, the download begins, by landing in 'paymentQueue:updatedDownloads:' with the state SKDownloadStateActive. All goes fine, until almost 100%, when (I'm guessing) the internals of StoreKit go and unpack that .pkg to deliver me it's content.
On a "normal" (Administrator) user, all goes fine and I land in SKDownloadStateFinished where I can install the content.
On a Guest user though (used by the Apple Review Team as well), this happens — before SKDownloadStateFinished:
storeagent[274]: *** Assertion failure in -[SoftwareInstallOperation _startInstall], /SourceCache/Pisa/Pisa-232.6/iTunes Protocol/Built Into App/SoftwareInstallOperation.m:509
storeagent[274]: error Error Domain=PKInstallErrorDomain Code=100 "The installation could not be started." UserInfo=0x7f9c9a4c0fa0 {NSLocalizedDescription=The installation could not be started., NSUnderlyingError=0x7f9c9a745e70 "Authorization is required to install the packages."}
storeagent[274]: underlyingError Error Domain=PKInstallErrorDomain Code=100 "Authorization is required to install the packages." UserInfo=0x7f9c9a745d40 {NSLocalizedDescription=Authorization is required to install the packages.}
storeagent[274]: localException [PKInstallClient initWithRequest:PKInstallRequest <1 packages, destination=/>] failed with Error Domain=PKInstallErrorDomain Code=100 "Authorization is required to install the packages." UserInfo=0x7f9c9a745d40 {NSLocalizedDescription=Authorization is required to install the packages.}
storeagent[274]: -[SSDownload source]: unrecognized selector sent to instance 0x7f9c9a665c70
storeagent[274]: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SSDownload source]: unrecognized selector sent to instance 0x7f9c9a665c70'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff96fe725c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff8d802e75 objc_exception_throw + 43
2 CoreFoundation 0x00007fff96fea12d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00007fff96f453f2 ___forwarding___ + 1010
4 CoreFoundation 0x00007fff96f44f78 _CF_forwarding_prep_0 + 120
5 storeagent 0x000000010e00f3ea storeagent + 156650
6 storeagent 0x000000010e05b8a6 storeagent + 469158
7 storeagent 0x000000010e0a9507 storeagent + 787719
8 storeagent 0x000000010e014d5d storeagent + 179549
9 storeagent 0x000000010e012b57 storeagent + 170839
10 CoreFoundation 0x00007fff96ed2bec __invoking___ + 140
11 CoreFoundation 0x00007fff96ed2a54 -[NSInvocation invoke] + 308
12 CoreFoundation 0x00007fff96f755e6 -[NSInvocation invokeWithTarget:] + 54
13 CommerceKit 0x00007fff98493246 -[ISDelegateProxy sendInvocationToDelegate:] + 294
14 Foundation 0x00007fff95dab13e __NSThreadPerformPerform + 229
15 CoreFoundation 0x00007fff96f18731 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
16 CoreFoundation 0x00007fff96f09ea2 __CFRunLoopDoSources0 + 242
17 CoreFoundation 0x00007fff96f0962f __CFRunLoopRun + 831
18 CoreFoundation 0x00007fff96f090b5 CFRunLoopRunSpecific + 309
19 CoreFoundation 0x00007fff96fbe811 CFRunLoopRun + 97
20 storeagent 0x000000010e07db13 storeagent + 609043
21 libdyld.dylib 0x00007fff943e75fd start + 1
)
Fflp![313]: === __61-[CKClientDispatch _sendMessage:callbackQueue:callbackBlock:]_block_invoke_2: Got error (Connection invalid).
Fflp![313]: === __61-[CKClientDispatch _sendMessage:callbackQueue:callbackBlock:]_block_invoke_2: Got error (Connection invalid).
Fflp![313]: === __61-[CKClientDispatch _sendMessage:callbackQueue:callbackBlock:]_block_invoke_2: Got error (Connection invalid).
com.apple.launchd.peruser.201[172]: (com.apple.storeagent[274]) Job appears to have crashed: Abort trap: 6
—
2 Apple Engineers told me during WWDC that it's a know bug and the Review Team then approved the app. The problem is that I'm now sure that someone using a guest account will loose money for nothing, which makes me have to check the user is not a guest.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!
Apple claims it now works in Yosemite. I reply....
I'm super confused........ Where did the "Guest" Login go in Yosemite? I'm running Beta 6 (14A329f) and I deactivated FileVault and in the login screen there's no "Guest" — only me.