Share an In-App Purchase between iOS and OS X? - ios

I noticed Bear Notes has a subscription in-app purchase that if you buy it on iOS it also unlocks it on Mac OS X, and vice-versa.
I've seen a few clues out there as to how to do it, such as using the App Store receipt, but I don't know how Bear was able to identify that I'm the same user on my Mac as I am on iOS.
If it was using a receipt, then it would have to take the receipt from iOS, send it to the server, but then know do you fetch the receipt for me when I'm on my Mac?
As far as I remember, I didn't have to identify myself in either app.

First, about the Bear app, it identify you by AppleId. With the same AppleId, it can share every informations.
Then, about the receipt, I don't know if Bear implement it and verify it again on Mac or iPhone but when you purchase something successfully, you need to send some informations to your server. Not to mention to receipt, these informations can unlock your features anywhere you login with the same AppleId.

It easy, you just make application for macOS and iOS
https://developer.apple.com/account/resources/identifiers/bundleId/
And make some In-App Purchase.
In both platform you try restore purchase
https://developer.apple.com/documentation/storekit/in-app_purchase/offering_completing_and_restoring_in-app_purchases
And it shared purchase between platforms (iOS, macOS, tvOS) & user devices with Apple Id.
More Information about In-App
https://developer.apple.com/documentation/storekit/in-app_purchase

Related

Making in app purchase available for Mac & iOS

I've got app for iOS and Mac which has all functionality unlocked with single in app purchase.
But now it's separate in app purchase on Mac & Separate for iOS. I wonder if it's possible to have one in app purchase which could unlock both iOS and Mac.
Update: I wonder if Apple provides mechanism for it.
It is possible, but you need your server where you could track licenses. Many apps do that e.g. like Office 365.

How do I avoid paying for my own In-App Purchase?

I've just had an In-App purchase approved and hit the App Store. To check the app, I've deleted my test copy and downloaded fresh from the App Store - but now I can't get the In-App purchase without paying for it. Is there a way around this? Sandbox user isn't working in the real App Store, and I don't want to make the In-App purchase free, even for a short while, during the first few days of update. Promo codes are available for the app, but not the IAP.
You can use the below link to create sand box users and test app without paying for it:
https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/TestingInAppPurchases.html
I suppose it is not possible to test (without paying) IAP once app is in app store. For this purpose sandbox environment is provided by apple so that IAP are tested in development.

Multi platform credit system, is it against Apple iOS guidelines?

Let's say I sell video-tutorials using a credit system and I want the service to be available as a website, an Android app and a iOS app.
So users may buy/consume credits and use credits to purchase video-tutorials from one of those 3 sources.
From Apple guidelines I read:
11.1 Apps that unlock or enable additional features or functionality with mechanisms other than the App Store will be rejected
11.2 Apps utilizing a system other than the In-App Purchase API (IAP) to purchase content, functionality, or services in an App will be
rejected
11.3 Apps using IAP to purchase physical goods or goods and services used outside of the App will be rejected
11.4 Apps that use IAP to purchase credits or other currencies must consume those credits within the App
11.5 Apps that use IAP to purchase credits or other currencies that expire will be rejected
Is it totally prohibited to use a credit system shared among many access points (as website, android, ios, windows and so on..) or it can be done just avoiding IAP (Apple in App purchase) and using for example PayPal mobile SDK?
It seems very strange to me that apps with this functionality cannot be published.
The only points in apple guidelines referring to credits (or virtual currencies are) 11.4 and 11.5 which make me think you can actually make an app that does not use IAP to purchase credits.
And if you can make an app that does not use IAP to purchase credits you don't have to respect point 11.4 so you can actually consume those credits outside the app itself.
BUT: given that you can sell credits without using IAP and so consume them even outside the app, using them to buy content will break points 11.1 and 11.2 ?
Thank you very much
I am not 100% sure about this, but based on other apps i have seen and the reason why other apps have been taken down i can think the following.
If your app uses the apple app purchase, then its fine.
If your app uses credits that came from another place, its also fine.
However, these credits SHOULD ONLY be purchasable using the in app purchase when the user access your service through the app. This means, you shouldn't offer any other "way of purchasing" credits while the user is using your app.
As an example i remember a very famous app, which i don't remember which was it, had to be taken down because it showed a link that would let users access the desktop purchase system, directly from the app.
There is also other examples. There are a ton of dating applications that use this system, if you go to their websites you can purchase credit, or you can directly purchase them within the app using the in app store method, the credits are the same for the service, just the way of buying them changes.
Another example is the game hearthstone, you can buy decks in game, but you can also buy them from their website, its not the same as credits, but the main point is the same.
Basically, what i think it means is, money related operations should go through apple if the service is being accessed by your app regardless of anything else.
You might want to wait for someone who has had more experience in this, I am just telling you what i have noticed.

in app purchase export compliance

I use in app purchase in my iOS app to buy more coins. I do not download data from any server. While uploading my app, apple asks me whether my app contains encryption. What should I select here.
Thanks in advance.

Use Same Product ID's for Both Mac and iOS In-App Purchase

I have a iOS application with In-App Purchase for some non-consumable products. Now we are planning to build a application on Mac OS X with all the features of iOS and have Mac In-App Purchase. Now when I try to add the iOS product ID's in my Mac iTunes Connect account, it wont allow me to do that. It says I can't use same product ID which is already in use.
I think its common for iOS and Mac apps to use same product ID's for delivering same product.
Now my question: Is it possible to have same product ID's created on both iOS and Mac iTunes connect ? Am I missing something here?
Thanks,
-Anish
To answer my own question, as of now its not possible for both Mac and iOS in-App purchase to have same product id's. I got this info from Apple engineers at WWDC2012. Apple suggests we use iCloud internally to track purchases between iOS and Mac OS if you want your users not to pay for using same product on either of the devices.
-Anish

Resources