1

I have several similar applications (A1-A3) with hugely the same codebase. They all do similar things (diagrams), each with a specialisation for a specific use case. I am now considering to create one app (B) that sells the specialisations as an Mac App Store In App Purchase. So basically, I reduce number of applications, but will provide same diagrams, just change how to sell them from dedicated app to in-app.

How can I best ensure that buyers of the "old" applications A1-A3 can use the specialisations they bought in the new software B? I don’t want to charge them twice. So, they should be able to “restore” the specialisation that they bought as a A2 in B. Is that possible? If so, how?

Wizard of Kneup
  • 1,863
  • 1
  • 18
  • 35

1 Answers1

1

Within app B do following steps in the background or on click of the restore IAP-button:

  • Look for the "old" app A1-A3 using NSBundle bundleWithIdentifier
  • get the receipt of this bundle using appStoreReceiptURL
  • validate the receipt
  • unlock functionality

Bare in mind that the terms and conditions of Apple say something along the line of "only appstore IAP should be used to unlock features; don't roll your own license mechanism"

mahal tertin
  • 3,239
  • 24
  • 41
  • Thanks! I will look into this. It looks simple enough, so I am on the right track. Thank you. Will accept answer once I have implemented it. – Wizard of Kneup May 23 '18 at 19:23
  • i had it up and running; for most users it works. sandboxing and several instances of the bundle on the developer machine (inside xcode archives) made it a pain to test. strongly advise using guest account and/or another cleanly installed mac. – mahal tertin May 23 '18 at 21:37
  • I just reread. Update old software? I assume update to new software application? – Wizard of Kneup May 24 '18 at 04:04
  • Done, I hope it makes more sense now. – Wizard of Kneup May 24 '18 at 17:56