kodeco.com Forums

Video Tutorial: In-App Purchase: Series Introduction

Find out what's covered in our In-App Purchase video tutorial series!

This is a companion discussion topic for the original entry at https://www.raywenderlich.com/4158-in-app-purchase/lessons/1

are there important changes for iOS 10, swift 3 Xcode 8?

Hi @dkliman

Some of the restrictions on IAP subscriptions have changed in iOS 10, and there will be a few minor changes to syntax for Swift 3. Until this course is updated, I recommend taking a look at this great tutorial:


Hope that helps


i really want to understand consumable and non consumables, but am not certain the non renewing subscription type will be just as helpful. will it? i see there are several different video and regular tutorials on the site that need updating. when I ran the greengrocer app that comes with the iap tutorial for example, there were several fatal errors in it.

Hi @dkliman,

The video team is working hard to update the most popular tutorials, as well as bringing great new content to the site. In addition to the 12 courses that have been released since last August, you can see the upcoming courses here:


Unfortunately, these don’t currently include an update to the IAP course. However, I can tell you that it’s on our radar as an important course that not only needs updating, but a full revamp to cover the topics in a more considered manner. It’s an integral topic to iOS and important to many of our readers and viewers. We’re hoping to be able to kick this project off relatively soon.

Sorry I can’t be of more hope right now.


Hi Sam,

Thanks for your video. Very helpful!

I do have one question. In our app, publishers are able to create stories (made up of text, audio, and maps) that users purchase. The publisher sets the price as they are saving their story. After buying the story, the purchaser can download it to their device and listen to it as much as they like. It should also be available across devices.

I have been advised to arrange a “single token” against the predefined pricing tiers in intunesconnect (e.g. $0.99, $1.99, $2.99). Then, publishers would select from one of these prices when they save the story.

My question: Is this arrangement possible? Do you know if Apple would allow a predefined pricing scheme (against a token) for content that hasn’t been created yet? And, am I right that this is considered a non-consumable since the story needs to only be purchased once and can be downloaded and accessed from other devices?

Sorry for the long-winded question. Thanks for any guidance.

1 Like

Hi @peterd,

As you have outlined it, this is a non-consumable.

However, I’m not sure about whether or not Apple will allow it. The problem with non-consumables is that once a user owns them they appear across multiple devices. But since the content doesn’t exist yet, you won’t know which piece of content each purchase represents.

Also, once somebody has bought a token, since it’s non-consumable, they wouldn’t be able to purchase another.

One option is to make the purchase consumable. The user purchases a token, which they can then spend (i.e. consume) on their choice of content. You would then be responsible for recording this purchase, so that the user has access from multiple devices. I’d suggest CloudKit might be a nice way to achieve this.

I think that Apple allows this behaviour, but I’m not 100% sure—make sure you check the guidelines before developing it.


I thought it was a little funny when Sam said Apple generously gives the developer 70%! Whose doing all the work here Sam? Decent tut but you were off on that remark.

Hi @dpalme

I’m glad you enjoyed my sarcasm! :slight_smile:


I thought about that after I replied :slight_smile: Point well taken Sam please accept my apologies it I sounded rude.

Oh not at all! :slight_smile:

Regarding Consumables and expiring Consumables
We have a user generated listings application like “letgo, carrousel, trademe and mercado libre” and we have free credit and premium credit. The model is that the user can buy credit to post new listing after his free credit finishes or also for adding some add-ons like video. So if this credit is expiring credit which means it can only be used within the next 6 months that means this credit purchasing part shouldn’t be handled as consumable product and i shouldn’t integrate in app purchase?

Hi @technivance

What you’re describing could technically be modelled as a consumable purchase. What I’m unsure of is whether or not Apple will allow you to create something that you can purchase, not use, and then it disappears. I think you’d need to read the IAP guidelines carefully to determine whether that’s a problem or not.

It’s not clear whether or not the user can ‘spend’ all their credit before it expires—i.e. can a user buy credit multiple times within the 6 month period? You might be looking at a subscription model, which is also supported as an IAP, and provides you with recurring income.

Sorry to not be more directly helpful—unfortunately you need to dig through the IAP guidelines from Apple to see how they best fit your business model.



@samdavies Thanks for your reply

We read the guidelines carefully and all the apps I have mentioned are just like us, they don’t support the in-app purchase but Apple insists that we should integrate it in our application and we are confused about this part actually that’s why I’m asking. The subscription model doesn’t fit our business and it’s been there like that for a while also we did a small test and our users didn’t like it at all.
According to the question you have mentioned. Yes, the credit expires even if the user didn’t use it.



You might be able to get away with not implementing IAP, as long as you don’t provide a link to a different way to purchase the same digital content. Kindle is a good example of this. You can’t purchase books, or browse for them, in the app. Nor is there a link to buy stuff. However, new content you purchase on amazon.com does appear in the app for consumption.

I’m pretty sure that you would be able to implement what you want with IAP, but it’ll cost you 30%. The alternative is to provide credits, and let users work out how to top them up.