Search code examples
cocoalicensingmac-app-store

Update Mac App Store App outside the MAS and check receipt


I am wondering how to build the follwoing scenario: - I have one app which can be bought in the Mac App Store - Because this app cannot use sandboxing which will me soon mandatory, I won't be able to update it in the Mac App Store. - I want to continue to provide updates to these users but it will be outside MAS updates - How can I check if the application has been legally acquired ?

Thanks for your help


Solution

  • I do something like this to enable Mac App Store customers to easily beta test new versions of my app downloaded from my website while still enforcing licensing. Upon startup of the MAS version of my app, I copy its receipt into /Library/Application Support/MyAppName/. Beta versions of the non-MAS version of my app include the same receipt validation code as the MAS version. They look for a receipt in the App Support folder, and validate it, running in licensed-mode if the receipt is valid.

    I believe that MAS receipts are tied to the machine used to buy/download the app, so your users won't be able to transfer receipts between computers. The way to attack this problem might be to issue regular licenses to users who successfully validate a MAS receipt on at least one machine. There's an opportunity for cheating here, but I don't think it's any different than the weaknesses inherent in whatever licensing scheme you use.