Re-Installing IPhone App From Inside The App - iphone

I want to find a way if it's possible to re-install an IPhone app from inside it?
Let's say my users have the app already installed in their phones and now new version is released, can I make my app such that it will check over internet if new version is available and if it is, download it and ask the user to install it. If user says yes, it will first un-install the current version and will install downloaded version.
Is it possible anyhow?

Apple wont allow this.
For one reason, un-installing the app removes all the user documents (if applicable), so theres no way to preserve user data.
Apple already has a medium for updating (iTunes App Store).
If you want to be able to check if there is a newer version of your app, you can do that simply by checking a text file (for example) on your server, and notifying (by UIAlertView possibly) the user that there is a newer version of your app. But again, Apple already has a standard system in place. (Badges on the App Store icon)

probably not because to uninstall an app it requires the app to be closed

You don't have to do that. If you upload a new version to the app store, a notification badge will appear on the app store icon on your users' phones. You aren't allowed to install apps any other way than through the app store, anyway.

It depends on your app and what you want to update. It's not possible to reinstall the native app, but you can download data and update your app using that data. For example, we have an app in the store which is mainly a webview inside the native app. The first time it launches, it uses the internal data, but checks our server if there is an update. If there is an update, it downloads remote data and replaces the internal. It's what most magazines do for updating their libraries.

Related

Can't test iPhone app update as an update

I have been working on an iOS app update and am ready to submit it, however I am having a small issue I am concerned about. I create an ad-Hoc version for testing and when I try to synch the update over to my phone via iTunes it won't give me the 'update' option next to the app. The buttons in iTunes says 'remove'. iTunes actually forces me to first remove the old version of the app and only after it is removed, iTunes gives me the option to install the new version and then the app works fine. The only problem is that this is not really testing the update process and I am concerned that once I release the app to the app store my users will have the same issue where they will not be able to just update the app, they will have to remove the old app first and then install the new version. Any idea what might be going wrong here?
iOS takes care of updating Apps, as far as bundle identifier in your info-plist is the same, any newer version will show as an update in iOS. But in iTunes things work differently. You don't have to worry about these things.
If you want to test effects of updating an App, Install the old version from AppStore. Connect your device and Run the project from Xcode. Now this will work the same way as updating your app.
There is no problem from your part. Maybe this time iTunes is not smart enough to know that your ad-hoc version is an update one or maybe the version of the app on iTunes and on your phone is the same. I've made a lot of update to my apps, when you submit a new one to AppStore your user won't face this problem. They will find an update button for your app :).

Is there a way to password protect the download of mac app from appstore?

In one of our project we have 2 binaries, one for iPhone and other for mac. These two application communicate each other to achieve the functionality. We want the user to download and install the iOS app first and then let him download the Mac application.
Is there a way to restrict the user, if the user try to download the mac app before downloading the iPhone app?
Short answer: If you're referring to the Mac App Store, then no.
Long answer: Both, the App Store and the Mac App Store give you no way to control who downloads your app and you are not able to get information about what a user already downloaded.
You could of course ask for an e-mail address in your iOS app and make sure your users register to a server before you e-mail them a link to a private download page (not the Mac App Store).
General advice: I think there is something wrong with the design of your app. It's not clear to me what you're trying to achieve and I bet your users won't either. If you want to make sure they pay for the iOS app before using the Mac app then just alert them in case they downloaded the Mac app first. You need to write some custom service to check for this of course. If there is some functional problem that requires the iOS app to be launched first then you should solve this yourself and not put that burden on the shoulders of your users.
You could allow anyone to download, but simply block any operation until the iOS app has sent some kind of approval token to a server or iCloud for example.
You have to download mac application first, and after downloading you can check if user downloaded iOS app or not, but before downloading you can't check the downloading state of iOS app, because application will upload on appStore not on your personal store.
After downloading iOS app set some flag value on server, and check this flag value on mac app downloading, it it is 1 then download else show alert.
After iOS app downloading -> Set flag value (ios Download=1) to your server.(make web service for this).
After downloading mac app -> Call you web service to check that flag value. if it is 0 then show alert to download iOS app first.

auto upgrading iOS apps

Is there some way to implement an auto-upgrade for an iPad app.
I would like to be able to have my app check for updates, and then upgrade itself.
As far as I am concerned the app can retrieve the update from the app-store, but:
I would like the interface to be app internal: User should just have to press an OK button for the upgrade to start (all this time staying within the app)
Is this possible at all?
It is possible to have display a notification to inform an update is available on you app and you can redirect the user to the AppStore, but an update can only be download from the AppStore.
This will reinstall the new version of your app. So you can't stay in the app to update (You need to go to the appStore and qui the app during the update).
Internally, you can only update some content for you app (not add new native code) but not with a real AppStore update.
Apple does not allow apps to download, install, or execute code that is not included in the original app submitted to Apple. The App store upgrade cannot be automatically started.
the best you can do is determine if the app store has a newer update, then prompt the user to install it by linking directly to the app page in the app store. They will still have to click the correct buttons to start the process.
Even if it were possible, it's not allowed by Apple. Your app will be rejected.
Unless you only update contents of your app, e.g. cooking receipts.

Check whether app updates work without submitting to App Store

I have an application already on the store and would like to release an update. Since my app deals with databases and I've had to change some parts of it, I would like to ensure that the update does not affect the existing functionality in any way once the user updates from the App Store.
What I did was this - install the first version of my app on my device. Changed the update's version in info.plist to 1.1 and run it via xcode (and install on my device). But what happens by doing this is some of the changes I made to the XIBs do not show up. It looks as if the app was only half-updated (if you know what I mean)
Is there any way to update an existing app programmatically without having to go through the app store and then find out it could lead to a disaster?!
Thanks for any help!
I would double check your build configuration. Between building the two versions of the app, I would recommend a "Clean All" just to be safe. The process you described works to verify updates. The only other alternative I can come up with is to create Ad-hoc distributions of both versions of your app, and install those.

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.