MacOS IAP Example

Is there an example project of IAP for MacOS? I have done it in an IOS app but thought I might it on MacOS for one of my apps that is currently not selling that well.

MBS Plugins come with an example project for StoreKit.

Hey Martin,
I suspect the #1 problem is that no-one knows your application exists, so they don’t download it, which means it remains hidden to new potential customers. I have complied a list of marketing tips here Improving Mac App exposure [upd]

Due to the design of the App Store, unless customers specifically look for your app, they’re not going to come across it unless it’s already popular, or you have a means of promoting it outside of the App Store (to then give Apple 15~30% of your profit).

If you’re still considering adopting IAP, I would recommend taking some time to consider your options, discuss with us, before you start this route. Auto-renewing subscriptions are recommended by Apple, but they have a negative connotation with customers, to the point that some customers won’t even use a free trial as they do NOT want to get conned into a subscription.

I have App Store code (which relies on the Ohanaware App Kit) that I can strip out from HDRtist NX and share with you. I also have the OWStoreKitBridge - Integrating the Mac App Store with Xojo (FREE) for reading receipts.

I assume you sell your application outside of the App Store also?

1 Like

Thanks Christian didn’t think to look there. So far so good

The test code recognises my IAPs but when I click on one it says I have to change store to Australia and then when I do it says it can’t connect. What have I missed?

Sorry, I don’t know all those troubles.
But you may read up on Apple’s documentation pages about how to specify which store you test with.
I can only assume the sandbox brings you in the US store, but your Apple ID is for Australia.

Hi Sam,
Just playing with MBS at the minute but open to working with you. I do sell my apps direct which use to do quite well in the school market but that has dried up as schools seem to not buy direct anymore here in Aust as much as they use to. I wasn’t going to look at subscription as I personally don’t like that either which is why I stopped using MSWord.

I have 2 games and 2 Teacher Utility programs like my Crossword generator that I need to monetise better so thought the free download with limited features might be worth a try.

I honestly believe that your time would be better spent in trying to attract new customers, than adopting IAP.

I have two products that are comparable, they differ by features and price. One uses IAP, t’other is direct purchase. You can compare your apps performance using the Analytics and Trends on App Store Connect.

IAP version.
41% download the product. We improved this ratio by adding a video of the product in action.
5% use the FREE trial, which is double the ratio before adding “No-obligation FREE trial” to the text.
1.5% actually purchase the product, which is better now more people try the product.

Direct purchase.
7.5% of people who see the product page, purchase the application. No fussing around.

The cheapest way to acquire new customers, is with a new version, modernize the UI, add a couple new features. Then launch a new version, list on all the download site, tweet about it, contact bloggers, Mac magazines, send out FREE copies for review. Find forums where people are talking about what your product can help with (don’t be salesman like), but offer some free copies in return for feedback.

Submit your application to Apple for promotion, if Apple like your application, you’ll sell more copies.

Also consider where you want to drive that traffic too.
If you send those customers to the App Store, and it’s enough customers, your app climbs the ranks, where it will be more exposed. You need 1,000s of new downloads (Some developers are allowed to create a new product for their v2, which really helps, especially if you create the means to let v1 customers know that there’s a new version in the app). The downside is you’re driving traffic to Apple, at the expensive of your brand. If Apple don’t let you create a separate v2 app, you’re forced into subscriptions to be able to charge for upgrades.

If you send those customers to your own site, you stand the chance of cementing your brand with them, which increases the chances of them becoming loyal customers.
You can also offer potential customers a mailing list form, your twitter handle, facebook page. This helps people who don’t purchase at that time to keep tabs on your company, which can help when you do discount promotions and new products. However that does mean your application won’t get as many downloads on the App Store and will remain buried deep in their system and out of view with customers.

Which reminds me, if you do go IAP, no-one knows when you do a discount promotion. At least with direct purchase people will see your application price straight away. I think most of discount sites for Mac apps have finished now anyway. Even TwoDollarTues ceased operation last year.

I hope that this can help in some way.


I would have thought that this is a path well trodden. Is it unusual to put IAPs in a desktop app?

Hi Sam,
That all makes sense.
I think I might still experiment creating one desktop app with IAP just for the exercise. I wasn’t able to get MBS to work so if you have time to send through the necessary example that would be great.

Sure, gimmie a couple of days to rip out the working code from my application and build it into a sample application.

You have a copy of the Ohanaware App Kit right? If not, I can strip out what’s not needed, but it will just take me a little longer.

I think I only have App Wrapper?

Off-topic but a quick note only:
It is possible to buy MS Word also as a one time purchase (without subscription).

1 Like

Hi Christian,
Continuing to explore the MBS approach to broaden my understanding. Following the purchase button code below. It appears to grab ‘p’ and ‘t’ from the store but crashes on the 3rd line with a nilobjectexception error… see screen shots below

dim p as SKProductMBS = list.RowTag(List.ListIndex)

dim t as new SKPaymentMBS(p)

AppStoreModule.PaymentQueue.addPayment t



you are sure payment queue is not nil?

did you look if the exception has a message set?

Yes you were correct, I moved init to the wrong spot.
Now I am back to the store error issue.

I was able to implement iAP under iOS quite fine, but under macOS, it never worked. I finally gave up.

Off-topic: (vice versa) I hate ported mobile applications to the desktop - user must click and click, and scroll and scroll. A typical example is Settings in Windows 10/11, App Store in newer macOS systems or System preferences in the new macOS Ventura. Quo vadis Apple??? Are you preparing for the merging iOS and macOS and the touch control? (Catalyst is a way to hell.)

Apple has been increasingly merging iOS and maOS. At least internally. I am less versed into this than @Sam_Rowlands, but I noticed how some calls are really similar between the two platforms.

About touch, though, Federighi stated more than once that Mac would not be touch enabled.

“If you tell a lie big enough and keep repeating it, people will eventually come to believe it.”

1 Like

Well, Windows has been touch enabled for a decade. if Apple wanted to do the same, they had every occasion.

I suspect they won’t touch enable macOS because they want to push iPad Pro as their touch enabled “computer”.

1 Like