How DeDup 1.0.1 on iPhone decides when to ask you to update
DeDup 1.0.1 on iPhone checks whether a newer version is on the App Store. If there is one, it shows either a soft prompt you can postpone or a full-screen one you can't. This post gives the exact rule.
When the check runs
It runs once the launch splash finishes, and again each time the app becomes active. It's skipped in test builds.
DeDup asks Apple's public App Store lookup for the current version and the App Store page address. The request carries the app's bundle identifier and your device's region code. If the lookup fails or returns nothing, there is no prompt at all, forced or not.
The rule
DeDup then compares versions as dot-separated numbers, so "1.0" equals "1.0.0". In order:
- If your installed version isn't older than the App Store version, nothing happens. This holds even when your version is below the minimum, because there's nothing to install yet.
- If your version is older than the minimum, you get the forced screen.
- Otherwise you get the soft prompt, unless you already chose Later for that exact App Store version.
The minimum is a Firebase Remote Config value named ios_minimum_version. Its default is "0", which means no minimum. It's fetched on each check. Offline, the code uses the last value it fetched. Because it lives in Remote Config, it can change without a new app release.
The soft prompt
An alert titled "Update available" says that a given DeDup version is available on the App Store. It has two buttons.
- Update opens the App Store page.
- Later saves that version number on the phone and closes the alert. DeDup won't show the soft prompt again for that version. When a newer version appears, it asks again.
The forced screen
When your version is below the minimum, a full-screen cover titled "Update required" appears. It says that this version of DeDup is no longer supported. It has one Update button, which opens the App Store page. The code disables swipe-to-dismiss. The Later memory doesn't apply to it.
Limits worth knowing
- The prompt depends on the App Store listing. Raising the minimum above the newest listed version has no effect until a newer version is listed.
- "Later" only remembers one version, the last one you declined.
- The code never installs anything. It opens the App Store, and you complete the update there.
Scope of this post
Checked against: DeDup 1.0.1 source code (iOS).
Not tested on a device: the alert and full-screen layouts, the live App Store response, and the live Remote Config value. We didn't check what the Remote Config minimum is set to today.