Checking for newer versions - iphone

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.

Related

How can flutter app gets the new version update from the play store or the Apple Store automatically

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.

Selecting the exact date that my new app version will be made available on a marketplace

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.

Restrict Users to download updated build from iTunes

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.

Downgrading to a previous version of an iphone app

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 :)

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.