Inapp purchase in iphone - iphone

I am new in iphone and i am on the final stage of my first project for iPhone.I need some help in Inapp purchase implementation.I need to give a free version of my app for thirty days and then force the user to buy the app.Please let me know how can i start implement this.Looking forward for valuable advices.
Thanks in advance.

You can't release a time limited app of any kind through the Apple Store.
The iPhone business model does not work like that for non-moblies. Apple will not let you release a time limited application of any kind.
Instead, you have to create a "lite" version that has some but not all the full application's features and release that for free. The lite version can have a link to upgrade to the full version but it must be a functioning app in its own right.
So, you need to start over from scratch thinking about your app. You need to develop two versions.

You'll need to manage the activation over the network - if you try storing the "shareware" date locally, then you'll create a state where users can just wipe the app and re-install every 29th day. But then if the user always runs your application in airplane mode, they'll never contact the activation server, so you'll need to manage activation locally :-).

Related

Verifying the purchase (receipt) of another application (Mac App Store)

TL;DR: Is there a way to verify that a user has purchased another app (of mine) from the Mac App Store?
In a brief, I want to completely rebrand one of my applications on the Mac App Store. The current version is very buggy and has a user base of nearly 90% pirates. I want to shut down the old application and completely rebrand it as a new product.
However, I don't want to completely screw over my current, legitimate customer base. I am hoping there is a solution to this. The way I was hoping to go about this was to:
Create a new application – completely rebranded
Make it free
Have an In-App Purchase that unlocks the Pro version
Allow customers of my previous app to "restore their purchase" to unlock the Pro version
The new app will have extensive anti-piracy measures. Furthermore, the current application requires a connection to one of my servers. When I release the rebranded app, I will shut down the current app.
I realize the forcing users to migrate may cause some backlash; however, I am hoping that, by providing the new and improved version 100% free, the backlash will pass.
Look for the old app using NSBundle bundleWithIdentifier
get the receipt of this bundle using appStoreReceiptURL
validate the receipt
unlock functionality
Bare in mind that the terms and conditions of Apple say something along the line of "only appstore IAP should be used to unlock features; don't roll your own license mechanism"

Can we restrict a Free app from being downloaded or installed for a 2nd time on an iOS device

I have to restrict a Free app from being downloaded or installed for a 2nd time on an iOS device, as I would like to user to purchase the paid version of the same. A first time user of the free App can download the Free App and install it on their iOS device, but after using the Free App for certain number of times, the Free App will work with limited functionality as I would like to promote my paid version, so I prompt the user to buy my Paid version of the App. At this time the user can delete my Free App and Re-Install the same from either the iTunes store or the iTunes on their computer or iCloud backup.
Question is how can I restrict the user from re-installing the same Free App on their iOS device a 2nd time ?
Is there any way to tell the iOS on the user's device to stop the 2nd time install of the same Free app ?
Or is there any other way to achieve the same results ?
Thank you.
You're unlikely to reliably get past Apple's review process with these restrictions.
Free/lite apps are supposed to be fully usable apps in their own right. So, using a todo app as an example:
You could limit it to ten TODO items
But you'd get into trouble if it stopped working after ten days
Clearly you can also limit in terms of what functionality you offer. My apps, for example, only allow editing in the paid version; the free one is read-only.
I'm not sure that you can reliably do what you want. (What about if I have to wipe my phone and restore from a backup? Does that count as reinstallation?) But even if you could, it wouldn't necessarily be a good idea.
i think the recommended way is to use in-app purchase. You can enable a full Version to the user when he buys it. So there is no reinstall needed.
I'm not sure why you have the requirements you do, but this does not fit the model of the App Store. You are likely to have your application rejected, even if you were to find a way to do this.
If you (or your stakeholder) are insistent in this approach, maybe the App Store is not for you.

iPhone/iPad app delopment and BundleId

Okay so here is my situation. About a year ago I released my very first iPhone app! (Yeah). Since then I have been working on making it into a universal app. In doing this, I actually went ahead and created a brand new universal app and then proceeded to code accordingly.
So now I want to release this app but since the app was created brand new, it has a different bundle Id. I don't want to alienate the users that bought the previous version for just the iPhone so is it as simple as just changing the universal app bundle Id to the one I used for the iPhone and publish that way? Will this fly with apples publishing system?
Thanks in advance for any and all help.
Geo...
Should be absolutely fine. The devices will just replace the app with the new version - as long as your new one uses the same data storage / preferences etc there's no reason why that won't work.
NB This answer assumes that you are going to release it as an upgrade to your previous app.

iPhone Ad Hoc distribution without expiration

