I've replicated this problem before. It's an issue with iOS, not with the Store. To my knowledge, the Store responds correctly, however the transactionObserver which searches the store for incompleteTransactions doesn't pass the notification to the app (by calling the updatedTransactions delegate method) I made a small change to my iAP sample to not call finishTransaction on the first time the updatedTransaction delegate call was entered. This resulted in an incompleteTransaction. I then moved the app to the background, then back to the foreground and observed in the console log that the transactionObserver triggered a request for pedning incompleteTransactionas. The Store responded with
Jan 8 10:59:26 richards-iPod-touch itunesstored[124] <Warning>: LoadMicroPaymentQueueCountOperation: Server claims 1 items for p2-in-app-check-download-queue
but the updatedTransactions delegate method wasn't called. I submitted rdar://24109782,but the issue remains under investigation.
If the app is relaunched, and the transactionObserver is activated, it will be notified of the incompleteTransaction - where the finishTransaction can be called. I find the problem only occurs when trying to synthesize the incompleteTransaction, then checking that the incompleteTransaction is detected when the app is backgrounded, then moved to the foreground.
rich kubota - rkubota@apple.com
developer technical support CoreOS/Hardware/MFI