Downgrading to a previous version of an iphone app - iphone

I have an app on appstore.
I uploaded a new version and it was published. But, just after that I realized an important bug in my app. Since the approvement process takes a long time, I want to downgrade to the previous version until the fixed version is approved by Apple.
Are there any way for that?
Thanks

The only way to downgrade is to resubmit the previous version with a new version number, or a new fixed version, and wait until it is approved. If you put a note in the Demo Account section saying this is a rollback or a critical bug fix, there are reports that Apple may perhaps expedite the review. If the bug is bad enough to create very unhappy customers, you can warn customers not to download it in your update notes, and/or you can set the availability date of the current broken version into the future, until your fix is accepted.

Unfortunately not, Apple doesn't provide a means of rolling back to previous versions. If you have the source code, you could always just increment the version number and upload the old version again.

like the other answers have said - unfortunately, Apple does not provide a way to rollback once you've released the app.
The way many major apps deal with this is by instrumenting their app ahead of time with feature flags (https://martinfowler.com/articles/feature-toggles.html): ways to enable/disable features and codepaths from the server.
Granted that implementing feature flags requires foresight and planning (it's unlikely you'll capture every codepath). Fwiw, I started my current company (https://screenplay.dev) out of this frustration; you can read much more on this approach here: itunesconnect App - Revert to previous version :)

Related

Updating IOS App. Do updates need to be reviewed?

I've just got an app in the app store and realised theres a spelling mistake on the first view! As the app is intended for an upcoming event occuring in 3 days I am nervous about uploading an update. If I upload new binary to iTunes Connect will that mean my previous version will not be available on the app store? Also, will I need to have Apple approve my latest version prior to releasing it?
Any advice would be awesome, thanks!
When you push a new update it has to be reviews but will likely take more than 3 days to do so. While it is waiting to be reviewed your current version will be live.
Don't worry, your previous version won't be affected. Just upload the new one, but know that it's gonna take more than 3 days (pretty much always 7, if you submit during work hours). You can file for an expedited review, but even that can sometimes take more than 3 days.
And you don't need to remove the old version to put in the new one. You just submit the new one. You can determine whether you want it to automatically become available on the app store as soon as it's approved, or give it a specific release date.
Just know this: If your update has issues and you're forced to remove it AFTER it has become available on the app store, then you can't just revert back to the old version. You have to resubmit the old version and wait a week for that to get reviewed again.

What is Apple's policy with regards to disabling old versions of an application?

My employer has a free iOS app in iTunesConnect that was originally released a couple of years ago and has received various updates over time. They now wish to stop supporting older versions of the application (1.x) and disable these older versions of the app.
My questions are:
Can we stop users from re-installing old versions of the app? If yes, how?
How do we disable/remove old versions of the app in iTunesConnect?
What is Apple's policy regarding disabling/removing old versions of applications?
I'm not an iOS developer and am unfamiliar with the whole Apple application development process. I have searched the web as well as the Apple developer centre and I've read through the Apple Developer Program Terms and Conditions but I haven't been able to find answers to any of my questions.
I have managed to find information about removing an application from sale but this removes the entire application, rather than just specific versions. (Deleting a free app from iTunesConnect)
David Smith's article (http://david-smith.org/blog/2012/06/20/hacking-paid-upgrades/) on Paid Upgrades mentions the ability to provide fixes for previous versions if they're not deleted from iTunesConnect. When I log into iTunesConnect, I only see the current version of the app listed so I'm assuming prior versions have been deleted already. I would, however, like to confirm that users can no longer download old versions of the app.
This article mentions users being able to download old versions of apps from iCloud (http://www.macrumors.com/2011/06/09/icloud-supports-re-downloading-some-discontinued-apps/) - can we prevent this? One option would be to mark the the version as having a "legal issue" but what ramifications does this have? and if I can't see the app in iTunesConnect then how do I do it?
I found a post asking about how to force a user to upgrade the application every time a new version is released but this doesn't answer my questions either. We want the users to upgrade but we're not wanting to force it programmatically. (Can I force an iPhone user to upgrade an application?)
I've also found lots of posts asking how to revert to previous versions of an app in the app store but again, this is not what we're wanting to do. We're wanting to disable older versions of the app but leave the most recent versions alone.
Before the flame wars begin:
Users that are unable to update to the latest version of the app for whatever reason are able to use a mobile website in place of the app. The website has the exact same functionality.
Can answers please be kept on-topic rather than getting into great debates over whether one should/shouldn't maintain legacy versions.
Thanks in advance :)
Users can typically only ever download the latest version of an application. There are a few ways I think they can get around that but in general only the latest version is available to users via the normal means.
If, however, you absolutely must prevent the old versions from being released you can do so when submitting a new update. Right after you say "Ready for Upload" you will be asked a question about if this update was for a 'legal reason' if you click YES then you will be given the opportunity to disable old versions of the app from download.
As to Apple's policy on this...I have no idea. But I can't think of any policy that would require you to support older versions moving forward.

Checking for newer versions

I've seen in the past applications that popup a warning when they come out with an update.
Obviously I can put something on my server with the latest app version number but that would require me to remember to change that file. Does apple have some kind of json feed or something where I can pull down my latest app version?
It would also be great if I could get the latest ios version too.
Apple doesn't provide this, unfortunately. As you said, you have to put something on your server for your app to poll or deliver a push notification to the user when a new release comes out.

What happens to existing iOS app when I update?

I have, after many months of work, finally got my app updated for iOS4.
The first release was complied for iOS3.2 and has been in the AppStore for a while, I was very impressed to see it continued to work and be downloadable for iOS4 users all this time, even though my version failed to compile for iOS4.
However, now I've got the new version (complied for iOS4.2) waiting for review - I'm unsure what will happen to the existing app! If it is used overwritten, what will people with old versions of iOS see? Am I closing the door to anyone without iOS4.2+?
Many thanks
Ben.
p.s. apologies if this has been covered - I did look and failed to find :-)
When you specify the minimum OS required in the bundle, that filters what users will be notified of the upgrade. So users of your app that have yet to upgrade the underlying OS will not get pushed the update.
You can actually specify the target OS Level to an earlier version. The app will be allowed to install on that and any newer version. Generally, Apple is very good about forward-compatibility.
As Peter said, you probably don't want to compile it to only run on 4.2. If you added features that use newer versions of iOS, you can actually do a check prior to calling the method (I've done this with gesture recognizers) to ensure that the running OS version is capable. If you don't validate the OS, the app will simply crash on users with too-old operating systems, which could cause Apple to reject it.
Also, 4.3 is almost out, so you might as well wait a week :)
If your app only supports 4.2+, then only users with a device with 4.2+ iOS will be able to install and use your app. The version currently on the store will be overwritten. In short, yes you are "closing the door" to anyone with a lower version iOS.

iphone app approved but bug found before release

I just got my app approved....but realised there is a bug that will need a small fix. I do not want to release this app with the bug.
I am unsure how to get this fixed. If I submit another binary it will go through the review process again. I will also need to put a new version (1.1).
If I still have to submit a new version, can I directly release the new version (1.1) and completely ignore version 1.0?
Thanks in advance for advise..
pm
You would have to reject your binary for 1.0 and resubmit either a 1.0 or greater binary.
You can set the release date of an approved app into the future and then submit an update. If the update is approved, pull the release date back. The current version need never be visible in the App store.
If you put in your comments field that this is a critical bug fix, then there is a possibility (but no guarantee) that the review period may be a few days shorter.
You don't need to change version. You can keep version 1.0 and change build 1.1. Then Submit app for review process.
If your application has been approved, then it's available in the appStore.
The only solution for you to fix this bug is to send a new version of your application with unfortunately the Apple review process. (We just got the same issue)
From here, 1.0 will be ignored for new downloaders and those who have installed it would have to update the app.