iOS: bump deployment target 12/13 → 15 (Apple ITMS-90208 fix)

First TestFlight upload was accepted and processed all the way through,
then Apple's binary validation kicked back ITMS-90208 Invalid Bundle:

  The bundle Runner.app/Frameworks/LibTorch.framework does not support
  the minimum OS Version specified in the Info.plist.

torch_dart-v1.0.17 ships a LibTorch.xcframework whose Info.plist
declares a higher MinimumOSVersion than our app's 13.0. Apple's
notarization-style check rejects an app that claims to run on iOS
versions where a bundled framework refuses to load.

Bump the four spots iOS deployment target lives:
  - ios/Podfile (was 13.0)
  - ios/Flutter/AppFrameworkInfo.plist MinimumOSVersion (was 12.0)
  - ios/Runner.xcodeproj/project.pbxproj — 6 IPHONEOS_DEPLOYMENT_TARGET
    entries (mixed 12.0 / 13.0)
all → 15.0. iPhone 6s (2015) and newer; very wide 2026 coverage.

Also bump build number 1.0.0+1 → 1.0.0+2 in pubspec_description.yaml.
Apple rejects re-uploads with the same build number (ITMS-90478), so
the next TestFlight upload after this fix needs a fresh +N.

Workflow diagnostic step that dumps LibTorch.xcframework's Info.plist
MinimumOSVersion now lives in the "Fetch prebuilt torch_dart" step. If
15.0 still isn't enough, the log tells us exactly what to bump to next.
This commit is contained in:
jwinterm
2026-06-02 13:02:08 -04:00
parent be4cf0e49a
commit 52fd1d784f
5 changed files with 18 additions and 9 deletions
@@ -144,6 +144,15 @@ jobs:
tar -xzf torch_dart.tar.gz -C torch_dart
rm torch_dart.tar.gz
popd
# Diagnostic: print LibTorch.xcframework's required min iOS so we
# know whether the app's IPHONEOS_DEPLOYMENT_TARGET in pbxproj is
# high enough. Apple's TestFlight ITMS-90208 fires when the app
# claims to support an older iOS than this framework does.
LIBTORCH_PLIST=$(find scripts/torch_dart -path '*LibTorch.xcframework/*' -name Info.plist 2>/dev/null | head -1)
if [[ -n "$LIBTORCH_PLIST" ]]; then
echo "LibTorch xcframework Info.plist: $LIBTORCH_PLIST"
plutil -p "$LIBTORCH_PLIST" 2>/dev/null | grep -E "MinimumOSVersion|SupportedPlatform|SupportedArchitectures" || true
fi
- name: Fetch prebuilt reown_flutter
run: |