Apple Rejection of application due to in app purchase - iphone

I had created one application with 2 versions one is paid second free.
Now in free application my some of features are showing an alert by telling the user
"For using this feature you have to purchase Full Version. Do want to purchase?"
On click of No nothing done just dismiss the alert and user can continue with other available features.
On click of Yes I am navigating user on my application's link in app store. My application enter in background and AppStore opens. That shows my application. From there user can purchase app and can download app.
Apple rejected my free version application with following reason:
11.13 Apps that link to external mechanisms for purchases or subscriptions to be used in the app, such as a “buy" button that goes to a web site to purchase a digital book, will be rejected.
1) Am I doing is wrong?
2) Can I use in app purchase in the manner that my free version application get removed and full version get available? because logic for both application is different.
Thanks,

You can't disable features in lite versions. For example, if your lite version has a button that says "Level 5", the user clicks it, and it tells them to buy the full version, the app will be rejected. However, if you have a button that says "Get the full version for more levels," that should be acceptable.

The only way to be sure is to ask Apple.
I would interpret what you've said as:
Going to the App Store to purchase the full version of your app is acceptible. Many apps (including mine) do just that.
However, using IAP to perform the upgrade might be preferable. Your main problem is transitioning existing users from the Lite/Full apps to one with IAP -- in short there's no fool-proof way of doing it.
One thing that might get you rejected is non-functional buttons in the free app. According to the guide-lines, all apps need to be fully functional. Of course your free version can have fewer features, but they don't like it when there are buttons that do nothing but prompt you to upgrade.

What you are doing here is not in-app purchase. In-app purchase refers to using the iOS SDK to allow a user to purchase additional content or functionality that will run in your app. Having 2 separate versions of the app like that does not use in-app purchase.
I'm guessing your app was rejected because you gave the appearance of in-app purchasing by having a message saying "For using this feature you have to purchase Full Version. Do want to purchase?" What you should be able to do, without significant change, is disable those buttons that aren't available in the free version; perhaps replace their text with "Full Version Only." Then, somewhere else in the app, maybe the home screen or screen where those buttons are, you can have a button that says "Get the full version!" or something, which would link to your full version in the store.

Related

In App Purchase Non-Consumable - Performance - App Completeness iOS 14.2

Issue I am facing is this below:
"We found that your in-app purchase products exhibited one or more bugs when reviewed on iPhone running iOS 14.2 on Wi-Fi."
"When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead."
I have implemented in-App Purchase (Non-Consumable), Its working perfectly fine in Buy and Restore etc. Apple Rejects with the above reason.
What I am doing:
Using SwiftyStoreKit
Click Buy Button
SwiftyStoreKit.retrieveProductsInfo
SwiftyStoreKit.purchaseProduct
On Success ( SwiftyStoreKit.finishTransaction )
Restore:
Click Restore
SwiftyStoreKit.restorePurchases
Please let me know if need more information or code etc and what I am doing wrong which rejected the app.
Apple Recently Replied me as well this below message:
"Regarding purchasing in-app purchases, we continue to be unable to buy the full version of the app. When we tap on the button to buy, the app continues to load indefinitely.
We are not able to provide feedback on app concepts or features, but we recommend evaluating your suggestions against the App Store Review Guidelines, as well as the iOS Developer Program License Agreement (PLA), and the iOS Human Interface Guidelines."
So I found the Solution for this. When ever you receive error something like above, here are the steps you need to check and do.
Check first your In-App Purchase Implementation. Are you doing it correctly, ending the transaction etc.
Check what is the latest version of iOS supported by your XCode. If its lower than the shown in the issue like in mine ( xcode ios version was 14.0 and issue with 14.2).
For that you need to just download the latest XCode which support that iOS Version and make a build and then submit for review. It will surely work.

iPhone Lite Version Upgrade

I have a lite version of my application. I want to include a link or something that sends the user to the App Store so they can purchase the full version of my App.
I do not want to do that In App Purchase program though.
Is this allowed, just want to make sure, i'm not seeing anything definitive online.
You can make a link to your full version app in the App Store. There's nothing wrong with that. It won't count as an In App purchase, it will count as a regular App Purchase.

Workaround to lack of promotional codes for in-app purchases

