Xcode 12.2 Beta Release Notes
Update your apps to use new features, and test your apps against API changes.
Overview
Xcode 12.2 beta includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Big Sur 11. The Xcode 12.2 beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 beta requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.
General
New Features
-
When bringing iPad apps to macOS, you can now enable the “Optimize Interface for Mac” target setting to use native Mac controls and resolution. (56344940)
-
Xcode’s run destination menu now shows an Any Mac destination for Mac schemes. This is a new build destination that builds each target in the scheme for all of their supported architectures, regardless of the native architecture of the local Mac. (62736613)
-
Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094)
Known Issues
-
Building or running an iOS app with a macOS destination may fail if you’re building the app with a newer iOS SDK than your version of macOS supports. (68261281, 68714781, 68948002)
The failure may present in one of the following ways:
-
The application crashes on launch
-
Xcode displays an alert stating “The operation couldn’t be completed. (OSStatus error -10825.)”
-
Xcode displays an alert stating “Unable To Install”
Workaround: Change the iOS deployment target for the iOS app to a version supported by the version of macOS that you are using, or upgrade to a version of macOS that supports the iOS deployment target configured in the project. macOS 11.0 beta supports the iOS 14.0 deployment target, and macOS 10.15.6 supports the iOS 13.6 deployment target when running apps built using Mac Catalyst.
-
Apple Clang Compiler
Known Issues
-
On Macs with Apple silicon,
strip
,install_name_tool
andvtool
may corrupt the ad-hoc code signatures generated by the linker for arm64 Mach-O files. (51911417)Workaround: Run the following command to repair files these tools have touched:
codesign -s - --preserve-metadata=identifier,entitlements,flags,runtime -f <path to mach-O>
Build System
Resolved Issues
xcodebuild
no longer incorrectly double-escapes the output ofxcodebuild -showBuildSettings -json
. (63554669)
Core ML
Resolved Issues
- The Core ML editor’s Preview tab for sound classifier models now shows a classification result when you click on ‘Listen’. Also, when you add an audio file, clicking the Play button updates the timeline as the file plays. (67515312)
Devices
Resolved Issues
- You can debug a WatchKit App when an App Clip is added to its paired iOS App, even if that iOS App isn’t installed. (65784374) (FB8065876)
Known Issues
rvictl
hangs on macOS 11. (65205535)
Interface Builder
New Features
- Added support for Inline and Compact
UIDatePicker
styles. (65085323) (FB7847821)
Resolved Issues
-
Fixed the search field clipping on a navigation bar when first dragged from the object library. For existing navigation controllers in storyboards, you can correct clipping by selecting the navigation bar in the controller, and enable Size Inspector > Safe Area Relative Margins. (66566017) (FB8269384)
-
Fixed an issue that could cause an
NSTableView
to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478)
Organizer
Resolved Issues
- Thinning for “all compatible device variants” no longer causes export of a watchOS application for Ad Hoc or Development distribution to fail. (66637482)
Known Issues
- When the Organizer is first launched, the sidebar might become horizontally scrollable and the selected item may not be highlighted. (67498422)
Playgrounds
Known Issues
- Playgrounds may crash when presenting a live view on a Mac with Apple silicon. (68930351)
Previews
New Features
-
The new “Embed…” option in the action menu lets you embed in a user-specified View container. (51152198)
-
The action menu now includes an “Embed in ZStack” option. (56989502)
-
The Editor menu now includes Create Preview to create a
PreviewProvider
, and Create Library Item to create aLibraryContentProvider
. (67110969)
Resolved Issues
-
Fixed an issue that prevented previews from loading in projects with non-ASCII characters in their names, or in symbols within the project. (57260388) (FB7451792)
-
Previews correctly display interpolated strings, including for localized strings. (64278576)
-
Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599)
-
On Intel-based Macs, previews now load for iOS, watchOS, or tvOS projects that depend on libraries without an arm64 slice. (65890022)
-
The previews canvas now automatically shows and hides based on the presence of a
PreviewProvider
in the file being edited. (67083504, 67693254) -
The canvas displays error details when a preview fails to launch due to the underlying app crashing, such as when the app does not have an
EnvironmentObject
. (67955924)
Known Issues
-
Xcode doesn’t provide previews for macOS widget extensions. (57990060)
-
Using the device name “Mac Catalyst” in a
PreviewDevice
modifier may cause the preview to fail. (65305155)Workaround: Remove the
previewDevice
modifier and switch to the “My Mac” run destination.
Signing and Distribution
New Features
-
Xcode can now sign iOS apps for development or distribution to Macs with Apple silicon. You must register your Mac with Apple silicon on the Developer website in order to run Mac, iPhone, or iPad apps. Registration requires your Mac’s hardware identifier, which you can find in Xcode’s error message or in the System Information app’s Hardware > Provisioning UDID field. Once you’ve registered your Mac, you can use Xcode’s automatic signing or manually sign apps to run on the device. (54476962, 65752056)
-
Xcode can sign and provision an archived iOS app to run on your Mac with Apple silicon. Find the archive in the Organizer window, click on Distribute App, select either “Ad Hoc” or “Development,” choose your distribution options, select “Automatically manage signing,” and proceed through the remainder of the distribution assistant to create an IPA. Once you’ve created the IPA, you can transfer it to your Mac with Apple silicon, and double-click on it to install. During the app’s first launch, you will be prompted to open the Security & Privacy preferences pane to enable the app. To see the launch button in the preferences pane, make sure your Mac is configured to only allow apps from the App Store and identified developers. (68513041, 68528315).
Resolved Issues
-
When distributing an iOS archive using the Ad Hoc or Development method, Xcode validates that Macs with Apple silicon are included in the provisioning profile generated by automatic signing. (66803918)
-
Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321)
Known Issues
- An app built with Mac Catalyst and signed to run locally on macOS may fail to run with the Mac (Rosetta) run destination. (64421496)
Simulator
New Features
- Simulated watchOS 7 devices support 64-bit processes. To verify watchOS projects are 64-bit clean in Simulator, make sure
ARCHS
is set to its default value. (54654060, 66352876)Note
Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which don’t support 32-bit code.
Known Issues
-
Simulators for iOS 13, tvOS 13, and watchOS 6 or earlier don’t run on the Developer Transition Kit, even though Xcode Preferences allows you to download these older runtimes. Future Macs with Apple silicon will support some older iOS and tvOS Simulators. (66115743) (FB8157217)
-
SwiftUI projects using StoreKit fail to build in simulated watchOS devices. (68931021, 68935233)
Workaround: Build and run on a device.
Deprecations
- Simulators for watchOS 6 or earlier require 32-bit processes that aren’t supported on Macs with Apple silicon. (66352760)
StoreKit
Resolved Issues
- Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368)
Swift
Known Issues
- The compiler may crash when a function builder body contains an empty switch statement. This issue can also cause a SourceKit crash while typing a switch statement in a SwiftUI view body. (65983237) (FB8111944)
Swift Packages
Known Issues
-
Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067)
Workaround: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices.
Testing
Known Issues
-
Xcode can’t run UI tests for an iOS app on Apple silicon. If the active scheme or test plan includes both unit and UI tests, Xcode skips the UI tests, and logs a message that the UI tests were skipped in the test-activity log. (60059698)
-
Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529)
-
iOS unit tests fail to launch on Apple silicon if the test target’s Host Application is set to None. (65309328)
Workaround: Set the host application to an iOS application target.