During development of Pace I ran into a problem with app store receipt checking. When I changed the version of my application the receipt would go bad.
I then would do a clean, build, and then launch the app from the Finder. This causes the app to request a new receipt from the Sandbox version of the Mac App Store. However it would not in most instances. The new receipt fetched would be for the older version number.
I used the great application Receigen to create my receipt validating code. On the extensive support site the troubleshooting tips said to try few things. One was to kill the storeagent daemon as sometimes it cached the old receipt. Killing it, the theory went, caused the receipt cache to get flushed (perhaps it was a memory only cache). I found that the storeagent in Yosemite has split from one process into many all under the CommerceKit.framework directory.
$ ps -e -o comm | grep CommerceKit /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Resources/storeinappd /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Resources/storelegacy /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Resources/storeassetd /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Resources/storeaccountd /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/XPCServices/com.apple.CommerceKit.TransactionService.xpc/Contents/MacOS/com.apple.CommerceKit.TransactionService /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/XPCServices/com.apple.CommerceKit.TransactionService.xpc/Contents/MacOS/com.apple.CommerceKit.TransactionService /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Resources/storeuid.app/Contents/MacOS/storeuid /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Resources/storedownloadd /System/Library/PrivateFrameworks/CommerceKit.framework/Resources/LaterAgent.app/Contents/MacOS/LaterAgent
So in development I would do a clean, build, run sudo pkill -f CommerceKit, and then run my app to pull a correct version receipt from the Sandbox Mac App Store.
I emailed the author of the Receigen app, they updated the troubleshooting tips right away.
I then went on to launch my app. 1.0 had a BIG bug. I then released 1.0.1 quickly with an expedited review. Today I got a support email. They sent me a screen shot of the damaged app dialog. As a new indie dev my heart sank and my stress and insecurity rose. Had I messed up the receipt checking code quickly submitting 1.0.1. How much of a buffoon was I?
Luckily the sufferer of the bug was a fellow developer so I was able to have him zip up his install that had the problem. The receipt inside his copy of 1.0.1 of my app was still for version 1.0.0. This was after he went through a round of deleting everything and reinstalling clean from the Mac App Store.
It seemed like the same problem I had in development. I had him do the very techy step of deleting the app, running sudo pkill -f CommerceKit, and then reinstalling from the Mac App Store. This time he got the correct receipt.
I channeled my inner Daniel Jalkut and went ahead and filed a radar on it as well (#18731203). My very first, and most likely, not last.