How to set up a Subscription for an iOS App?

Has anyone implemented an Auto-renewable subscription in their iOS app with Adobe Air?

A couple of years ago I released an app with an unlockable auto-newable in app purchase.

At first it seemed too easy… but then I realised that the process was far more complex because you need a server to check the user’s receipt.

Without this backend work it meant that once my app was unlocked for the user’s trial period - after that it would be permanently unlocked. Or the user could cancel and just continue using the unlocked app.

Is there any online service that does this to help me to do this part. I’m using Animate + Air and would need to integrate that part. I imagine the steps are like this, but please explain if you’ve done this in your app:


  1. Set up an Auto-Renewable subscription in-app purchase on Appstore Connect

  2. Design your app with locked / unlocked content

  3. The user opens the app > a function is called to check the user’s current paid status > paid or expired

  4. The call is sent to a server to check the user’s receipt is valid? (Please explain how long this step would take to code, and monthly costs to rent a server)

  5. if the receipt is valid > unlock app / if not lock it

And for anyone who’s done this - how reliable is your subscription? Have you had any problems / angry customers who can’t unlock their app?!

Just wondering if it’s worth it for the setup cost, monthly server rental and revenue.


you have services like RevenueCat

humm you’re asking too much here

look at open source project like aporat/store-receipt-validator
and you can figure out yourself how much it will cost to install/rent/etc.

it would be different for anyone, different people have different needs

you can also search for the topic receipt-validation on Github

Ultimately you should read

in short, if you don’t want to program the server-side and/or host it and/or not sure what all that would involve, find a service like RevenueCat to do it for you, eg. free for $10,000 MTR should be more than enough

Thanks very much for this info Zwetan, I’ll have a look at RevenueCat and will report back if I use it / get it to work.

I can’t see an Adobe Air SDK on their list, but I did a search for Adobe Air on the site and it led to a Question from a guy called Andrew who appeared to be using the ‘REST API’

I personally never used RevenueCat but from scrolling their docs quickly
they do a bit more than just the ticket-receipt validation

so at minimum you use the standard in-app purchase with an ANE + a call to their REST API for the extras features

or if big usage planed of their services planed maybe do an ANE with their SDK which is basically a wrapper around the in-app purchase, but then with added features like tracking etc.

my guess is for basic usage and/or for testing the water the first case is enough

My response is a little off-topic, but I have a subscription service that I made up cross-platform – you’re using AIR, so why limit to iOS?

I had rigged up the subscription myself (using for subscription billing), but when I had originally looked at an ANE to do subscriptions on iOS, it seemed like a huge hassle that would severely limit me (what was I going to do on Android, Windows, and Mac?). From what I understand also at the time (c. 2015), it was a huge pain in the rear for customers to stop iOS subscriptions, and customers of course would blame the app developer not Apple. Apple also has requirements about what can be made into a subscription, all for the pleasure of handing Apple 30% of continued revenue.

With all these reasons, especially the need for cross-platform performance, I made an enterprise subscription in which I have cloud services across platforms, to avoid crossing Apple’s TOS. My app is a paid app for all functionality except access that comes with cloud features. This also allowed me to charge a small, one-time amount for the app ($10), but make the enterprise subscription more lucrative.

In a nutshell, I have a licensing engine in PHP on my web site. When a customer makes a purchase on my site, I generate a license that the app would accept to gain enterprise/cloud functionality. When a user enters the license and I validate it on my site, I store a validation token in a local shared object in the app. This works nicely cross platform. I can share more with you if you’re interested, just let me know.

1 Like

Hi Jon,
Thanks for your reply. What you say is true, but I’d be way over my head with this stuff and would need the help of a developer to do this. That’s why I considered starting with iOS as a first step.

Is there any way you can resell your engine to other designer / developers like me? I’m sure many would be interested if you can make it easy enough to use.

For a start, I’m still a long way from publishing a Desktop App, due to the certificate process. I talked to you about that in another post!

Would you be up for showing us your product so we can see it in action on the various platforms?