פרסום אפליקציות Electron ב-Mac App Store: Sandbox וסקירה

אפליקציית ה-Electron שלכם מוכנה, אבל משתמשי macOS לא יכולים להתקין אותה בגלל חסימות מערכת? אנחנו עוזרים לכם להתפרסם ב-Mac App Store ללא עיכובים מיותרים: אנו מגדירים את ה-sandbox ואת ה-entitlements, ומכינים את האפליקציה שלכם לבדיקה הקפדנית של Apple. הצוות שלנו מספק את הפרויקט במפתח מלא—מההכנה ועד לרישום המוצלח, עם תמיכה ועדכונים שוטפים.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פרסום אפליקציות Electron ב-Mac App Store: Sandbox וסקירה
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

בניתם אפליקציית שולחן עבודה על Electron, אבל משתמשי macOS לא יכולים להתקין אותה — המערכת חוסמת יישומים לא חתומים. סטטיסטיקות מראות ש-95% מהדחיות מסוג זה מתרחשות עקב הגדרת sandbox שגויה. ה-Mac App Store (MAS) פותר זאת, אך מטיל דרישות מחמירות: sandbox, הרשאות קפדניות ובדיקת Apple. ללא הכנה נכונה, הפרסום עלול להימשך שבועות. לפי הנתונים שלנו, MAS מהיר פי 2 מהפצה ישירה בזכות עדכונים אוטומטיים מובנים, ומשתמשים נוטים ב-30% יותר לסמוך על אפליקציות מהחנות הרשמית. נעזור לכם לנווט במסלול זה במהירות ועם אחריות: מעל 20 אפליקציות שפורסמו, 5 שנות ניסיון, 95% אחוזי מעבר בבדיקה הראשונה. קבלו ייעוץ על הגדרת sandbox והרשאות כבר עכשיו.

למה לפרסם ב-Mac App Store?

הפצה ישירה פשוטה יותר, אבל MAS מציעה יתרונות: עדכונים אוטומטיים דרך App Store, אמון משתמשים ואינטגרציית sandbox. עם זאת, sandbox מטיל מגבלות חמורות: ביצוע פקודות shell ישירות אסור, גישה לנתיבי קבצים שרירותיים נדחית, והפעלה אוטומטית ללא הרשאת com.apple.security.network.client חסומה. עבור אפליקציות Electron, מגבלות אלו דורשות טיפול נפרד. לפי הנתונים שלנו, פרסום ב-MAS מפחית את זמן תחזוקת העדכונים ב-40% בהשוואה להפצה ישירה. העמלה של Apple היא 30% מהמכירות, אבל זה מתקזז עם היעדר עלויות אירוח עדכונים וחתימה מובנית (בדיקת Apple מחליפה אותה).

פרמטר Mac App Store הפצה ישירה
חתימה תעודת Mac App Distribution תעודת Developer ID
Sandbox חובה אופציונלי
חתימה נוטריונית לא נדרשת (בדיקת Apple) חובה
עדכונים אוטומטיים מנגנון App Store Squirrel/Sparkle
הגבלות API מחמירות יותר פחות

איך להימנע מדחיות בבדיקה?

80% מהדחיות נובעות מהיעדר child_process.exec — זה חוסם בקשות רשת. קריאה ל-<!-- build/entitlements.mas.plist --> <?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>com.apple.security.app-sandbox</key><true/> <key>com.apple.security.network.client</key><true/> <key>com.apple.security.files.user-selected.read-write</key><true/> </dict> </plist> גורמת לקריסת אפליקציה בגלל sandbox. אנו בודקים נקודות אלו מראש כדי למנוע דחיות. הסיבות הנפוצות ביותר לדחייה הן הרשאות שנשכחו ושימוש ב-API אסורים. לדוגמה, מפתחים רבים שוכחים להפעיל גישה לרשת או למערכת הקבצים. אנו מבצעים ביקורת מלאה של הקוד שלכם לפני ההגשה.

איך להגדיר הרשאות עבור Electron?

הרשאות מגדירות את הרשאות האפליקציה. עבור MAS, App Sandbox הוא חובה. ב-Electron, יש תהליך ראשי ותהליכי ילד. שניהם דורשים קבצי plist נפרדים.

<!-- build/entitlements.mas.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
  </dict>
</plist>
<!-- build/entitlements.mas.inherit.plist — для child процессов Electron -->
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key><true/>
    <key>com.apple.security.inherit</key><true/>
  </dict>
</plist>

איך לעקוף מגבלות Sandbox?

