Promote: staging -> develop - #900
Merged
Merged
Conversation
Closes #898. App Store Connect flags every upload with **ITMS-90068** — from Spring 2027 a `MinimumOSVersion` below 15.0 is rejected outright. Nothing is blocked today; this removes the warning well ahead of the deadline. ## Change The floor is declared in three files that Xcode, CocoaPods and the App Store validator each read separately — all raised together: - `ios/Podfile` — `platform :ios, '15.0'` - `ios/Runner.xcodeproj/project.pbxproj` — `IPHONEOS_DEPLOYMENT_TARGET = 15.0` in all three project-level build configurations (Debug / Release / Profile); the per-target configurations (Runner, RunnerTests) inherit it and carry no value of their own - `ios/Flutter/AppFrameworkInfo.plist` — `MinimumOSVersion` `15.0` `ios/Podfile.lock` changes in exactly one line: `PODFILE CHECKSUM`, which is the SHA-1 of `ios/Podfile` and therefore moves with any Podfile edit. No pod versions or spec checksums change — the platform bump touches no version constraint, and `flutter_idensic_mobile_sdk_plugin` pins `IdensicMobileSDK` with an exact `=` requirement, so the resolution is identical under either floor. ## User impact: no device is dropped iOS 15 supports exactly the same hardware as iOS 13 and 14 — iPhone 6s and newer. Apple raised the hardware floor only with iOS 16 (iPhone 8 and newer). The only people affected are those who have chosen not to update, and they can. ## Test `test/tool/ios_deployment_target_test.dart` reads the three files back and fails when - they disagree with each other, - any of them falls below the 15.0 floor, or - the number of `IPHONEOS_DEPLOYMENT_TARGET` entries in the Xcode project no longer matches `projectBuildConfigurations` — so a fourth build configuration added without a deployment target trips the guard instead of silently shipping an unset floor. Without this a partial bump is invisible until an upload produces another ITMS warning — which is how this issue was found in the first place. ## Verification notes for the reviewer - No Dart-side change; this is build configuration only. Nothing in `lib/` or `ios/Runner/` branches on the iOS version, so the bump leaves no dead fallback behind. - The real check is an iOS build: `pod install` against the 15.0 platform, with `IdensicMobileSDK` (1.42.0, via `flutter_idensic_mobile_sdk_plugin`) as the dependency most likely to have an opinion about the floor. That needs a macOS host and is not covered by this repository's PR checks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic Staging PR
This PR was automatically created after changes were pushed to staging.
Commits: 1 new commit(s)
Checklist