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.
Related
I am in the process of developing an app which needs to have a monthly subscription in-app purchase. The first version will be on the Apple platform. I have developed it using Xamarin because it need to support Android later as well. So far so good. Now I would like to start the development of the same kind of app for Apple TV, but I would like to use Xcode and Switch for that (because I prefer that). Is there a way to share the in-app purchase between the two different apps? I was first thinking of using wildcard for my bundle id, and use the same, but that does not seem to work for in-app purchase? Or am I missing something?
Thanks
We have a full fledged website that has a checkout mechanism it,using which users can buy items,we decided to make an iOS app that will simply open the home page of the website under the UI web view of iOS.
I just wanted to ask is it acceptable by Apple as we are not using in app purchases?
No, your app will most likely be rejected.
From the App Store Review Guidelines:
2.12 Apps that are not very useful, unique, are simply web sites bundled as Apps, or do not provide any lasting entertainment value may
be rejected
If you are selling physical goods or services that are not consumed within the app you cannot use in-app purchase.
YES it is possible but I would strongly recommend you not to Use it.
This is apple Guideline for uploaded apps
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
I have an app that I would like companies to buy licences for. Say they have 5 devices so would by 5 subscriptions?
is this possible with IAP?
Is there a way of stopping them just having a single shared iCloud account and buying a single licence which is re-used across devices?
Has anyone need to do this before?
Thanks
Unfortunately no, there is no way to do that on iOS. The app would be rejected, with or without In-App Purchase.
11.6 Content subscriptions using IAP must [...] be available to the user from all of their iOS devices
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
Ref:
https://developer.apple.com/app-store/review/guidelines/#purchasing-currencies
Just so you know:
There are ways for large companies to buy app licences by volume (through VPP and MDM). But you would have no involvement in this matter, and you app still needs to be available on the AppStore.
I currently have a free app (game) in the Apple app store. I would like to begin charging for access to features that already exist within the app (in-app purchases). Ideally, users that have already downloaded the app would not have to pay to continue using these features. However, any new users would not have access to them without making a purchase. I would like to do this without creating another app in the app store. Is this possible and if so can someone provide high level steps for getting this set up?
Is this possible and if so can someone provide high level steps for getting this set up?
Yes, it is possible. The high-level steps are:
Write an update to your existing app, in which those features are available only by in-app purchase.
Submit the update to the app store.
First my question, then my situation:
Question: Can a new binary be used as an IAP? So instead of using the IAP feature to download say a weapon pack or a song, can it download a completely new binary of the same app, that way when the user upgrades they no longer have ads and they have additional features that weren't present in the free version.
Situation: As brief as possible, Apple has approved both my IAP package and my new free version for the public to have accessibility to upgrade. However, when trying to upgrade, after making the purchase (sandbox or live), nothing happens... the account gets debited the 99 cents, but the user never receives the paid version of the app. I'm assuming that there's an issue with the actual package.... which leads me to believe that Apple approved it without checking the integrity (perhaps it's not Apple's responsibility, but I figured that checking for a faulty IAP would be just as important as checking for crashes).
Am I on the right track about the packaging being faulty? Could it be something else? If doing a new binary is possible, is there documentation anywhere online about setting it up properly?
Thank you!
You are going about this all wrong. You can't provide an updated app as an IAP. Your free app with IAP must include all desired functionality built into it. When the user purchases a feature through IAP, the existing app uses that as a flag and simply starts letting the user use the additional feature(s) or to stop displaying ads.
Basically on startup your app checks to see if the user has made the in-app purchase or not. If not, you show ads and/or hide certain functionality. If they have, you don't show ads and you show the appropriate functionality.
In-app purchases are there for products which on download can be used after purchasing. But in your case you are downloading the full version of the app on in-app purchase. Do you have any way to load binary of an app? No, right?
What you can do is just disable all functionalities of full version of the app through coding, when on purchase just enable all features for pro version.