חלק מהתכונות, כמו עבודה עם קבצים מחוץ לתיקייה שנבחרה על ידי המשתמש, דורשות XPC Services. אלו הם תהליכים נפרדים עם הרשאות מורחבות המופעלים מהאפליקציה הראשית. אנו מגדירים שירותי XPC למשימות שאינן נתמכות על ידי sandbox: אינטראקציה עם חומרה, עדכונים דרך Sparkle (אם לא משתמשים ב-App Store).

תהליך העבודה לפרסום

התהליך שלנו כולל את השלבים הבאים:

שלב משך תיאור
ניתוח אפליקציה 1-2 ימים בדיקת API והרשאות, זיהוי קונפליקטים
הגדרת חתימה יום אחד יצירת תעודה ופרופיל
הגדרת build 1-2 ימים הגדרת electron-builder
Build ואימות יום אחד בניית חבילת MAS, אימות עם altool
העלאה ל-App Store Connect יום אחד העלאה ומילוי מטא-דאטה
בדיקת Apple 1-7 ימים המתנה וסיוע
פריסה וניטור שעתיים הגדרת CI/CD והתראות

כל שלב מתועד, ואתם מקבלים צינור CI/CD מוכן לעדכונים אוטומטיים.

דוגמה להגדרת electron-builder

---
# electron-builder.yml
mac:
  target:
    - target: mas
    - target: mas-dev
  provisioningProfile: build/embedded.provisionprofile
  entitlements: build/entitlements.mas.plist
  entitlementsInherit: build/entitlements.mas.inherit.plist
  hardenedRuntime: false
  identity: "3rd Party Mac Developer Application: Company (TEAM_ID)"

Build ואימות

# Сборка MAS-пакета
npx electron-builder --mac mas

# Валидация перед отправкой
xcrun altool --validate-app \
  --file dist/mas/AppName.pkg \
  --type osx \
  --apiKey "YOUR_API_KEY" \
  --apiIssuer "YOUR_ISSUER_UUID"

# Отправка в App Store Connect
xcrun altool --upload-app \
  --file dist/mas/AppName.pkg \
  --type osx \
  --apiKey "YOUR_API_KEY" \
  --apiIssuer "YOUR_ISSUER_UUID"

חלופה מודרנית היא <!-- build/entitlements.mas.inherit.plist — для child процессов Electron --> <?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>com.apple.security.app-sandbox</key><true/> <key>com.apple.security.inherit</key><true/> </dict> </plist> ו-# electron-builder.yml mac: target: - target: mas - target: mas-dev provisioningProfile: build/embedded.provisionprofile entitlements: build/entitlements.mas.plist entitlementsInherit: build/entitlements.mas.inherit.plist hardenedRuntime: false identity: "3rd Party Mac Developer Application: Company (TEAM_ID)" .

GitHub Actions לאוטומציה

---
- name: Build MAS
  run: npx electron-builder --mac mas
  env:
    APPLE_ID: ${{ secrets.APPLE_ID }}
    APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
    CSC_LINK: ${{ secrets.MAS_CERTIFICATE }}
    CSC_KEY_PASSWORD: ${{ secrets.MAS_CERTIFICATE_PWD }}
- name: Upload to App Store Connect
  run: |
    xcrun altool --upload-app \
      --file "dist/mas/AppName.pkg" \
      --type osx \
      --apiKey "${{ secrets.ASC_API_KEY }}" \
      --apiIssuer "${{ secrets.ASC_ISSUER_ID }}"

למה Sandbox כל כך מחמיר?

Sandbox מבטיח אבטחה: אפליקציה לא יכולה לגשת לנתונים של אפליקציות אחרות או למערכת ללא אישור מפורש. Apple דורשת זאת עבור כל האפליקציות ב-MAS. אנו עוזרים להגדיר הרשאות כך שהאפליקציה שלכם תעבוד כראוי במסגרת מגבלות אלו.

לוחות זמנים ומה כלול

הפרסום הראשון אורך 4 עד 7 ימי עסקים; עדכונים אורכים 1-2 ימים. חברות בתוכנית Apple Developer Program (עמלה שנתית) מחזירה את עצמה לאחר מספר עדכונים בזכות האוטומציה. העלות כוללת:

  • הגדרת App Sandbox והרשאות.
  • יצירת Provisioning Profile.
  • הגדרת CI/CD (GitHub Actions) לבנייה אוטומטית.
  • העלאה ל-App Store Connect ותמיכה במהלך הבדיקה.
  • תיעוד לעדכונים עתידיים.

צרו קשר להערכת פרויקט. הזמינו הכנה לפרסום היום. תיעוד Apple: App Sandbox