Apple doesn't offer promotional codes for in-app purchases. What's the best way to let users try the features or content unlocked by in-app purchases for free, while complying with Apple's Developer Guidelines?
The idea is to allow a special set of users (reviewers, key fans, etc.) to access the content or features offered as in-app purchases without paying.
Examples of apps that worked around this limitation would be much appreciated.
You could submit a version of your application that has all features unlocked by default.
Submitted apps have a publish date that you can set when you submit (and I believe you can change this on the fly as well) you could simply prevent the app from being published in the App store but still be able to give promotional codes for it.
Promo codes apply to a specific app version, so when users redeem promo codes for a version of an app that hasn’t been released yet, they download the prerelease version.
Source
Something like shareware? An app, that has a subset of features enabled until in-app purchase? Apple allows it now.
As example. We've a puzzle game, that has 12 difficulty levels. 4 or 5 of them are available for free and others are unlocked after in-app purchase.
I'm working on this now.
What I'm doing is I generate a random code/guid and store that on my webService's DB. Then give that code to who ever you want. They enter that code and it calls the web service passing the code, and device UDID. The webService returns another code indicating if that promocode was valid. If valid then the app will add that purchase to NSUserDefaults or Core Data (however you keep track of purchases).
If you don't have a server up and running (say the content is already in the app bundle) and you don't want a server would require you making an algorithm to generate keys that your app validates. However this is far less robust. Using a web service allows you to prevent 1 working key from being distributed between all users, as you can tie 1 promo code to 1 device.

what is the differences of purchase in app and create your own link to pro version?

I want to create two version apps: lite and pro.
I look through purchase in app guide , but it is not allowed to change the lite version code to add functionality. you can just pop up an store UI to link the user to pro version, right?
But in this way, we can do it ourself, we copy the link of pro version in the appstore ,then pop up a dialog guide the user to app store?
I know that purchase in app can download new resource to the app,I may miss something about adding new function to the app?
thanks for your guys!
What programming language is this in? I don't have an 'app store' structure in my language...
As far as I understand, "in app purchases" on iPhone apps are not meant to download new code, but rather to unlock new features in your app. By the way, the iPhone OS does not allow applications to dynamically link and execute code at runtime (security reasons) that is why your application must be shipped with all the features inside, and the "in app purchase" feature will allow you to unlock features paid by the user.
You can, however, enable your application to access new data (for example a new URL or another embedded database) but not new binary code (like plugins or extensions). This new data might unlock more features, after the payment is approved by the App Store.
Given that now you can add "in app purchase" in free apps (this wasn't possible a couple of months ago), you can release a free "lite app" which can be upgraded with options later on. Which defeats the purpose of having a separate lite app with a link to the paying "pro app".
I hope this answer helps you!

Coding a "trial run" into an iPhone App that connects to the AppStore

I have created an application and I have purchased an account in AppStore.
I wish to configure the app such that it will run for free twice and after that the user will have to purchase the full version. I want to implement the purchase of the full version inside the trial version (using in-app purchases).
Apple does not allow trial software in the App Store. You can have 'lite' versions of your applications, but Apple requires that they are fully functional applications that do not expire and are not simply advertisements for your for-pay app.
Once you figure out what type of features you want to offer in a 'lite' version, one thing you could do to offer an in-place upgrade for customers in to use the in-app purchase mechanism. Apple now allows free applications to sell in-app purchases. So you could have an app call 'Foo' and inside 'Foo' you could have a menu option to unlock additional features, which would bring them to the in-app purchases dialogs where they could pay you to unlock more content of the app.
Check out Apple's tips & tricks for App Store submission: http://developer.apple.com/iphone/news/appstoretips/
There (listed on Sept. 18th, 2009) you will find a tip titled Just Right "Lite" that reads:
Using a "Lite" version to show how it
feels to use what you make and what
kinds of things your app can do is
definitely a good way to find
customers who will pay for the full
version of your application. But store
shoppers tell us it only works if you
follow a few simple rules:
Make sure the functionality you decide to include is complete. Battles
that require weapons only available in
the full version, for instance, are
annoying and irritating instead of
enticing.
Don't set time limits on your "Lite" version, either for run times
or life times. Applications that will
only run for a set number of minutes
per session, or that expire altogether
after some period of time, don't
recruit customers so much as leave a
bad taste in their mouths.
Only display the UI for what your "Lite" version will do. Grayed out
menu commands, "more track/car
choices" you can see but not select,
etc. makes your "Lite" version feel
more like a commercial than a product,
and an annoying and ineffective one at
that.
Do include information about your full application, including an option
to buy, in either your application's
About section or on the splash screen.
Just make sure the option to continue
using the "Lite" version is there as
well. A good impression lasts forever.
It's important to follow these simple
rules not only to create a better user
experience, but also because your app
will be returned to you by the App
Review Team for modification if it is
found to have time limits, incomplete
functionality, or disabled
functionality.
The most relevent part of that text for yourself and your proposed App design is the last sentence that contains "... your app will be returned to you by the App Review Team for modification if it is found to have time limits..."
Here's a good walkthrough on adding in-app features to your app.
http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/