macOS Catalina 10.15 Beta 7 Release Notes

The macOS Catalina 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 7 Release Notes.

General

New Features

  • Installing third party kernel extensions now requires that you restart your Mac before they’re permitted to load. (50340461)

Known Issues

  • During installation of macOS 10.15 you might be prompted to enter your administrator password multiple times to allow installation to proceed. (51206649)

Deprecations

  • macOS frameworks are now thinned for the x86-64 architecture. Apps that execute i386 code now fail with the EBADARCH error code. The remaining stub frameworks are nonfunctional and exist only for compatibility purposes. (51236070)

AirDrop

Known Issues

Apple TV

Known Issues

  • Support for signing in with an account from a different country is currently unavailable. (51240948)

AppleEvents

New Features

  • 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 procNotFound error.

    To allow remote AppleEvents to target apps in any user session, run the following command in Terminal on the server:

    defaults write /Library/Preferences/com.apple.AEServer RestrictAccessToUserSession -bool false
    

    Then disable and reenable Remote Apple Events in System Preferences > Sharing. (5353592)

Audio

New Features

  • You can now enable voice processing mode on AVAudioEngine. (50906329)
  • You can use new AVAudioNode types to wrap a user-defined block for sending or receiving data in real-time.
  • A new method is available for an AVAudioEngine based app to retrieve a list of all nodes attached to an AVAudioEngine instance.
  • A new rendering mode in AVAudioEnvironmentNode selects the best spatial audio rendering algorithm automatically based on the output device.
  • A new AVAudioSession property allows system sounds and haptics to play while the session is actively using audio input.
  • A new property, AVAudioSession.PromptStyle informs apps which style of voice prompt they should play based on other audio activity in the system.
  • The AVAudioSession.RouteSharingPolicy enumeration is extended to allow apps to specify route sharing policies so their audio and video is routed to the same location as AirPlay.
  • Audio Unit Extensions now support user presets that are available across all host apps.

Deprecations

  • The OpenAL framework is deprecated and remains present for compatibility purposes. Transition to AVAudioEngine for spatial audio functionality.
  • AUGraph is deprecated in favor of AVAudioEngine.
  • 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

New Features

  • The AVPlayer class includes two new properties, eligibleForHDRPlayback and eligibleForHDRPlaybackDidChangeNotification, which you can use to determine whether an HDR display is available and can play on the current device. (35938145)
  • 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)

Deprecations

  • 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.

Camera

Known Issues

Core Image

New Features

  • The init(imageURL:options:) and init(imageData:options:) initializers no longer support RAW decoder versions earlier than 6. Version 6 and later remain supported. (50911303)
  • Added new APIs for instantiating and modifying the built-in Core Image filters.
  • The CICoreMLModel filter is enhanced to support models with an input or output of type MLFeatureType.multiArray.
  • Metal CIKernel instances now support arguments with arbitrarily structured data.
  • Metal CIKernel instances now support returning a group of two by two pixels.
  • The integer values of CIFormat symbols, 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.

EndpointSecurity

Deprecations

  • The kauth API has been deprecated. (50419013)

iCloud

Known Issues

  • After updating to macOS Catalina 10.15 Beta 7 or later, iCloud Drive might synchronize for an extended period of time. If you notice any missing files, they can be found inside a Recovered Files folder in your home folder. (54046219)
  • Even when Optimize Storage is switched off, iCloud Drive might fail to automatically download all files. (50667204)

    Workaround: Download files individually.

  • 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.

Resolved Issues

  • The Cloud Files section in About This Mac > Storage > Manage now accurately represents the current state of files on your Mac. (50362095)

iWork

Known Issues

  • Attempting to open iWork documents in Finder will unexpectedly create a .cpgz file if the corresponding iWork app isn’t installed. (40693892)

    Workaround: Install the corresponding app from the App Store before opening the document.

Launch Daemons and Agents

New Features

  • Launch daemons and launch agents introduce new user privacy protections. Specifying privacy-sensitive files and folders in a launchd property list might not work as expected and prevent the service from running. Having Program or ProgramArguments pointing to an executable in a privacy sensitive location is currently allowed, but may be restricted in a future release. (49702405)

    To comply with the new privacy protections, resources for a launchd service must be stored in locations that aren’t privacy sensitive. If necessary, the app can set up resources during its execution rather than using launchd property list keys, making it possible to grant the app access using System Preferences > Security & Privacy > Privacy.

    The following launchd property list keys are affected: KeepAlivePathStateQueueDirectoriesSocketsSockPathNameStandardErrorPathStandardInPathStandardOutPath, and WatchPaths.

Localization

Known Issues

  • Certain languages might exhibit clipped or misaligned layout. (51068688, 50983852)
  • Certain languages might display unlocalized text. (47765173, 51196633)

Mac Catalyst

Known Issues

  • nativeScale might be inaccurate. Instead, get the scale factor from the local trait collection. (54009624)
  • MPMediaPickerController might not display the contents of your library. (51785735)
  • AppKit and Mac Catalyst apps are currently view-only clients of PencilKit. (51146823)
  • The UIScreen class’s isCaptured API isn’t currently supported. (48360589)
  • The current property on UIDevice and the OS Product Name is currently returned as iOS rather than macOS, which can affect diagnostic logs generated by your system. (49792004)
  • 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)
  • For Mac Catalyst apps to save to Photos Library, explicitly linking the Photos framework is required. (50781430)
  • Action and share extensions might exhibit visual anomalies. (51005363)
  • All assets at 3x scale factor are currently ignored when compiling the asset catalog for Mac Catalyst apps. 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)
  • CallKit CXAction instances might return an error. (51074735)
  • When creating a Mac Catalyst app from 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:

  1. Sign in to Apple Developer, then select Certificates, Identifiers, and Profiles.
  2. In the Identifiers section, select your iOS app identifier to edit.
  3. Check the Mac Catalyst capability to enable it, then click the Configure button.
  4. 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.
  5. In the Profiles section, click the + button to create a new profile, select ‘macOS App Development’, and click Continue.
  6. Select your iOS AppID from the popup, click Continue, and complete the rest of the profile creation flow. When finished, click the Download button.
  7. In Xcode, select your project to view the Project Editor and select your app’s target. Then select the Build Settings tab.
  8. Set the Derive Mac Catalyst Product Bundle Identifier setting to No.
  9. Expand the Product Bundle Identifier build setting to view its configurations. Next to the Debug configuration, click the + button to add a conditional value.
  10. 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.
  11. In the Signing & Capabilities tab, uncheck Automatically manage signing.
  12. For your macOS app, select Import Profile from the Provisioning Profile popup and then select the profile you downloaded earlier.

Resolved Issues