Update your apps to use new features, and test your apps against API changes.
The macOS 10.15 SDK provides support for developing apps for Macs running macOS Catalina 10.15. The SDK comes bundled with Xcode 11 beta available from Beta Software Downloads. For information on the compatibility requirements for Xcode 11, see Xcode 11 Beta 2 Release Notes.
Installing third party kernel extensions now requires that you restart your Mac before they’re permitted to load. (50340461)
If you used Migration Assistant to migrate your data to a Mac running macOS Catalina beta, you might see only third-party applications when clicking the Applications shortcut in the Finder sidebar. (51651200)
Workaround: In Finder > Preferences > Sidebar, select the Applications favorite, then remove the Applications shortcut from the sidebar that displays incorrect results.
During installation of macOS 10.15 you might be prompted to enter your administrator password multiple times to allow installation to proceed. (51206649)
Some apps might not automatically relaunch after installation or updating and must be manually relaunched. (51228752)
You can install macOS 10.15 onto an encrypted volume even if it’s not already formatted as APFS. (51127640)
The Install macOS 10.15 app runs as expected on macOS 10.9. (50868081)
You don’t need to upgrade to macOS Mojave 10.14 before upgrading to macOS 10.15. (50181382)
Migration Assistant correctly migrates data from a Mac running macOS 10.15 to another Mac running macOS 10.15. (50894629)
During upgrades to macOS 10.15, files and folders stored at the root-level of a volume are no longer moved aside to
On Macs with the Apple T2 Security Chip, if you’ve used Startup Security Utility to lower Secure Boot to Medium Security or No Security, you can modify Secure Boot settings after upgrading to macOS 10.15. (51043128)
macOS frameworks are now thinned for the x86-64 architecture. Apps that execute i386 code now fail with the
EBADARCHerror code. The remaining stub frameworks are nonfunctional and exist only for compatibility purposes. (51236070)
VoiceOver feedback sounds are currently unavailable while in macOS Recovery. (48218068)
On Macs with the Apple T2 Security Chip, VoiceOver is available again while in macOS Recovery. (49870874)
Some apps, such as Final Cut Pro, Motion, Compressor, and iMovie can’t be found using Search. (51245576)
Workaround: If you previously purchased the apps, you can download them again from Account > Purchased.
When using the
SecureAPI with access control set on keys, users might not be prompted to authenticate. This might cause subsequent operations requiring authentication to fail. (51279188)
Apple File System (APFS)
You can use volume replication with Fusion volumes as a source or destination. (51114645)
Support for signing in with an account from a different country is currently unavailable. (51240948)
Support for Dolby Atmos content and downloads is now available. (51050344)
Apple TV remembers the previously selected tab when you relaunch it. (50922604)
The option to show only offline downloads is now available. (50997542)
Navigating using the back button behaves as expected. (51207403)
To enhance security, AppleEvents and AppleScripts that target an app on a remote system must authenticate as the same user on the remote system. An AppleEvent that targets an app running as a different user receives a
To allow remote AppleEvents to target apps in any user session, run the following command in Terminal on the server:
Then disable and reenable Remote Apple Events in System Preferences > Sharing. (5353592)
You can now enable voice processing mode on
You can use new
AVAudiotypes to wrap a user-defined block for sending or receiving data in real-time.
A new method is available for an
AVAudiobased app to retrieve a list of all nodes attached to an
A new rendering mode in
AVAudioselects the best spatial audio rendering algorithm automatically based on the output device.
AVAudioproperty allows system sounds and haptics to play while the session is actively using audio input.
A new property,
AVAudioinforms apps which style of voice prompt they should play based on other audio activity in the system.
Session .Prompt Style
AVAudioenumeration is extended to allow apps to specify route sharing policies so their audio and video is routed to the same location as AirPlay.
Session .Route Sharing Policy
Audio Unit Extensions now support user presets that are available across all host apps.
The OpenAL framework is deprecated and remains present for compatibility purposes. Transition to
AVAudiofor spatial audio functionality.
AUGraphis deprecated in favor of
Inter-App audio is deprecated. Use Audio Units for this functionality.
Carbon component-based Audio Units are deprecated and support will be removed in a future release.
Legacy Core Audio HAL audio hardware plug-ins are no longer supported. Use Audio Server plug-ins for audio drivers.
AVFoundation now supports encoding video with alpha channels using HEVC. Videos encoded in this manner are broadly supported in AVFoundation APIs and by Safari within web pages. Technical details of the format can be found in the Interoperability Profile specification. (8045917)
The previously deprecated 32-bit QuickTime framework is no longer available in macOS 10.15.
The symbols for QTKit, which relied on the QuickTime framework, are still present but the classes are non-functional.
After migrating, audio books might not appear until you restart your Mac. (50823065)
If the ‘Restrict books with explicit content’ setting is enabled, your purchased books might be unexpectedly hidden. (51602141)
Books stored in iCloud Drive might take several minutes to appear in your Library. (51435740, 50776390)
You might be unable to import books into your library until you restart your Mac. (50962112)
After upgrading to macOS Catalina beta, locally downloaded cloud items might move back to iCloud. (51306790)
Books and PDFs imported into the Books app upload to iCloud Drive. (47124224)
Apps using Picture Taker must specify the
NSCamerakey to access the FaceTime camera. (47916725)
Applying a filter to console messages might fail. (51524242)
Added new APIs for instantiating and modifying the built-in Core Image filters.
CIKernelinstances now support arguments with arbitrarily structured data.
CIKernelinstances now support returning a group of two by two pixels.
The integer values of
CIFormatsymbols, such as
ARGB8, have changed to a new set of values which are consistent across platforms. The former values remain supported for backward compatibility; however, you should avoid dependancies on specific numerical values.
You might see unexpected results when creating 10-bit HEVC video content. (50322535)
Sending a Volume Purchase Program download request to a client from a Mobile Device Management server might cause an authorization dialog to appear on the client. (49376544)
You can now log in while creating a mobile account on a server with Mobile Device Management Bootstrap Token support. (50912641)
After installing a Device Profile with
The Filter Packet network extension type and
NWEthernetAPI don’t currently work with network interface drivers implemented using DriverKit. (48709552)
You no longer need to unplug and reattach the accessory cable to enumerate a user space driver if that driver quits unexpectedly or you restart your Mac,. (50042397)
openevents are cached, however the cache entries aren’t invalidated when the file is manipulated.
execevents are cached based on the executable and
openevents are cached as a product of the executable and the target file being opened. (45497117)
EndpointSecurity system extensions don’t have access to early boot events. (49487645)
kauthAPI will be removed in a future release. (50419013)
Password reset for FileVault volumes from macOS Recovery doesn’t function as expected. (50455695)
Workaround: While in macOS Recovery, launch Terminal from the Utilities menu, then type
resetpasswordand press return. In the window which appears, select ‘My keyboard isn’t working when typing my password to log in’.
Final Cut Pro
You might be unable to access content from your Photos library. (51600540)
Finder no longer quits unexpectedly when you try to restore using the Time Machine interface. (49398715)
Files can be copied from and deleted on an iOS device using the Files tab in Finder. (48649759)
You can now download folders from iCloud properly. (50855741)
When iCloud Desktop is enabled, attempting to drag a volume mounted on the desktop no longer results in the volume being copied to the Desktop. (51187890)
You might see multiple empty Application libraries within iCloud Drive. You can safely remove the empty folders. (51635803)
The content of folders inside an iCloud Shared Folder might not be available to other users viewing your shared folder. (51591135)
Turning off the Siri switch in iCloud settings doesn’t stop Significant Locations from syncing. To stop syncing, turn off the Significant Locations switch. (50908297)
The Cloud Files section in About This Mac > Storage > Manage might inaccurately represent the current state of files on your Mac. (50362095)
Even when Optimize Storage is switched off, iCloud Drive might fail to automatically download all files. (50667204)
Workaround: Download files individually.
Pages, Numbers, and Keynote documents in shared folders can only be opened on macOS and iOS. iWork documents in shared folders are currently inaccessible from iCloud.com. (50738067)
When creating a new Pages, Numbers, or Keynote document in a shared folder, you might see the message “Couldn’t connect to iCloud”. (50827963)
Workaround: Close and reopen the document.
Your desktop is no longer empty after upgrading to macOS 10.15 if you’re using iCloud Drive to sync Desktop & Documents folders. (50789836)
iPad Apps on Mac
MPMediamight not display the contents of your library. (51785735)
macOS and iPad Apps on Mac are currently view-only clients of PencilKit. (51146823)
In order to show a share sheet from a toolbar item using the
UIActivity, create the
init(iteminitializer and pass it a
UIBarconfigured as a
UIBar. There is no need to set the
Button Item .System Item .action
Currently, you’re unable to import AppKit and UIKit modules in the same compilation unit. If you want to import AppKit headers into an iPad App on Mac, you can import the individual AppKit header in Objective-C, or you can create a bridging header to import the individual AppKit header for Swift. (48094910)
When donating interactions using the
INInteractionclass on macOS, the completion handler is invoked with an error which can be safely ignored. (48371526)
Event handling in extension contexts may produce unexpected results, including failure to deliver trackpad pinch and zoom gestures. (50145462)
When sending Mail attachments via MessageUI, each attachment might appear as two icons when viewed by the recipient. (50369995)
Controls drawn with accent color incorrectly maintain their active color when the window is inactive. There is no need to work around this in your app. (50563638)
The UIKit module currently doesn’t import the newly added
NSTouch. You can import these headers directly in Objective-C, or you can create a bridging header to import them for Swift. Be sure to import Foundation before importing these headers. (50704322)
Bar+UIKit Additions .h
When your iPad App on Mac is launched directly into the background, it experiences all the state transitions of a regular app launch — such as
did Finish Launching With Options:)
application— followed by state transitions to return to background state from there —
Did Become Active(_:)
Will Resign Active(_:)
application. This will soon be updated to match iOS, where your app will receive only
Did Enter Background(_:)
application, and only if it wasn’t already running. (50742219)
Did Finish Launching(_:)
For iPad Apps on Mac to save to Photos Library, explicitly linking the Photos framework is required. (50781430)
Opening a CloudKit share URL might not launch an iPad App on Mac that’s present on the system. Additionally, the system might not take the user to the appropriate App Store page to download an app which isn’t present on the system. (50877241)
Action and share extensions might exhibit visual anomalies. (51005363)
productsmethod from StoreKit currently returns with
Request(_: did Receive:)
didand products aren’t loaded. (51028870)
Fail With Error
All assets at 3x scale factor are currently ignored when compiling the asset catalog for iPad Apps on Mac. Because the search begins with the universal asset, assets for a specific memory or graphics class won’t be found. For example, if you provide an image and only give a 6GB and Metal 5v1 asset, it won’t be found at runtime. It’s recommended that you provide all images as vectors to allow generation of the correct scale factors, or at minimum provide 2x versions of the assets. If you’re classifying resources based on memory and graphics families then you should provide "Any Memory" and "Any Graphics”. (51033745)
CXActioninstances might return an error. (51074735)
MTKViewobjects might render incorrectly. This will be resolved in an upcoming beta. (51084042)
If your iPad App on Mac is launched directly into the background, a second background launch request launches the app into the foreground, making it visible to the user. If your app uses any of the supported APIs which might result in a background launch, this might cause your app to launch in the foreground without user input. (51287556)
In macOS 10.15 beta, the
default()function returns the nonextended color range renderer format by default. To use-extended color range format for rendering, create an instance using
preferred()and pass it to
When creating a Mac version of your iPad app, Xcode automatically generates a unique Mac bundle identifier. If you have an existing Mac bundle identifier you’d prefer to use, you can do so by using manual signing in Xcode. (51076014)
Follow these steps to configure your project, AppID, and provisioning profile:
Sign in to Apple Developer, then select Certificates, Identifiers, and Profiles.
In the Identifiers section, select your iOS app identifier to edit.
Check the UIKit for Mac capability to enable it, then click the Configure button.
Choose Use an existing macOS AppID and select the identifier you'd like to use from the popup menu. Click the Save button to finish editing your AppID.
In the Profiles section, click the + button to create a new profile, select ‘macOS App Development’, and click Continue.
Select your iOS AppID from the popup, click Continue, and complete the rest of the profile creation flow. When finished, click the Download button.
In Xcode, select your project to view the Project Editor and select your app’s target. Then select the Build Settings tab.
Set the Derive UIKit for Mac Product Bundle Identifier setting to No.
Expand the Product Bundle Identifier build setting to view its configurations. Next to the Debug configuration, click the + button to add a conditional value.
For the build setting condition, select Any macOS from the popup menu. Edit the value of the conditional build setting to match the macOS bundle identifier you want to use. Repeat this step for all configurations in your project.
In the Signing & Capabilities tab, uncheck Automatically manage signing.
For your macOS app, select Import Profile from the Provisioning Profile popup and then select the profile you downloaded earlier.
ASAuthorizationis now available. (51032803)
iPad Apps on Mac that use CloudKit receive push notifications properly. (51264475)
iPad Apps on Mac use the same default keychain access group as iPad apps. (50779224)
Ad-hoc app signing now allows access to the Keychain. Adding Keychain Sharing triggers mandatory signing using a profile, in turn allowing access to the Keychain. (50898387)
You can open the Services Preferences pane from the Services > Services Preferences menu item in the app menu. (49780697)
When the user quits an iPad App on Mac, the app transitions to UIKit background state and the app's audio is stopped.
AVAudioissues a begin interruption notification in response to the app transitioning to UIKit background state. Additionally, if an iPad App on Mac attempts to activate an AVAudioSession, start an AudioQueue, AURemoteIO, or other high-level player object while in UIKIt background state, audio input and output won’t be allowed to start and AVAudioSession won’t be allowed to activate while the app is in UIKIt background state. (51050672)
If you use
UIDocumentto create a new document, then cancel, the helper process presenting the document browser doesn’t quit unexpectedly. (50558637)
Browser View Controller
A tooltip added to an
NSToolbaris no longer presented as a blank window. (50957416)
You can now pass shared items from a Sharing extension back to the host through its completion handler. (50835062)
Color asset variants are passed during runtime, so these colors now appear in your iPad App on Mac. (51113192)
Password AutoFill appears correctly in iPad Apps on Mac. (50992371)
SFSafariopens the URL from initialization when presented, then dismisses itself. (51267323)
Attempting to open iWork documents in Finder will unexpectedly create a
.cpgzfile if the corresponding iWork app isn’t installed. (40693892)
Workaround: Install the corresponding app from the App Store before opening the document.
HID reports from DualShock 4 game controllers using Bluetooth are no longer reported differently by lower level frameworks, such as IOKit, in comparison to macOS Mojave 10.14. (51163262)
Certain languages might exhibit clipped or misaligned layout. (51068688,50983852)
Certain languages might display unlocalized text. (47765173,51196633)
If your Mac contains both macOS Mojave 10.14 and macOS 10.15 volumes, you might experience issues searching in Mail. (46611310)
Workaround: While running macOS Mojave 10.14, open Terminal and execute the following command:
Reboot into macOS 10.15, open Terminal and execute the following command:
Reboot into macOS Mojave 10.14, open Terminal and execute the following command:
Depending on the size of your Mail database, it might many hours to reindex all content.
You might be unable to log into the store unless you're logging in from the country in which you’re currently located. (51105585)
Navigating using the back button might produce unexpected results. (51248128)
Music might take a long time to launch for some users. (51207753)
You might be unable to scroll content on shelves. (51248128)
Artwork changes might not immediately appear; playlists will be added in an upcoming beta. (51201715)
Music might not remember the previously selected tab when it’s relaunched. (50922604)
Connecting to another computer using Home Sharing shows the remote library as expected. (50921136)
Attempting to delete movies, TV shows, and music videos from Manage Storage settings works as expected. (51001458)
The visualizer appears as expected. (49952376)
All NSURLSessionTasks with a GET HTTP method which contain a body will now produce the error NSURLErrorDataLengthExceedsMaximum. (46025234)
An active Network Extension content filter configuration might interrupt the boot process indefinitely following a kernel panic. (50965627)
Workaround: Boot into macOS Recovery, launch Terminal, and execute the following command:
NetBoot is unavailable when a Network Extension content filter configuration is enabled. (50872052)
NWEthernetAPI doesn’t currently support VLAN interfaces.
NEPacketwill see both tagged and untagged frames arriving on physical interfaces. Depending on the Ethernet driver, VLAN tags might be processed by hardware and thus stripped off the Ethernet frames thus
NEPacketwon’t see the VLAN tag. (51275655)
The driver for Ethernet Control Model (ECM) USB-C to Ethernet adapters is now enabled in Virtual Machine instances of macOS 10.15. (50968842)
Enabling a Network Extension content filter using
NEFilterstarts the content filter. (50603957)
The DNS Proxy, Packet Tunnel, and App Proxy network extension types work as System Extensions. (51186839)
Installing a content filter configuration when the corresponding content filter system extension is inactive doesn’t interrupt all network traffic on your Mac. (51033902)
Support for FTP and File URL schemes for Proxy Automatic Configuration (PAC) is removed. HTTP and HTTPS are the only supported URL schemes for PAC. This affects all PAC configurations including but not limited to configurations set using Settings, System Preferences, profiles, URLSession APIs such as
Execute Proxy Auto Configuration URL(_: _: _: _:)
The Network Kernel Extension API is now deprecated. (49284108)
NetBIOS is disabled in macOS 10.15 to speed up mounting, browsing, and connecting to SMB shares. Some older printers and file servers may require NetBIOS to connect. (51119111)
To enable NetBIOS, you can create or edit the
/etc/nsmbfile. If your system doesn't already have an
/etc/nsmbfile, use the following Terminal commands while logged in as an Administrator:
To disable NetBIOS, you can safely delete the
To improve the Photos upgrade experience, Photos is testing database upgrades using a clone of the Photo Library. This clone doesn’t include the content of each photo, but does include faces metadata and a thumbnail image of each person in your library. It also contains metadata such as the asset name and the geographic location of the photo. It is created at
~/Pictures/mac, and you can manually remove this backup at any time. The clone will be removed automatically before the final release of macOS 10.15. (51033690)
OS 10 .15 Pre-Upgrade Backup
The sidebar might render unexpectedly until quitting and relaunching the app. (51340728)
Browse and Top Charts might not display content from the expected country. (51681853)
Deleting podcasts using About This Mac > Storage > Manage doesn’t update what’s shown in the Podcasts app until it’s relaunched. (50354510)
Setting “Automatically Download Episodes” to “Never” might not take effect. (50960777)
Writing a review isn’t currently supported. (46173722)
Manually checking for feed updates when Option-clicking the Podcasts app in the dock isn’t currently available. (50958585)
Workaround: Quit and relaunch the app.
Certain UI elements might appear unaligned on non-Retina displays. (51138730)
The first time Podcasts is launched, a migration is triggered even if there is no content to migrate. (51145044)
If Podcasts is placed in Full Screen mode, some UI elements might be obscured by the toolbar. (47125303)
User interface elements are no longer obscured by the toolbar if you place Podcasts in Full Screen mode. (47125303)
Starting in macOS 10.15, the Quartz Composer framework is deprecated and remains present for compatibility purposes. Transition to frameworks such as Core Image, SceneKit, or Metal. (50911608)
If the Mac you’re screen sharing with is running macOS 10.15 beta, you can’t drag and drop onto the screen share. (50791710)
Users can click ‘One more minute’ multiple times per day instead of only once each time they reach a limit for that app. (48773803)
Screen Time > Content & Privacy > Content > Web Content > Allowed Websites Only isn’t currently enforced in macOS 10.15 beta. (50462899)
Parental controls that predate macOS 10.15 aren’t enforced when these restrictions are set to Off in Screen Time. (48010796)
When in Downtime or after reaching an App Limit, clicking Ignore Limit no longer requires clicking in the precise location for the options to appear. (50061983)
Messages and FaceTime enforce Screen Time’s Communication Limits. (51055350, 51055448)
You can now consistently select apps in the Always Allowed pane. (51120837)
Script Editor doesn’t quit unexpectedly when saving or executing scripts. (50470730)
Scripting Language Runtimes
Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app. (49764202)
Use of Python 2.7 isn’t recommended as this version is included in macOS for compatibility with legacy software. Future versions of macOS won’t include Python 2.7. Instead, it’s recommended that you run
python3from within Terminal. (51097165)
Sign In with Apple
ASAuthorizationAPI is now available. (50376266)
Siri now supports the Music and Podcasts apps. (47202947, 50790506)
Mail messages might not display previews. (35678035)
Return types for
Viewmodifier methods include complex generic types. In a future release, these methods will return simpler types. (46140669)
tabmodifier doesn’t accept
Workaround: Wrap the views you pass to the modifier in a
Scrolldoesn’t always size itself as expected for its content. (49204262)
Workaround: Size the view that’s inside the
Scrollby applying the
frame(width:modifier to the inner view. (49204262)
Upgrading system extension versions isn’t currently available. The extension can be deleted, then reinstalled which requires user reapproval. (48943883)
Approving system extensions using Mobile Device Management isn’t currently available. (50553712)
Driver extensions launch on-demand after installation. (51229724)
Voice Memos synced from iCloud might not finish downloading. (49512619)
The File menu might be unexpectedly empty. (51475831)
Location-based naming isn’t yet available in macOS 10.15 beta. (48048663, 50743045)
Your Mac can automatically join WPA3 networks. (50605428)
The Wi-Fi menu no longer lists available Wi-Fi networks after you turn Wi-Fi off using the menu bar. (50643127)
Swift interfaces for several new
URLSessionAPIs are unavailable. (50517967)
Command line tool support for Subversion — including
git-svn, and related commands — is no longer provided by Xcode. If you need Subversion or related command line tools, install the Command Line Tools package by running
xcode-select --install. (50266910)