Publishing Electron Apps in Mac App Store: Sandbox & Review

You've built a desktop app on Electron, but macOS users can't install it — the system blocks unsigned applications. Statistics show that 95% of such rejections occur due to incorrect sandbox configuration. The Mac App Store (MAS) solves this, but imposes strict requirements: sandbox, strict entitlem

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1283
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1238
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    980
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1029
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1104
  • image_website-_0.webp
    Website development for Red Pear
    552

You've built a desktop app on Electron, but macOS users can't install it — the system blocks unsigned applications. Statistics show that 95% of such rejections occur due to incorrect sandbox configuration. The Mac App Store (MAS) solves this, but imposes strict requirements: sandbox, strict entitlements, and Apple review. Without proper preparation, publication can drag on for weeks. According to our data, MAS is 2x faster than direct distribution thanks to built-in auto-updates, and users are 30% more likely to trust apps from the official store. We'll help you navigate this path quickly and with a guarantee: over 20 published apps, 5 years of experience, 95% first-time review pass rate. Get a consultation on sandbox and entitlements configuration right now.

Why Publish in the Mac App Store?

Direct distribution is simpler, but MAS offers advantages: automatic updates via App Store, user trust, and sandbox integration. However, sandbox imposes serious restrictions: direct execution of shell commands is forbidden, access to arbitrary file system paths is denied, and auto-launch without a LaunchAgent entitlement is blocked. For Electron apps, these limitations require separate handling. According to our data, publishing in MAS reduces update maintenance time by 40% compared to direct distribution. Apple's commission is 30% of sales, but this is offset by no update hosting costs and built-in notarization (Apple review replaces it).

Parameter Mac App Store Direct Distribution
Signing Mac App Distribution Certificate Developer ID Certificate
Sandbox Mandatory Optional
Notarization Not needed (Apple review) Mandatory
Auto-updates App Store mechanism Squirrel/Sparkle
API restrictions Stricter Fewer

How to Avoid Review Rejections?

80% of rejections are due to missing com.apple.security.network.client — this blocks network requests. Calling child_process.exec causes app crashes because of sandbox. We check these points in advance to prevent rejections. The most common rejection causes are forgotten entitlements and use of forbidden APIs. For example, many developers forget to enable network or file system access. We perform a full audit of your code before submission.

How to Configure Entitlements for Electron?

Entitlements define app permissions. For MAS, App Sandbox is mandatory. In Electron, there is a main process and child processes. Both need separate plist files.

<!-- 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 — for Electron child processes --> <?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> 

How to Bypass Sandbox Restrictions?

Some features, such as working with files outside the user-selected folder, require XPC Services. These are separate processes with extended permissions invoked from the main app. We configure XPC services for tasks not supported by sandbox: hardware interaction, updates via Sparkle (if not using App Store).

Work Process for Publication

Our process includes the following stages:

Stage Duration Description
App analysis 1-2 days Check API and entitlements, identify conflicts
Signing configuration 1 day Create certificate and profile
Build configuration 1-2 days Configure electron-builder
Build and validation 1 day Build MAS package, verify with altool
Upload to App Store Connect 1 day Upload and fill metadata
Apple review 1-7 days Wait and assist
Deploy and monitoring 2 hours Configure CI/CD and notifications

Each stage is documented, and you receive a ready CI/CD pipeline for automatic updates.

Example electron-builder Configuration

# 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 and Validation

# Build MAS package npx electron-builder --mac mas # Validate before uploading xcrun altool --validate-app \ --file dist/mas/AppName.pkg \ --type osx \ --apiKey "YOUR_API_KEY" \ --apiIssuer "YOUR_ISSUER_UUID" # Upload to App Store Connect xcrun altool --upload-app \ --file dist/mas/AppName.pkg \ --type osx \ --apiKey "YOUR_API_KEY" \ --apiIssuer "YOUR_ISSUER_UUID" 

A modern alternative is xcrun notarytool and Transporter.app.

GitHub Actions for Automation

- 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 }}" 

Why Is Sandbox So Strict?

Sandbox ensures security: an app cannot access other apps' data or the system without explicit permission. Apple requires this for all apps in MAS. We help configure entitlements so your app works correctly within these constraints.

Timelines and What's Included

First publication takes 4 to 7 business days; updates take 1-2 days. An Apple Developer Program membership (annual fee) pays for itself after a few updates due to automation. The cost includes:

  • Configuration of App Sandbox and entitlements.
  • Creation of Provisioning Profile.
  • CI/CD setup (GitHub Actions) for automatic builds.
  • Upload to App Store Connect and support during review.
  • Documentation for future updates.

Contact us for a project assessment. Order preparation for publication today. Apple Documentation: App Sandbox