Can I offer an iOS app update, but prevent new user from downloading app? - ios

I need to push out an app-update, that sets the app (app-A) up for being migrated and retired. The new app that users will migrate to (app-B, different bundleId) is ready, so I would prefer it, if there are no new users to app-A.
Concretely: Can I offer app-updates to app-A, while preventing users from installing it new?
I have seen this not-encouraging post from 2017: iOS App Store - retiring an app - Can I hide the app from new users while making updates available to all existing users - it's been a while, so things are looking better presently.
Creativity is allright here, but obviously any updates to app-A needs to pass review, so it can't just be an empty shell that points to app-B.

After being in contact with Apple support about this, it is clear that it is not possible. The following is copied verbatim from Apple support reply:
Currently, there is no feature that could allow you to prevent potencial users to download the app, while it is still available in the App Store. To prevent users from downloading app, you will need to remove it from the App Store.
The "solution" is to keep the A app around - and only providing the move-to-B functionality - until we either see no activity on it, or don't care anymore.

Related

App Tracking Transparency on Flutter was rejected by Apple

I need help us
I have an problem with publish my flutter app on Apple Developer. My binary was rejected any times and i does't any more ideas about this.
The support team of apple developer says this problem:
Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing
We noticed your app accesses web content you own where you collect cookies. Cookies may be used to track users, but you do not use App Tracking Transparency to request the user's permission before collecting data used to track.
Starting with iOS 14.5, apps on the App Store need to receive the user’s permission through the AppTrackingTransparency framework before collecting data used to track them.
But, i implemented according of docs. For showing permission request dialog i have used this library:
https://pub.dev/packages/app_tracking_transparency
I'm confused because it already implemented everything that was requested.
App Tracking Transparency implemented
Permission is displayed to the user, who selects YES or NO.
App Tracking Information is updated here in the App Store Connect section, including Third Party Cookies.
My app accesses external links in a WebView and for that reason they are questioning the use of "App Tracking". But I implemented everything as requested by them.
My biggest question is if I'm forgetting something that may have gone unnoticed.
Anyone who can help me, please?
The same thing exactly happened with me twice and in both time the issue was resolved by simply sending them a video recording of the app showing the Yes/No App Tracking Transparency dialog. They just want to know when it appears to user if you implemented everything correctly. So try sending them a video recording in the resolution center as a response to that message.
App Store Review team is always questioning the "App Tracking Transparency dialog". Even if this dialog is the first thing that appears after the app launch. (I think they just haven't launched the app).
There's no need to make a video, just add the text "The App Tracking Transparency dialog is appearing after app launch" and they will approve the app.

Force removal/invalidation of iOS app from user devices

Assuming you created an app that users have downloaded that is just awful and you neither want to fix it nor have anyone continue to use it so that it won't tarnish your brand, is there a way to end its life on user's iOS devices?
Curious if there is some store setting to force it to work with earlier versions of iOS and invalidates the current app, or code that would force an update that says the app is no longer available.
As many have confirmed, there is no way to remove an application from someone's device. For these cases though, many companies have servers that the application sends a request to on launch, that returns either a need to update the app, a message, or to tell the user the app has been discontinued and that the app cannot be used anymore, stopping them from using the app from there on.
The last use case might be useful to you, but of course this is a proactive solution, not a reactive one.

iOS Application update that only contains splash screen

I want to update an iOS application, so it only contains a splash screen that says: we are working on updating the app as soon as possible, stay tuned for the next version.
I don't want to remove it from sale, and i also don't want new users to interact with the application, i just want to show them a page with a message.
Is this against apple rules? will they accept my update?
Too simple applications usually don't pass through the Appstore validation.
Have a look a the official documentation : App Store Review Guidelines.
2.12 Apps that are not very useful, unique, are simply web sites bundled as Apps, or do not provide any lasting entertainment value may
be rejected
It's likely it'll be blocked for 2.1 (App Completeness), or 4.2 (Minimum Functionality), but can't be answered conclusively without trying it.
for situations like these you should implement some kind of functionality in your app that lets you control those "maintenance periods" without updating the app. for example some kind of API that returns a special http status code when the app should not be usable for a specific time. then you can react on that status code and show the user some kind of "maintenance message". as soon as you're done you can easily reenable functionality.
This almost certainly won't make it past review. The only way you could do this (and I wouldn't advise it) is to add a splash screen behind a feature flag that you activate remotely after review.

