Xcode 11.4 Beta Release


Apple recently released Xcode 11.4 Beta version. You can update your apps with new features, and test your app against API changes.

New Features

  • Xcode 11.4 supports building and distributing macOS apps as universal purchases. To distribute your macOS app as a universal purchase, specify the same bundle identifier as your iOS app in the Xcode template assistant when creating a new project. If you gave an existing project, edit its bundle identifier in the Project Editor.
  • Universal purchase is enabled by default for new Max Catalyst apps created in Xcode 11.4. When you create a new Mac Catalyst app, it will use the same bundle identifier as your iOS app.
  • Automatic signing in Xcode 11.4 supports building Mac Catalyst apps with a custom bundle identifier. You can edit the bundle identifier of your app using the Signing & Capabilities tab in the Project Editor. If you choose to build your Mac Catalyst app with a custom bundle identifier that does not match the iOS app, you will not be able to distribute the app as a universal purchase.

Resolved Issue

Creating an Objective-C category file by choosing File > New > File no longer creates a file that includes an import of the AppKit framework.

Build System

In the build system the following features are new:
  • Build settings have a new evaluation operator, default, which you can use to specify the default value of a build setting if it evaluates to nil in the context of the evaluation. For example:
    1. $(SETTING:default=something)
    2. //If $(SETTING) is empty, then this expression evaluates to 'something'. The default value may itself be an expression containing build settings evaluations.
  • Building codeless kernel extensions with the new build system now requires that you set the GENERATE_KERNEL_MODULE_INFO_FILE build setting to NO.


In the Debugging section the following features are new:
  • The view debugger now presents a layout guide (UILayoutGuid, NSLayoutGuide) and their referencing constraints.
  • View debugging supports showing layers using the Show Layers menu item in the Editor menu.
  • The exception reason now surfaces as an editor annotation. You can inspect the Exception object in Variables View and find the backtrace of the original uncaught exception, if any, in the Debug Navigation.

Resolved Issues

  • Improved visibility of view outlines in the view debugger.