I had a serious bug in my itunes latest updated build. I want to restrict users to update the current version. How?
any suggestions will help me a lot.
do you mean you want people who have the buggy version to update ?
unless you have push notifications setup with your app, or a means to display them a message, or have their emails as part of a sign up process, your very limited to what you can do.
If you have published the new version, just make it clear in the version notes that this includes a bug fix.
Currently, there is no functionality built into the App Store to force updates.
In your initial version, you should add a way to force updates, and then test to ensure that it works. Typically, you will have a callback to the server and a way to display a message and link them to the update in the store.
If you don't have such functionality, and you are making any API calls, you can add a version number to the API call, and if the version isn't sent, then you can refuse access, and preferably send them a message.
Related
How can we make the flutter app to make automatic update whenever we release a new version of the app into the store. but I don't want to use the pop up to alert the user to update I want to update automatically without letting the user even know we update it.
As said in the comment, if you publish to Google Playstore or iOs AppStore, they will handle the updates for you. You just have to upload the new version (just set the release number correctly) and, when the validation is done, their system will notify/update the app. I don't know how other stores behave, but I'm guessing that's the standard behaviour now.
Instead, if you need to bypass the store functionality and perform the update "by yourself", I don't think that is gonna be a simple task. Apple simply doesn't allow installation from other sources than their store, so I fear it may be simply impossible. On Android, on the other hand, I know that's possible, but it will require some user interaction beforehand, since the "installation from unknown source" authorization must be provided to the app that downloads/opens your .apk file, and the procedure may vary from a device to another, so I fear there won't be a single mechanism that will work everywhere.
In any case, the base mechanism will probably require some HTTP GET by your app towards some webserver that will reply with the latest version: the app should then compare the received version number with its own, and then proceed to the download of the package (the URL for the download can be provided along with the latest version number). After that, you have to manage somehow to install/update the downloaded file.
I personally used this approach with Flutter on Windows 7 and newer, where there are no store constraints and I can simply run and download the .msi or .exe file for the latest version, and works just fine.
I think you are looking for the concept of codepush which was loved by many React Native developers.
In Flutter, I think you might want to check out flutter_code_push if this fits your needs.
I know that when you publish a new version of your app, it goes through an approval procedure from iOS, Android or Windows Phone marketplaces. Perhaps not very thorough one like the first time your post your initial version, but still you need to wait a bit until your new version is available to users.
I was wondering if this scenario if possible.
I post my new version for approval
Marketplace verifies and approves the version but does not publish it
I get a notification that my new version is ready and approved
I press the last button to publish the already approved version
Do you know if there is such a possibility in the various marketplaces?
This would be useful for marketing purposes (make a new version available on all marketplaces at the same time) or even to minimize technical issues (minimizing the different versions running on clients, especially if there connect to a server that otherwise would need to be backward compatible).
Yes, you can choose when to release an app (or new version of an app) at a time you choose, once it has passed the certification/verification process.
What you can't do is have it available to all users at exactly the same time. When you make the new version live it make take up to several hours before it has sync'd to all servers that each store/marketplace uses. This means you can't say that "at 9am on Tuesday you'll be able to get the new version" without actually making it available several hours earlier so it has time to spread to all servers. This may or may not be an issue.
In terms of managing backwards compatibility of your backend with regards to different versions of your app(s) this is something you will need to manage yourself. There is no marketplace which will automatically force all installed versions of an app to be updated before they can be used.
You will need to manage this within the app (i.e. check if it's the latest version and if not force the user to upgrade before they can continue.)
Realistically you should create your server to be able to support multiple versions of the client. Even if you do force all users to update before they can use a new version of the app/backend you'll still want to test the live servers while the old client apps are still being used.
I can't vouch for the iPhone, but for Windows Phone, yes, when you submit an app update, you can set it to publish manually, and with Android, there is no certification, so you can just publish it whenever you're ready.
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.
Can I force a user to upgrade my app? Does Apple recommend it?
Yes, you can. Just check the version number when the application starts and if needed, bail out with an error screen. I don’t think Apple explicitly prohibits this. (And I doubt they would find out during the review.) Of course it’s annoying from the user’s viewpoint, I would only write something like that if there was no other option.
Yes you can force an upgrade to the user. You can call a webservice when your app start and check on your server if an update is available (you have to add an update when an update available on app store). If an update is available then you can present a view that will have the update button. When pressed this button will redirect the user to the installed app store app and open the upgraded app in it. (you should return this url in your webservice). Let me know in comments if you need more explanations.
And I don't know apple recommend this way. But I have seen this in one or two apps.
Extremely bad approach. My perfectly fine working app forces upgrade, which can not be supported due to obsolete iOS. I am not only forced, but moving away from the coupon app in determination to never use it web-based either.
Security issue, if that is the reason for upgrade, should be patched for existing iOS.
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.