The background story:
I work for a company that develops and manufactures a commercial product which can have up to 100+ dedicated PC's in a farm.
We only get a handful of new customers per year.
We developed an iPod/iPhone app that lets us send commands to the farm and pull data. Our parent company has major concerns about putting this app on the AppStore. (I really dont know the details of the paranoia, but I know its probably not a winnable battle).
We planned to distribute the App via Ad Hoc using ONE or TWO new iPods each time we sell a "farm". I have just learned that the Ad Hoc distribution expires after 90 days.
The Question:
Are there any alternatives for permanently loading our app onto an iPod Touch or iPhone without going through the App Store?
Our app has absolutely no use to anyone without our other product. We only plan to load this app on a handful of iPods a year. I doubt this matters, but maybe somebody has another solution?
Apple has an an enterprise distribution program, which might allow what you're trying to do. There's also jailbreaking the iPods. That would let you run unsigned code, so you could build your apps without ad-hoc certs.
I know this post has been marked as answered but i am in the same situation so i though i should share what i have experienced.
There is NO legal solution for this. You can't have an app distributed with out the annoying expiry dates.
I have been onto the ADC support and you can't get an extension on the certificates, you can renew for more than 1 year at a time and they have no interest in helping you.
I have clients who will not let the content of their apps hit the app store. There for they are stuck with sending all the devices back to renew certificates (i know you don't need to xcode etc.. to install the certs but try getting end users to do it...).
I am in the luck situation that i can try send the shell of an app to the appstore and then once verified (i.e. once off login - ssl to our server with the device id and a guid password) the app will download all the sensitive content to the phone.
I don't know if this will work for all apps - i.e. loading classes or libraries dynamically but for me it is only the content that is sensitive.
if anyone would like more info i am happy to talk it over, but i haven't tried getting the app through the store yet. I will try soon, so i can keep you posted if you are interested.
cheers
kle
As of September 2010, Apple has removed the 500-employee requirement. Go nuts!
See my post about setting up an Enterprise Program account (which moderators keep trying to close!):
https://stackoverflow.com/questions/1876333/how-long-does-it-take-to-get-an-iphone-app-into-the-app-store-closed
Issues with getting an Enterprise Program account:
-You need 500 employees.
-You can only provide the app to employees.
Make sure you check the detailed terms and conditions of using Ad Hoc distributions to be sure you are allowed to distribute them as you are doing. On the face of it you are probably okay (Apple link here), but worth checking the fine print. I know the Enterprise Program had a lot of fussy fine print, e.g. needing procedures to recover apps from employees when they leave the company, etc.
If you jailbreak the iTouch/iPhone then you can easily disable Apple's code signing checks. You can then build your app and load it onto the device as normal without worrying about expiry or anything else.
The only problem is that jailbreaking on newer batches of the 3GS is not particularly end-user friendly. For something to give to a client I think you would need to stick with the iTouch.

Is it possible to make your uploaded iphone application auto-update? [duplicate]

This question already has answers here:
Can I force an iPhone user to upgrade an application?
(16 answers)
Closed 5 years ago.
I am about to upload my Iphone application to the apple store, however I intend to release more versions in the near future. Is there anyway to make my application auto update once I upload a new version to the apple store?. That is as I am about to upload version 1.0, once i upload version 1.x, can the user be notified of this or can the application be auto-updated?. Can anyone point me in the right direction?. Any help will be greatly appreciated. Thank you.
-Oscar
No, this functionality is not available on the iPhone. The AppStore provides updates through the store only, and Cydia provides updates through Cydia only.
The direction i've seen many applications take is at start, check an XML file that you host for information on newer versions, and typically display a message to the user (preferably in a news ticker or non-obstructive manor) about a new version being released, and why they should upgrade.
You can't auto-update, however as far as I'm aware nothing prevents you from notifying the user that a new version is available, within your app. For example you could contact a web server to find out what the latest version is, and compare that to a build number in your app bundle, then display an appropriate alert/notification to the user. Or, you could get fancy and use the 3.0 push notifications for this.
In theory the appstore app/itunes will do this anyway, but it's clear that a lot of users don't see that.
Another thing you can do using the method I outlined (that the app store won't do) is tell the users that a new version is available, what it does, and that it's waiting for apple.
Even simpler is just to embed an 'announcements' channel in your app somewhere. That lets you talk to your users without waiting for apple - you can tell them there is a new version on the way, etc. I do this with an app I'm beta testing - a button on the main screen shows announcements, which I pull from my server.
Maybe if enough app developers did this, apple would start turning the approvals around quicker. Or change the legalese to prevent it [assuming it doesn't already] :-)
This is functionality provided by the app store. When you submit new versions, after apple has approved them, they will become available through the app store as updates to users that already have the app installed.
User will see new available updates to apps he owns in iTunes. User can then choose to get the update.
I'm not sure about updates via iPhone but if you pay for data downloads you would prefer to download apps/updates over iTunes on your Mac and then sync to iPhone. It's cheaper that way.
My guess is automatic version updating is intentionally left out. Think about it: what kind of strain will they have on their server if everyone on the planet with an iPhone downloaded An update to Fruit Ninja at the same time? I think their passive notification to the users via the red circle and white number allows them to spread out/stagger the update downloads and reduce server load.