iPhone: Upgrade to pro version using in app purchase - iphone

Please, I want to add a button in my app titled "Upgrade to pro Version". When the user touch this button, Some hidden buttons become unhidden.
What the code to do this, using in App purchase? All tutorials I found, discuss that you want to sell some items or other features that need a store. I don't want to create a store.
Also, how to implement restore function?
Thanks in advance

Related

iOS: iPAD to Univeral App upgrade quandary

I have two versions of my iOS App - FooBarApp for iPAD and FooBarApp for iPhone each with its own Bundle ID (com.foobar.fooBariPad for the iPAD app and com.foobar.fooBar for the Phone App) Both have the same functionality - searching and buying the same products.
I have created a new version of the iPhone FooBarApp which is now a Universal App and can run on both iPhone and iPAD. However I already have a large user base of users who alreadey have the iPAD apps.
I'd like to retire com.foobar.fooBariPad iPAD App, and ask the users to now download the new Universal App version com.foobar.fooBar. To do this I created a new version of com.foobar.fooBariPad, which is a forced update, and which on startup, prompts users to update to the new version of the app. When they accept the hand-coded update button, it redirects them to the appstore to update the App.
Kludgy I know, but I did this because there is no direct way to update the old iPAD app to the new Universal app (as they have different bundle ids)
Unfortunately Apple Rejected this with the message:
"Design Preamble Your app includes an update button or alerts the user to update the app. To avoid user confusion, app version updates
must utilize the iOS built-in update mechanism. ... Next Steps Please remove the update
feature from your app. "
In other words they want this to be a forced upgrade.
We are thinking of just removing the previous iPAD App from the Appstore, but it may cause confusion. Would appreciate any smart solution to this problem, which will prompt users to switch from the old iPAD app to the new Universal App with the least friction. Perhaps push notification is the answer? (but if so then how)?
FOLLOWING onnoweb 's answer below, I got this from a friend who saw the way Dunkin Donut's had implemented this. Just in the messaging (not a tech fix)
Maybe it's a matter of terminology in the foobariPad app?
I've done something similar (EOL-ing one app and asking users to switch to the new one) without any complaint from Apple. We did it by showing an alert to the user saying something like "We are ending support for this app. Please use this new app with the same and better functionality." and then a button that took them to the AppStore if they didn't have the new app installed, or if they did then we did an openURL() to the new app after tapping the button.
Maybe it's not clear to Apple that you're redirecting users to a new and different app rather than a newer version of the app the user is in?

In App Purchase Tab Cannot possible to access

I have developed iphone app with working In App Purchase. Now I want to release new version of the app with new price for in App Purchase. But, Whenever I tapped on iTunesConnect -> Manage Your Applications-> My App -> Manage In App Purchase, I found this ------"java.lang.IllegalStateException: Seventeen".
Can anybody tell me, how to tackle with this issue?
The solution is that there's no solution for that. It is a bug on Apple's side. This iTunesConnect site stinks in all possible ways. I recommend you to fill a feature request asking Apple to provide a software application we can use to manage our apps and in-apps that are already created. Do it at http://bugreport.apple.com. I already did that and the bigger the number of people asking for it, more likely Apple will create that.

How can I get my app version from app store programmatically

How can I get my app version number from app store programmatically?
And is it against the HIG that if I show an alert to user that I've released an update? will apple accept if I show an alert for each and every update of my app in appstore.
It's definitely not discouraged, just slightly annoying, especially when creating immersive experiences like games. But anyways, here is a controls specifically made for your specific needs: http://www.cocoacontrols.com/platforms/ios/controls/iversion

Apple Rejection of application due to in app purchase

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.

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!