Update your apps to use new features, and test your apps against API changes.
The macOS 10.14 SDK provides support for developing apps for Macs running macOS Mojave. The SDK comes bundled with Xcode 10 available from the Mac App Store. For information about Xcode 10, see Xcode 10 Release Notes.
Mac Pro (mid 2010 and mid 2012 models) must first be updated to macOS High Sierra 10.13.6 before updating to macOS Mojave. (41798700)
Ink APIs in
Inkand associated ink events in Carbon are deprecated. (29008562)
Using Carbon File Manager APIs and other APIs based on the
FSRefstructure might slow system performance when using APFS-formatted volumes. File Manager is deprecated in macOS 10.8 and later. For improved performance, switch to URL-based replacements such as
32-bit processes now trigger an alert on launch.
You can review 32-bit apps in System Information. The Software > Legacy Software report in System Information provides an overview of impacted software.
32-bit system services such as
qtkitserverremain for compatibility purposes and will be deprecated in a future release of macOS. If your app is using one of these services, migrate to the equivalent 64-bit framework.
QTMoviedepend on the deprecated 32-bit QuickTime framework which remains present in macOS Mojave for compatibility purposes. When future versions of macOS no longer support 32-bit processes, these APIs will become unavailable.
Administrators are encouraged to review root-owned daemons and processes on behalf of non-administrator users, as these users might lack permissions required to resolve previously-installed 32-bit dependencies.
Apple File System (APFS)
After enabling or disabling FileVault on a volume, the volume will become invisible to pre-macOS Mojave systems until the encryption or decryption process completes.
Sending Apple events from an app—including script applets—now requires user approval. The list of currently approved apps can be viewed and edited in the Automation category in the Privacy tab in System Preferences > Security & Privacy. If an event is blocked because the user didn’t approve that app, the event will fail with the error code:
: Not authorized to send Apple events to<target>
"). An event can be preflighted using
Permission To Automate Target
Scripting additions can no longer be globally installed. The
~/Library/Scriptingdirectories are effectively ignored.
Distribute scripting additions as part of a specific app by embedding the scripting addition in the app’s
Contents/Resources/Scripting Additionsdirectory and signing both the addition and the app with the same team identifier.
Support for quantized models (≤ 8-bit linear and/or lookup table)
Support for flexible image sizes and multi-array shapes
Batch prediction API
Support for custom models
Support for Create ML models (Vision Feature Print, Text Classifier, Word Tagger)
Important: Don't use Disk Utility while booted from Internet Recovery to erase an APFS Fusion container. (40565698)
Workaround: Use Disk Utility while booted into macOS 10.13.6 or newer.
You can now request to use an external GPU (eGPU) when an app’s window is located on a display connected directly to your Mac, including the built-in display on iMac or MacBook Pro. To enable this option in an app, choose File > Get Info and check the 'Prefer External GPU’ checkbox. (39888124)
FaceTime and Messages
Group FaceTime has been removed from the initial release of macOS Mojave and will ship in a future software update later this fall.
Grab is superseded by the Screenshot app.
Inviting iOS 11 users who have multiple email addresses associated with their Apple ID to a home might not succeed. (41033550)
Workaround: Send the invitation to a different email address or phone number associated with the Apple ID of the iOS 11 user.
British English, Australian English, Canadian French, and Hong Kong Chinese (Traditional) localization is new in macOS Mojave.
You might experience difficulty logging into your account because the keyboard layout may change unexpectedly at the Login window. (40821875)
Workaround: Log in to your account, launch Terminal, and execute the following command:
The Stationery feature has been removed. (38725777)
MKMapare updated to support the new Dark Map style. MapKit automatically switches to the Dark Map appearance when Dark Mode is enabled, the user hasn’t disabled the Dark Map in the Maps app, and your app has been compiled for macOS 10.14 Mojave. As a result, most apps using MapKit don’t require code changes to adopt the correct behavior. Both
MKMapsupport overriding this behavior through their respective appearance property. If your app overlays custom controls on top of the map view or the snapshot, you might want to react to changes of the map appearance using
NSURLSessionHTTP/2 implementation is updated to support HTTP/2 connection reuse per RFC 7540 Section 9.1.1. This requires an HTTP/2 server to present a certificate which covers more than one server hostname. The certificate may use the Subject Alternative Name extension or wildcarded domain names. In addition,
NSURLSessionrequires name resolution to resolve the different hostnames to the same IP address.
NSURLSessionmay reuse HTTP/2 connections across different domain names when these conditions are satisfied. (37507838)
file://URL schemes for Proxy Automatic Configuration (PAC) are deprecated. HTTP and HTTPS are the only supported URL schemes for PAC. This affects all PAC configurations including, but not limited to, configurations set via Settings, System Preferences, profiles, and
NSURLSessionAPIs such as
Execute Proxy Auto Configuration URL
Open GL and Open CL
The APIs in the OpenGL and OpenCL frameworks are deprecated and remain present for compatibility purposes. Transition to Metal if your app is using OpenGL or OpenCL.
Apps that call the
scanmethod can no longer obtain the MAC address (BSSID) of nearby Wi-Fi access points when Location Services is disabled. If broadcasted, the network name (SSID) remains included in the scan results. (37427543)
For Networks With Name: error:
Apps can't access protected storage unless they're added to the Application Data category located in the Privacy tab of System Preferences > Security & Privacy. (39798760)
Safari and WebKit
The Safari Extension
canAPI is deprecated. Safari deactivates these extensions and notifies users upon first launch. You can reenable affected extensions using the Extensions pane in Safari preferences. Extensions using
canshould switch to the Content Blocker model. (33726891)
Legacy NPAPI browser plug-ins are no longer supported in Safari, with the exception of Adobe Flash. These plug-ins won't load and can't be reenabled. (34213078)
Safari no longer supports developer-signed
.safariextzpackaged legacy Safari Extensions. When you first launch Safari on macOS Mojave, if you have any legacy developer-signed extensions installed, you'll see a notification that such extensions are no longer supported. These extensions can't be reenabled. Safari Extension Gallery extensions remain supported; however, this support will be removed in an upcoming macOS release. Adopt the Safari App Extensions programming model instead. (39007695)
Social Network Integrations
macOS no longer includes built-in integrations with social networking and media sites. Use share extensions if this functionality is desired. For design guidance, see Human Interface Guidelines > Share Extensions.
The shell command
linktakes two arguments, neither of which is permitted to be the name of a directory. Prior to macOS Mojave, the command
link F D, where
Fis a file and
Dis a directory, created the hard link
D/F. In macOS Mojave this behavior now conforms to the documented behavior. The error message
link: D is a directoryis displayed and the command exits with a failure status (