EAS Submit iOS: ืืืขืืืช ืืคืืืงืฆืืืช Expo ื-App Store
ืืืช Mehdi Azizi
ืคืืจืกื ื-, 8 ืืงืณ
EAS Submit ืฉืืื ืืช ื-build ื-App Store Connect ืืืฉื ื-TestFlight. ืืช ืืฉืืืื ืืืืืงื ืขืืฉืื ื-App Store Connect. ืืื ืชืืฆืื ืืช eas.json ืืืช ืืฉืืืืืช ืื ืคืืฆืืช.
eas submit --platform ios ืฉืืื ืืช ื-build ืฉืื ื-App Store Connect, ืืฉื ืืื ืืืคืืข ื-TestFlight ืืืจื ืฉ-Apple ืืขืืืช ืืืชื. ืืคืงืืื ืื ืฉืืืืช ืืช ืืืคืืืงืฆืื ืืืืืงื ืฉื Apple: ืืช ืืืืจืช ื-build ืืืช ืืฉืืืื ืืืืืงื ืขืืฉืื ื-App Store Connect. ืืื ืืืคืื ืืช ืื ืืืืืืืื, ืืื ืฆืจืืื ืืช ืืืกืคืจ ืฉื ืืฃ ืืืคืืืงืฆืื ืฉืื (ascAppId) ืืืคืชื API ืฉื App Store Connect.
ืื ื ืืคืจืกื ืืช ืืคืืืงืฆืืืช ื-iOS ืฉืื, ืืื Solys, TradaZen ื-Nolera, ืขื Expo, EAS Build ื-EAS Submit. ืืืืจืื ืืื ืืืืกืก ืขื ืืชืืขืื ืฉื Expo ืขื ืฉืืืื ื-iOS, ืฉืขืืจืชื ืขืืื ื-25 ืืืืงืืืืจ 2026. ืืื ืื Mac? ืืชืืืื ืืืื ื ืืฆื ืืืคืจืกื ืืคืืืงืฆืืืช iOS ืืื Mac. ืืื ืืชืืงืืื ืืฉืืืื.
ืื ืฆืจืื ืืคื ื ืืคืงืืื ืืจืืฉืื ื
Expo ืืื ื ืฉืืืฉื ืชื ืืื ืืืงืืืื:
- ืืฉืืื Apple Developer ืืชืฉืืื. ืืืืืจ ืืืืจืฉืื ื ืืฆืืื ืืืฉืืื ืืคืชื ืฉื Apple.
- ืืืื bundle ื-
ios.bundleIdentifier. ืืคื ืืชืืขืื ืฉื ืืงืื ืคืืืืจืฆืื ืฉื Expo, ืืชื ืืืฆืื ืืืชื, ืืื ืืื ืืืื ืืืืืช ืืืืืื ื-App Store. - EAS CLI ืืืชืงื, ืืืืจ ืื
eas loginืขื ืืฉืืื ื-Expo ืฉืื.
ืฆืจืื ืื build ืคืจืืืงืฉื ืืชืื. EAS Build ืืืืฆืจ ืืืชื ืขื ืืชืขืืื ืืืคืจืืคืื ืฉืืื ืื ืื ืืฉืืืื, ืืื ืฉืืืกืืจ ืืชืขืืื ื-provisioning profile ื-iOS.
ืืฃ ืืืคืืืงืฆืื ื-App Store Connect: ืืชื ืื EAS?
EAS Submit ืฉืืื ืงืืืฅ ืืื ืืจื ืืืคืืืงืฆืื ืฉืืืืืช ืืืืืช ืงืืืืช ื-App Store Connect.
ืืชื ืืืื ืืืฆืืจ ืืืชื ืืขืฆืื. ืืขืืจื ืฉื Apple ืืชืืจืช ืืช ืืืื New App: ืคืืืคืืจืื, ืฉื, ืฉืคื ืจืืฉืืช, ืืืื bundle, SKU ืืืืฉืช ืืฉืชืืฉืื. ืฆืจืื ืชืคืงืื Account Holder, Admin ืื App Manager.
EAS ืืืื ืื ืืืฆืืจ ืืืชื ืืฉืืืื ืืจืืฉืื ื. ืืคื ืืืฃ ืฉื Expo ืขื TestFlight, eas submit ืืืฆืจ ืืช ืืืฃ ืืฉืืชื ืฉืืื ืืช ื-build ืืจืืฉืื. ืืคื ืืชืืขืื ืฉื eas.json, ืื ืืืืืื ascAppId ืืฉืื ืืื ืืืืื. ืืฉื ืืืืข ื-appName, ืืื ืืื, ืื-name ืฉื ืืงืื ืคืืืืจืฆืื ืฉืื. ืืฉืคื ืืจืืฉืืช ืืืืขื ื-language, ืฉืขืจื ืืจืืจืช ืืืืื ืฉืื ืืื en-US. ืื ืืืคืืืงืฆืื ืฉืื ืืืฆืืช ืงืืื ืืฆืจืคืชืืช, ืืื ืืช language ืืคื ื ืืฉืืืื ืืจืืฉืื ื.
ืืืจ ืื, ืืขืชืง ืืช ืืกืคืจ ืืืฃ ื-ascAppId. Expo ืืกืืืจืื ืืืคื ืืืฆืื ืืืชื: ืคืชื ืืช ืืืคืืืงืฆืื ื-App Store Connect, ืืื App Information. ืื ืืฉืื Apple ID, ืชืืช General Information. ืื ืืกืคืจ, ืื ืืืื ื-bundle ืฉืื.
ืืื ืืคืชื API ืืื ื-Apple ID ืฉืื
EAS Submit ืืชืืืจ ื-Apple ืขื ื-Apple ID ืฉืื ืื ืขื ืืคืชื API ืฉื App Store Connect.
ื-Apple ID ื ืชืงืข ืืืืืืช ืืื-ืฉืืื, ืฉ-Apple ืืืจืฉืช ืืื ืืฉืชืืฉื App Store Connect: ืฆืจืื ืื ืืื ืฉืืืฉืจ ืืช ืืืชืืืจืืช. ืกืืกืื ืืืขืืืืช ืืืคืืืงืฆืื, ืฉืืืขืืจืช ื-EXPO_APPLE_APP_SPECIFIC_PASSWORD, ืขืืงืคืช ืืช ืืฉืื ืืื, ืืื Expo ืจืืืื ืื ืฉืืื ืคืืืช ืืืืื ืืืคืชื ื-API, ืฉืืื ืฉืืืช ืืจืืจืช ืืืืื ืืืืืืืฆืช ืฉืืื. ืืืคืชื ืืืคืฉืจ ืืืืืืืช ืืื ืฉืื ืืชืขืจืืืช, ืืืื ืื ืืืคืื ืืช ืืฉืืืื ืืืืืืืืืช.
ืฉืชื ืืจืืื ืืืฉืื ืืืชื:
- ืชื ื-EAS ืื ืื ืืืชื. ืืจืฅ
eas credentials --platform ios, ืืืจ ืืคืจืืคืืproduction, ืืชืืืจ ืืืฉืืื ื-Apple ืฉืื, ืืื ืืืจ "App Store Connect: Manage your API Key". - ืืื ืืคืชื ืืฉืื. ื-App Store Connect: Users and Access, ืืฉืื ืืช Integrations, App Store Connect API, Team Keys, ืืื Generate API Key. ืฆืจืื ืืฉืืื Admin, ืืืืืจืื ืฉื Expo ื ืืชื ืืืคืชื ืชืคืงืื Admin.
ืืืงืจื ืืฉื ื, ืจืฉืื ืืช ื-Key ID, ืฉืืืฆื ืืจืฉืืืช ืืืคืชืืืช ืืคืขืืืื, ืืืช ื-Issuer ID, ืืจืืฉ ืืฃ Integrations. ืืืขืืงืจ ืฉืืืจ ืืช ืงืืืฅ ื-.p8: ืืคืฉืจ ืืืืจืื ืืืชื ืจืง ืคืขื ืืืช, ื-Apple ืื ืฉืืืจืช ืขืืชืง.
ืืคื Apple, ืืคืชื Admin ืืืื ืืืฆืืจ ืืืืืืง ืืฉืชืืฉืื ืืืฉืืื ืฉืื. Apple ืืืงืฉืช ืืขืืื ืื ืืฉืืืจ ืืช ืืืคืชื ืืืืืจ ืงืื.
ืงืืืฅ eas.json ืืื ืืืื ืืืขืชืงื
ืื ืืขืจืืื ืคืืงืืืืืื: ืืืืฃ ืืืชื ืืฉืื.
{
"cli": {
"appVersionSource": "remote"
},
"build": {
"production": {
"autoIncrement": true
}
},
"submit": {
"production": {
"ios": {
"ascAppId": "1234567890",
"appleTeamId": "ABCDE12345",
"ascApiKeyPath": "./keys/AuthKey_XXXXXXXXXX.p8",
"ascApiKeyIssuerId": "your-issuer-id",
"ascApiKeyId": "XXXXXXXXXX"
}
}
}
}
appVersionSourceื-autoIncrement: ืืฉืจืชืื ืฉื EAS ืฉืืืจืื ืืช ืืกืคืจ ื-build ืืืขืืื ืืืชื ืืื build ืคืจืืืงืฉื. Expo ืืืืืฆืื ืขื ืืืฆื ืืืจืืืง ืืื ืืื EAS CLI 12.ascAppId: ืืืกืคืจ ืฉื ืืฃ ืืืคืืืงืฆืื ืฉืื. ืืืขืืื, ืืืฆื ืืื-ืืื ืืจืืงืืืื ื ืืฉื.appleTeamId: ืืืืื ืฉื ืฆืืืช ื-Apple Developer ืฉืื.ascApiKeyPath,ascApiKeyIssuerId,ascApiKeyId: ืืคืชื ื-API ืฉืื. ืฉืืืฉืช ืืฉืืืช ืืงืืืื ืืฉืชื ื ืกืืืื. ืืืกืฃ ืืช ืืชืืงืืืkeysื-.gitignore.
ืืฉืื appleId ืจืืืื ืื ืจืง ืื ืืชื ืืชืืืจ ืขื ื-Apple ID ืฉืื. ืื EAS ืืืจ ืื ืื ืืช ืืืคืชื ืฉืื, ืชืืจืื ืื ืืช ืฉืืืฉืช ืฉืืืช ื-ascApiKey. ืืฉืืืฉ ืืืคืืืงืฆืืืช ืฉืื, ืฉืืืงืชื ื-25 ืืืืงืืืืจ, ืคืจืืคืื ืืฉืืืื ืฉื ืืคืจืืืงืฉื ืืืื ืจืง ascAppId, ืืขืื appleTeamId ื-Solys: ืืื ืฉืื ืืคืชื ืืงืืืฅ.
ืืืจืืฅ ืืช ื-build, ืืื ืืช ืืฉืืืื
eas build --platform ios --profile production
eas submit --platform ios
ืืื ืืคืฉืจืืืืช ื ืืกืคืืช, eas submit ืืืงืฉ ืืื ืืืืืจ ืืืื build ืืฉืืื, ืืืืจืฆื ืืจืืฉืื ื ืฉืืื ืขื ื-Apple ID ืฉืื. ืคืจืืคืื ืืฉืืืื production ื ืืืจ ืืืจืืจืช ืืืื ืื ืืื ืงืืื. ืืชืืขืื ืฉื EAS CLI ืืคืจื ืืช ืืืคืฉืจืืืืช ืฉืืืกืืืช ืืช ืืืืืจื:
| ืืคืฉืจืืช | ืื ืืื ืขืืฉื |
|---|---|
--latest | ืฉืืืืช ืืช ื-build ืืืืจืื ื-iOS |
--id | ืฉืืืืช build EAS ืืกืืื |
--path | ืฉืืืืช ืงืืืฅ .ipa ืืงืืื |
--url | ืฉืืืืช ืืจืืืื ืืืจืฉืช |
--groups | ืืืกืืคื ืืงืืืฆื ืคื ืืืืช |
--what-to-test | ืืืืืช ืืช "What to test" |
ืืื ืืฉืจืฉืจ ืืืื, ืืืกืฃ --auto-submit ืืคืงืืืช ื-build. ืืคื ืืืฃ ืฉื Expo ืขื ืฉืืืื ืืืืืืืืช, ื-build ืืืืืจ ืขืืืจ ื-EAS Submit ืขื ืคืจืืคืื ืืฉืืืื ืฉื ืืฉื ืืืชื ืฉื ืืื ืคืจืืคืื ื-build. ืืื ืืืืืจ ืคืจืืคืื ืืืจ: --auto-submit-with-profile=name. ื-build ืืืื ื-TestFlight, ืื ืืืืืงื.
ื-CI, ืืืกืฃ --non-interactive ืืืืงื EXPO_TOKEN. ืืคืงืืื ืื ืืืืื ืื ืืฉืืื ืืืชื ืืืื: ืืื ืฆืจืืื ascAppId ืืคืจืืคืื ืืืคืชื API, ืื ืฉ-EAS ืงืืฉืจ ืืืคืืืงืฆืื ืื ืฉืื ืืฉืืืฉืช ืฉืืืช ื-ascApiKey.
ืื ืงืืจื ืืืจื ืืฉืืืื
1. Apple ืืขืืืช ืืช ื-build. ืืื ืืืื ืืขืืืจ ืืช ืืขืืืื ืืื ืืคื ื ืฉืืื ืืืคืืข ื-App Store Connect, ื-Apple ืฉืืืืช ืื ืืืื ืืกืืฃ. Expo ืืืืจืื ืืืจื ืืื ืขื 10 ืขื 15 ืืงืืช ืขื ืฉืจืืืื ืืืชื ื-TestFlight.
2. ืฆืืืช ืืืืฆืื. ืืกืืืืก Missing Compliance ืืืืจ ืฉืืกืจื ืืืฆืืจื ืฉืื ืขื ืืฆืคื ื. App Store Connect ืฉืืื ืืช ืืฉืืืืช ืืืื ืืื ืืจืกื ืืืฉื, ืืื ืื ื-Info.plist ืืืจ ืขืื ื ืขืืืื. ื-Expo, ืืืคืชื ื ืงืจื ios.config.usesNonExemptEncryption:
{
"expo": {
"ios": {
"config": {
"usesNonExemptEncryption": false
}
}
}
}
ืืคื Apple, false ืืชืืื ืื ืืืคืืืงืฆืื ืฉืื, ืืืื ืืกืคืจืืืช, ืื ืืฉืชืืฉืช ืืฉืื ืืฆืคื ื ืื ืจืง ืืืฆืคื ื ืคืืืจื. ืืืฆืคื ื ืฉื ืืืขืจืืช, ืืื HTTPS ืืจื URLSession, ืืืจื ืืื ืคืืืจื. ืชืฆืืืจ false ืจืง ืื ืื ื ืืื ืืืคืืืงืฆืื ืฉืื: ืืืฆืืจื ืืืืืืช ืืืชื. ืืื ืื ืืคืชื ื-Info.plist, ืืื ืืืจืฉืช build ืืืฉ.
3. TestFlight. ืืกืืืืก Ready to Submit, ืืคื Apple, ื-build ืืืื ืืืืช ืืืืืงืื ืคื ืืืืื, ืืขืืืจ ืืืืงืช ืืื ืืืืืงืื ืืืฆืื ืืื, ืื ืืืืฉืื ืืืืืงืช App Store. ืืฉืื groups ืืคืจืืคืื ืืืกืืฃ ืืืชื ืืงืืืฆืืช ืืคื ืืืืืช ืฉืื. ืื ืืฉืืจ ื ืืฆื ืTestFlight ืืืืืงืช ืืืคืืืงืฆืื ืฉืื.
ืฉืืืื ืื ืื ืืืฉื ืืืืืงื
Expo ืืืชืืื ืืช ืื: build ื-TestFlight ืื ืืชืคืจืกื ืืืืืืืืช ื-App Store. EAS Submit ืื ืืืื ืื ืืช ืืฃ ืืืคืืืงืฆืื ืืื ืืช ืฆืืืืื ืืืกื. ื ืฉืืจืืช ืืจืืข ืคืขืืืืช ื-App Store Connect, ืฉืืชืืืจืืช ืืขืืจื ืฉื Apple ืขื ืืืฉื ืืืืืงื:
- ืืื ืืช ืืืื-ืืืื ืืืืื ืฉื ืืืจืกื.
- ืืืจ ืืช ื-build ืืืืง Build ืฉื ืืืจืกื.
- ืืืฅ ืขื "Add for Review". ืืืจืกื ืขืืืจืช ื-Ready for Review, ืืื ืขืืืื ืืืื ืื ื ืฉืื ืืืืืงื.
- ืืืฅ ืขื "Submit for Review". ืืกืืืืก ืขืืืจ ื-In Review ืืฉืืืืืงื ืืชืืืื.
ืฉืืืืืช ื ืคืืฆืืช ืืืื ืืชืงื ืื ืืืชื
| ืืฉืืืื ืฉืืืฆืืช | ืกืืื | ืชืืงืื |
|---|---|---|
| ITMS-90189 | ืืกืคืจ build ืืืจ ืชืคืืก | autoIncrement |
| ITMS-90062 ืื 90186 | ืืืจืกื ืืืจ ืกืืืจื | ืืืขืืืช ืืช version |
| "Set ascAppId" | ืืกืจ ascAppId ื-CI | ืืืืกืืฃ ascAppId |
| "API Keys cannot" | ืืื ืืคืชื ืืงืืฉืจ | eas credentials |
| ITMS-90683 | ืืกืจ ืืฉืคื ืืกืืจ ืืืจืฉืื | ios.infoPlist |
| ITMS-91053 | Manifest ืื ืฉืื | ios.privacyManifests |
| ITMS-90725 | iOS SDK ืืฉื ืืื | ืืืขืืืช ืืช ื-SDK ืฉื Expo |
| Missing Compliance | ืืฆืคื ื ืื ืืืฆืืจืช | usesNonExemptEncryption |
ืืคื Expo, ืืกืคืจ build ืฉืืืจ ื ืืฆื ืืื ืกืืื ื ืคืืฆื ืืืืืื ืืฉืืืื: ืืืื ื ืืฆื ืืืกืคืจ build ืืืจืกื. ืืฉืืืฉ ืฉืืืืืช ืืฉ ืืืจืื ืืฉืืื: ITMS-90683 ืขื Expo, ITMS-91053 ืขื Expo ื-ITMS-90725.
ืฉืชื ืืืืืขืืช ืืืืจืืืืช ืืืืขืืช ื-EAS ืืืชืืงื ืืช ืืงืื ืคืืืืจืฆืื ืฉืื. ืืช Missing Compliance ืืคืฉืจ ืืคืชืืจ ืื ืขื ืืื ืืขื ื ืขื ืืฉืืืืช ื-App Store Connect. ืืื ืฉืืจ ืืฉืืจืืช, ืืชืืงืื ื ืืืข ืืืื ืืจื: ืชืขืฉื build ืืืืฉ, ืืื ืชืฉืื ืืืชื ืฉืื. ืขืืืื ืืจืืืง ืื ืืฉื ื ืื ืืช ื-Info.plist, ืื ืืช ื-manifest ืืื ืืช ืืืกืคืจืื.
ืืฉืืื ืืช ืืืคืืืงืฆืื ืืจืืฉืื ื ืฉืื ืืื ืืืฉืฉ
ืืคืงืืื ืืื ืจืง ืฉืื ืืื. ื-iOS Kit ืืชืืื ืืงืื ืืืกืืก ืฉื ืืืคืืืงืฆืืืช ืฉืื, ืืืื ืื ืืืื, ืืืืืื ืืืชื ืืืจืืขื ืฉืืืื ืขื ื-App Store, ืืงืฆื ืฉืื.
ืื ืืชื ืืชืืื ื ืืืฉืงื ืืจืืฉืื ื ืฉืื, ืขืฉื ืืช ืืืืืื ืืืื ืื: ืืื ืืืืจ ืื ืื ืืืืช ืชืืงืข ืืืชื ืืฉืืื ืื ืืช ืืฆ'ืงืืืกื ืฉืื ื ืื ืืืืืช ืฉื Apple. ืืืฃ ืืืคืืืงืฆืื, ืฆืืืืื ืืืกื ืืืืืฉืืจ, ืืืฃ ืืคืจืกื ืืคืืืงืฆืื ื-App Store ืืืกื ืื ืฉืื.
ืฉืืืืช ื ืคืืฆืืช
ืืื ืืคืจืกืืื ืืคืืืงืฆืืืช Expo ื-App Store?
ืืจืฅ build ืคืจืืืงืฉื ืขื EAS Build, ืืื ืฉืื ืืืชื ืขื eas submit --platform ios. ืืืจื ืืขืืืื ืฉื Apple, ืืื ืืืคืืข ื-TestFlight. ืืืจ ืื, ื-App Store Connect, ืืื ืืช ืืฃ ืืืคืืืงืฆืื, ืืืจ ืืช ื-build ืืื ืืืจืกื, ืืืืฅ ืขื "Add for Review" ืืื ืขื "Submit for Review".
ืืื EAS Submit ืฉืืื ืืช ืืืคืืืงืฆืื ืฉืื ืืืืืงื ืฉื Apple?
ืื. EAS Submit ืฉืืื ืืช ืืืื ืืจื ื-App Store Connect, ืื-build ืืืืข ื-TestFlight. ืืืืฉื ืืืืืงื ื ืขืฉืืช ืืื ืืช ื-App Store Connect, ืืืจื ืฉืืืืืช ืืช ืืืฃ ืืืืจืช ืืช ื-build.
ืืืคื ืืืฆืืื ืืช ื-ascAppId ืฉื ืืืคืืืงืฆืื ืฉืื?
ื-App Store Connect, ืคืชื ืืช ืืืคืืืงืฆืื, ืืื App Information. ืื ืืฉืื Apple ID, ืชืืช General Information. ืื ืืกืคืจ, ืืืกืืจ ืืืืื ืืืชื ืขื ืืืื ื-bundle ืฉืื.
ืฆืจืื Apple ID ืืื ืืืฉืชืืฉ ื-eas submit?
ืืืจืฆื ืืจืืฉืื ื, ืืคืงืืื ืืืงืฉืช ืืืชื. ืืืจ ืื, ืขื ascAppId ืืคืจืืคืื ืืืคืชื API ืฉื App Store Connect, ืืื ืืืืื ืืจืืฅ ืืื ืืชืขืจืืืช, ืื ื-CI. ืืคืชื ื-API ืืื ืฉืืืช ืืจืืจืช ืืืืื ืืืืืืืฆืช ืฉื Expo.
ืืื ืืื ืขื ืฉืจืืืื ืืช ื-build ื-TestFlight?
Expo ืืืืจืื ืืืจื ืืื ืขื 10 ืขื 15 ืืงืืช ืขืืืื ืืฆื Apple, ืฉืืืืช ืื ืืืื ืืกืืฃ. ืื ื-build ื ืฉืืจ ืืกืืืืก Missing Compliance, ืขื ื ืขื ืืฉืืืืช ืืืื ืืฆืคื ื, ืืื ืืฆืืจ ืขื ืื ืืงืื ืคืืืืจืฆืื ืฉืื ื-builds ืืืืื.