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.
Info because framework quirks create process friction and occasional upload errors rather than direct policy rejection.
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" }
}
}
}
app-store-metadata-listing.risk-indicators.cross-platform-framework-quirksinfoeas.json submit profile must be configured with appleId, appleTeamId, ascAppId (App Store), and serviceAccountKeyPath (Google Play). Check whether these are present (values are expected to be environment variable references like "$APPLE_ID", not literal values). An unconfigured submit profile means manual submission is required. (b) React Native CLI (bare workflow): Manual submission through Xcode Organizer (iOS) and Play Console (Android) — more error-prone than automated. Look for any Fastfile configuration. (c) Flutter: Version format in pubspec.yaml must be version: 1.0.0+1 where 1.0.0 is CFBundleShortVersionString and +1 is CFBundleVersion / versionCode — mismatches cause submission failures. (d) Capacitor/Ionic: Web-based apps face additional scrutiny from Apple for apps that are primarily web wrappers (Guideline 4.2 — minimum functionality). This is informational — flag it for awareness if Capacitor is detected. This is an informational check — it surfaces process risk, not a policy violation. Count all instances found and enumerate each.pass or skip only, never fail. The implementation must be verifiable by examining the codebase and must handle the documented requirements completely. At least 1 implementation must be confirmed."cross-platform-framework-quirks: implementation not found or incomplete".pubspec.yaml version format is major.minor.patch+buildNumberapp.json, eas.json, or equivalent config files in the src/ directory. Address platform quirks before submission.