Mac App Store Guideline 2.4.5 sandbox self-contained bundle and no-root rules
Parent: Mac App Store App Review Guidelines for Sandboxed Utilities · Published reference · snapshot 2026-10-02
↓ Facts as markdownall context files
Source-anchored research for Mac App Store Guideline 2.4.5 sandbox self-contained bundle and no-root rules. Run status: COMPLETED.
These notes link each claim to its source. Some citations identify archived research reports that are no longer hosted on this site. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.
Problems, failure modes and limitations
- Guideline 2.4.5(v) forbids requesting escalation to root privileges and using setuid attributes. A DNS or network monitor cannot ship a root helper or privileged-tool installer in the store build; it must work with user-level sandbox entitlements such as com.apple.security.network.client. (high confidence) (verified as of 2026-10-02) [source]
- A child process inherits its sandboxed parent's sandbox and cannot exceed its permissions (Apple DTS, January 2024). Apple's own frameworks such as MapKit reach the network through non-sandboxed system daemons via XPC; third-party Mac App Store apps cannot do the same because every component must be sandboxed. (medium confidence) [source]
- py2app apps for the Mac App Store must be signed manually; a March 2022 py2app issue reports 'Killed: 9' with 'Restricted entitlements not validated' (error -67050) when sandbox entitlements were applied, with suspected causes of nested binaries not signed individually, entitlement or profile mismatch. The issue records no resolution. (low confidence) (verified as of 2022-03-27) [source]
Facts and statements
- Guideline 2.4.5(i) requires Mac App Store apps to be appropriately sandboxed, follow the macOS File System documentation, and use only appropriate macOS APIs to modify user data stored by other apps (bookmarks, Address Book, Calendar). (high confidence) (verified as of 2026-10-02) [source]
- Guideline 2.4.5(ii) requires packaging and submission with Xcode-provided technologies, bans third-party installers, and requires a self-contained, single app installation bundle that does not install code or resources in shared locations. A py2app bundle must therefore carry its interpreter, libraries and helpers inside the .app. (high confidence) (verified as of 2026-10-02) [source]
- Guideline 2.4.5(iii): apps may not auto-launch or run code at startup or login without consent, may not spawn processes that keep running after the user quits without consent, and should not add Dock icons or desktop shortcuts automatically. A menu-bar utility that starts at login needs an explicit user opt-in toggle. (medium confidence) (verified as of 2026-10-02) [source]
- Guideline 2.4.5(iv) bars downloading or installing standalone apps, kexts, additional code or resources that add functionality or significantly change the app from what App Review saw. Self-updating Python code or downloaded plugins breach it; updates go through the Mac App Store. (medium confidence) (verified as of 2026-10-02) [source]
- Guideline 2.4.5(vi) bars a license screen at launch, license keys, and custom copy protection. (low confidence) (verified as of 2026-10-02) [source]
- A 2014 write-up of a Python Mac App Store submission lists: sandbox blocks arbitrary file access outside open/save dialogs and the container, PowerPC slices in Python 2.7 must be removed with lipo, and manual codesign is required. Treat as dated; the lipo and Application Loader steps are obsolete. (low confidence) (verified as of 2014-06-24) [source]
- Apple App Review answers questions on bundled extra executables only by directing developers to a one-on-one App Review consultation, so there is no official ruling on whether a bundled executable the user can run manually is allowed. (low confidence) (verified as of 2026-10-02) [source]
Children
- No children recorded.