iphone/ipad: how to push/notify about availability of new version of app

this is my first ios app. am working on a version 1 that i'm planning on giving to few of my customers. customers will get it from app store. in future, if i have new version that i'd like to notify current users, is there anything that I have to put in version 1?
thanks.
Yes, you will need to put something in version 1 in order to do this if you want some kind of notification in the app itself. You can go about it a few different routes depending on how complex you want it to be:
You could add push notifications to your app, so that you can send a push notification to your users letting them know an upgrade is available. You would probably only want to do this if you used the push notifications for other purposes as well, as users probably wouldn't want to allow push notifications for an app to only inform them of app updates.
You could have your app check with your server upon app launch to see if there's an update available. You could simply have a file on your server that the app checks which can contain the version number of the most up to date app you have available. If the server reports a newer version than the version reported by the app, it can display a message, which could also be contained on your server to be configurable. This would be pretty simple to implement, and could possibly contain other configuration information for your app. You could also choose when to show the prompt, in case you don't want to bug users for some updates but do for others. This would be good to do if you might release an update that requires users upgrade in order to continue to have it work with a backend server.
You can also get your app to check directly with Apple to see if a newer version of the app is available on the app store. You should be able to find a resource that will instruct you how to do this. Going this route, as soon as an update is available it will start bugging users to upgrade, so you may not want to do this if you only want to push some updates on your users but not others.
You can do nothing. On iOS 7 by default app updates get automatically installed, and even if they have that disabled, the user can see what app updates are available in their app store app. This is what most apps do, aka they don't bug the user every time an update is available. And if somebody isn't updating their apps anyway, your prompt won't necessarily encourage them to do it either.
It's similar to the message appearing in Chrome when a new version is available - something like "Chrome has just got better".
Presuming that you have a server side counterpart, my approach would be the following:
store the latest version number of your app somewhere on the server (database, configuration file, etc)
implement an API at server side that, upon an app version provided as parameter, returns true if an update is available
in your app, read the current app version (see this SO answer)
call the remote API mentioned in (2), and act accordingly if the return value is true
Note however that appstore notifies the user when an update is available - but that doesn't happen in-app
Incrementing the app version is enough for App Store notification as explained in
iPhone app Update Vs new version

How to Update an Application After Users Pay For Upgrade

I need to update my application after the user pays for an update. I want to alter the current application instead of downloading a new version. After the user pays, I will enable certain functions of the app.
How would I implement this?
You can't update the code or app bundle in any way. You can download resources or modify configuration files, however. So all features need to exist, but may be disabled. For something like a game you could download some more levels upon purchase.
Apple will not allow an app that has visible but unusable features. You can't show a grayed out feature and say, "pay us to get this feature." Neither will they let you significantly alter an app without changing its name. Instead they force you to issue a lite version with the option to upgrade to a full and/or pro versions. They do this both to protect the user and to protect their revenues from the app store.
A really good way to determine if Apple will let you do something is to ask, "Does Apple stand to lose money if I do this?" If the answer is yes, then chances are very good your idea won't fly.
Also, remember that the app store has a rule that once a user pays for an app, they automatically receive all future versions of the app free of charge. You can't force users to pay for upgrades the way you can on conventional platforms.
Having said that, since you can't run another process to upgrade your app on the iPhone, I think the only way to upgrade an existing app without replacing it would be to use some kind of modular plug-in architecture in which you download plug-ins that add more features. Objective-C makes it ridiculously easy to implement plug-ings.
You can't update on the go your application.
You need to put some kind of boolean switch value in a config file. (or with a server handshake)

Resources