Cross-platform framework quirks that affect store review
Why it matters
Cross-platform frameworks ship their own submission footguns. Flutter's version: 1.0.0+1 format in pubspec.yaml maps to both CFBundleShortVersionString and CFBundleVersion — a mismatch blocks TestFlight upload with an opaque error. Expo projects without a fully configured eas.json submit profile force manual submission through Transporter, and Capacitor/Ionic apps face heightened Guideline 4.2 (Minimum Functionality) scrutiny because Apple treats thin web wrappers as rejectable.
Severity rationale
Info because framework quirks create process friction and occasional upload errors rather than direct policy rejection.
Remediation
Configure eas.json fully before the first submission so credentials don't block launch day. For Flutter projects, verify the version line in pubspec.yaml uses major.minor.patch+buildNumber format. For Capacitor or Ionic projects, audit the app for substantial native-only functionality (offline mode, push, hardware APIs) to defend against Guideline 4.2.
{
"submit": {
"production": {
"ios": { "appleId": "$APPLE_ID", "ascAppId": "$ASC_APP_ID", "appleTeamId": "$APPLE_TEAM_ID" },
"android": { "serviceAccountKeyPath": "./play-service-account.json" }
}
}
}
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the App Store Metadata & Listing Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-metadata-listing·automated