# EAS Submit iOS: להעלות אפליקציית Expo ל-App Store

> EAS Submit שולח את ה-build ל-App Store Connect ומשם ל-TestFlight. את השליחה לבדיקה עושים ב-App Store Connect. כאן תמצאו את eas.json ואת השגיאות הנפוצות.

עמוד מקורי: [EAS Submit iOS: להעלות אפליקציית Expo ל-App Store](https://devoria.fr/he/blog/eas-submit-ios-expo-app-store)
כותב: [Mehdi Azizi](https://devoria.fr/he/mehdi-azizi)
פרסום: 2026-10-25
עדכון תוכן אחרון: 2026-10-25


`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](https://docs.expo.dev/submit/ios/), שעברתי עליו ב-25 באוקטובר 2026. אין לך Mac? התהליך המלא נמצא ב[לפרסם אפליקציית iOS בלי Mac](https://devoria.fr/he/blog/publish-ios-app-without-mac-expo-eas). כאן מתמקדים בשליחה.

## מה צריך לפני הפקודה הראשונה

Expo מונה שלושה תנאים מוקדמים:

- **חשבון Apple Developer בתשלום.** המחיר וההרשמה נמצאים ב[חשבון מפתח של Apple](https://devoria.fr/he/blog/apple-developer-account-price-free-or-99).
- **מזהה bundle** ב-`ios.bundleIdentifier`. לפי [התיעוד של הקונפיגורציה של Expo](https://docs.expo.dev/versions/latest/config/app/), אתה ממציא אותו, אבל הוא חייב להיות ייחודי ב-App Store.
- **EAS CLI מותקן**, ואחר כך `eas login` עם חשבון ה-Expo שלך.

צריך גם build פרודקשן חתום. EAS Build מייצר אותו עם התעודה והפרופיל שהוא מנהל בשבילך, כמו שמוסבר בתעודה ו-provisioning profile ב-iOS.

### דף האפליקציה ב-App Store Connect: אתה או EAS?

EAS Submit שולח קובץ בינארי לאפליקציה שחייבת להיות קיימת ב-App Store Connect.

**אתה יכול ליצור אותה בעצמך.** [העזרה של Apple](https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app) מתארת את חלון New App: פלטפורמה, שם, שפה ראשית, מזהה bundle, SKU וגישת משתמשים. צריך תפקיד Account Holder, Admin או App Manager.

**EAS יכול גם ליצור אותה בשליחה הראשונה.** לפי [הדף של Expo על TestFlight](https://docs.expo.dev/submit/testflight/), `eas submit` יוצר את הדף כשאתה שולח את ה-build הראשון. לפי [התיעוד של eas.json](https://docs.expo.dev/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 דורשת](https://developer.apple.com/support/authentication/) מכל משתמשי App Store Connect: צריך בן אדם שיאשר את ההתחברות. סיסמה ייעודית לאפליקציה, שמועברת ב-`EXPO_APPLE_APP_SPECIFIC_PASSWORD`, עוקפת את השלב הזה, אבל [Expo רואים בה שיטה פחות בטוחה](https://github.com/expo/fyi/blob/main/apple-app-specific-password.md) ממפתח ה-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](https://github.com/expo/fyi/blob/main/creating-asc-api-key.md) נותן למפתח תפקיד Admin.

במקרה השני, רשום את ה-Key ID, שמוצג ברשימת המפתחות הפעילים, ואת ה-Issuer ID, [בראש דף Integrations](https://developer.apple.com/documentation/appstoreconnectapi/generating-tokens-for-api-requests). ובעיקר שמור את קובץ ה-`.p8`: [אפשר להוריד אותו רק פעם אחת](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api), ו-Apple לא שומרת עותק.

> לפי Apple, מפתח Admin יכול ליצור ולמחוק משתמשים בחשבון שלך. Apple מבקשת לעולם לא לשמור את המפתח במאגר קוד.

## קובץ eas.json מינימלי להעתקה

כל הערכים פיקטיביים: החלף אותם בשלך.

```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 ממליצים על המצב המרוחק הזה](https://docs.expo.dev/build-reference/app-versions/) מאז EAS CLI 12.
- **`ascAppId`**: המספר של דף האפליקציה שלך. בלעדיו, המצב הלא-אינטראקטיבי נכשל.
- **`appleTeamId`**: המזהה של צוות ה-Apple Developer שלך.
- **`ascApiKeyPath`, `ascApiKeyIssuerId`, `ascApiKeyId`**: מפתח ה-API שלך. שלושת השדות מקבלים משתני סביבה. הוסף את התיקייה `keys` ל-`.gitignore`.

השדה `appleId` רלוונטי רק אם אתה מתחבר עם ה-Apple ID שלך. אם EAS כבר מנהל את המפתח שלך, תוריד גם את שלושת שדות ה-`ascApiKey`. בשלוש האפליקציות שלי, שבדקתי ב-25 באוקטובר, פרופיל השליחה של הפרודקשן מכיל רק `ascAppId`, ועוד `appleTeamId` ב-Solys: אין שום מפתח בקובץ.

## להריץ את ה-build, ואז את השליחה

```bash
eas build --platform ios --profile production
eas submit --platform ios
```

בלי אפשרויות נוספות, `eas submit` מבקש ממך לבחור איזה build לשלוח, ובהרצה הראשונה שואל על ה-Apple ID שלך. פרופיל השליחה `production` נבחר כברירת מחדל אם הוא קיים. [התיעוד של EAS CLI](https://docs.expo.dev/eas/cli/) מפרט את האפשרויות שחוסכות את הבחירה:

| אפשרות           | מה היא עושה                   |
| ---------------- | ----------------------------- |
| `--latest`       | שולחת את ה-build האחרון ל-iOS |
| `--id`           | שולחת build EAS מסוים         |
| `--path`         | שולחת קובץ .ipa מקומי         |
| `--url`          | שולחת ארכיון מהרשת            |
| `--groups`       | מוסיפה לקבוצה פנימית          |
| `--what-to-test` | ממלאת את "What to test"       |

כדי לשרשר הכול, הוסף `--auto-submit` לפקודת ה-build. לפי [הדף של Expo על שליחה אוטומטית](https://docs.expo.dev/build/automate-submissions/), ה-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 שולחת לך מייל](https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds) בסוף. Expo מדברים בדרך כלל על 10 עד 15 דקות עד שרואים אותו ב-TestFlight.

**2. ציות לייצוא.** הסטטוס Missing Compliance אומר שחסרה ההצהרה שלך על הצפנה. App Store Connect שואל את השאלות האלה בכל גרסה חדשה, אלא אם ה-Info.plist כבר עונה עליהן. ב-Expo, המפתח נקרא `ios.config.usesNonExemptEncryption`:

```json
{
  "expo": {
    "ios": {
      "config": {
        "usesNonExemptEncryption": false
      }
    }
  }
}
```

לפי [Apple](https://developer.apple.com/documentation/security/complying-with-encryption-export-regulations), `false` מתאים אם האפליקציה שלך, כולל הספריות, לא משתמשת בשום הצפנה או רק בהצפנה פטורה. ההצפנה של המערכת, כמו HTTPS דרך URLSession, בדרך כלל פטורה. **תצהיר `false` רק אם זה נכון לאפליקציה שלך: ההצהרה מחייבת אותך.** כמו כל מפתח ב-Info.plist, היא דורשת build חדש.

**3. TestFlight.** בסטטוס Ready to Submit, [לפי Apple](https://developer.apple.com/help/app-store-connect/reference/app-build-statuses), ה-build יכול ללכת לבודקים פנימיים, לעבור בדיקת בטא לבודקים חיצוניים, או להישלח לבדיקת App Store. השדה `groups` בפרופיל מוסיף אותו לקבוצות הפנימיות שלך. כל השאר נמצא ב[TestFlight לבדיקת האפליקציה שלך](https://devoria.fr/he/blog/testflight-test-iphone-app-before-submission).

## שליחה זה לא הגשה לבדיקה

[Expo כותבים את זה](https://docs.expo.dev/submit/introduction/): build ב-TestFlight לא מתפרסם אוטומטית ב-App Store. EAS Submit לא ממלא לא את דף האפליקציה ולא את צילומי המסך. נשארות ארבע פעולות ב-App Store Connect, שמתוארות ב[עזרה של Apple על הגשה לבדיקה](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app):

1. **מלא את המטא-דאטה החובה** של הגרסה.
2. **בחר את ה-build** בחלק Build של הגרסה.
3. **לחץ על "Add for Review".** הגרסה עוברת ל-Ready for Review, אבל עדיין כלום לא נשלח לבדיקה.
4. **לחץ על "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](https://devoria.fr/he/blog/itms-90683-missing-purpose-string-expo), [ITMS-91053 עם Expo](https://devoria.fr/he/blog/itms-91053-missing-api-declaration-expo) ו-ITMS-90725.

שתי ההודעות במירכאות מגיעות מ-EAS ומתוקנות בקונפיגורציה שלו. את Missing Compliance אפשר לפתור גם על ידי מענה על השאלות ב-App Store Connect. **בכל שאר השורות, התיקון נוגע בבינארי: תעשה build מחדש, ואז תשלח אותו שוב.** עדכון מרחוק לא משנה לא את ה-Info.plist, לא את ה-manifest ולא את המספרים.

## לשלוח את האפליקציה הראשונה שלך בלי לגשש

הפקודה היא רק שלב אחד. ה-[iOS Kit](https://devoria.fr/he/kits/ios) מתחיל מקוד הבסיס של האפליקציות שלי, כולל מנויים, ומוביל אותך בארבעה שלבים עד ל-App Store, בקצב שלך.

אם אתה מתכונן להשקה הראשונה שלך, [עשה את האבחון החינמי](https://devoria.fr/he/diagnostic): הוא אומר לך מה באמת תוקע אותך ושולח לך את הצ'קליסט שלי נגד דחיות של Apple. לדף האפליקציה, צילומי המסך והאישור, הדף [לפרסם אפליקציה ב-App Store](https://devoria.fr/he/expertise/publish-an-app-on-the-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 הבאים.


## הפרויקט שלך

[Apple Review Kit](https://devoria.fr/he/kits/review-apple): הצ'קליסט לביקורת App Store שאני משתמש בו, הדחיות שלי מאפל עם התיקונים, הערות לבודק ושני skills של Claude Code שעוברים על האפליקציה. 29 €.

[iOS Kit](https://devoria.fr/he/kits/ios): בנה אפליקציית אייפון עם Claude Code: קוד הבסיס של האפליקציות שלי, skills שבודקים את העבודה, ו-Apple Review Kit, App Store Screenshots Kit ו-ASO Kit. 129,99 €.
