├── README.md ├── Xcode12.0.1.md ├── Xcode12.1.1RC.md ├── Xcode12.1.md ├── Xcode12.2.md ├── Xcode12.2Beta1.md ├── Xcode12.2Beta2.md ├── Xcode12.2Beta3.md ├── Xcode12.2RC.md ├── Xcode12.3.md ├── Xcode12.3Beta1.md ├── Xcode12.3RC.md ├── Xcode12.4.md ├── Xcode12.4RC.md ├── Xcode12.5.1.md ├── Xcode12.5.md ├── Xcode12.5Beta1.md ├── Xcode12.5Beta2.md ├── Xcode12.5Beta3.md ├── Xcode12.5RC.md ├── Xcode12.md ├── Xcode12Beta1.md ├── Xcode12Beta2.md ├── Xcode12Beta3.md ├── Xcode12Beta4.md ├── Xcode12Beta5.md ├── Xcode12Beta6.md ├── Xcode12GMSeed.md ├── Xcode12UABeta2.md └── _config.yml /README.md: -------------------------------------------------------------------------------- 1 | # Xcode Beta Release Notes 2 | 3 | ### Xcode 12.5 4 | 5 | Release notes | Source | Captured at | Diffs 6 | -|-|-|- 7 | [Xcode 12.5 Beta](Xcode12.5Beta1.md) | [Xcode 12.5 Beta Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_5-beta-release-notes) | 02/07/2021 6:33 AM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FBeta1%5E..Xcode12.5%2FBeta1?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FBeta1%5E..Xcode12.5%2FBeta1?short_path=23dfb56#diff-23dfb56bb61784a83ce6dfca035ffb087253e87b05754cc43f79e5371e04fb32) | 8 | [Xcode 12.5 Beta 2](Xcode12.5Beta2.md) | [Xcode 12.5 Beta 2 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_5-beta-release-notes) | 03/02/2021 6:15 AM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FBeta2%5E..Xcode12.5%2FBeta2?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FBeta2%5E..Xcode12.5%2FBeta2?short_path=8f4e725#diff-8f4e725b15fe561cb2672afc05debcc10ca59721e3cbc7ad1965d182701f7319) | 9 | [Xcode 12.5 Beta 3](Xcode12.5Beta3.md) | [Xcode 12.5 Beta 3 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_5-beta-release-notes) | 03/11/2021 3:10 PM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FBeta3%5E..Xcode12.5%2FBeta3?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FBeta3%5E..Xcode12.5%2FBeta3?short_path=f8c830e#diff-f8c830e62214dc8ef7eab1a2d58fc12a62f69c486333d2b8b7ad733ed13f044d) | 10 | [Xcode 12.5 RC](Xcode12.5RC.md) | [Xcode 12.5 RC Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_5-release-notes) | 04/23/2021 4:58 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FRC%5E..Xcode12.5%2FRC?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FRC%5E..Xcode12.5%2FRC?short_path=0438d49#diff-0438d491b9633e185b5e268eda7975f05e1b569fbe9beaabe4040b7ee923529e) | 11 | [Xcode 12.5](Xcode12.5.md) | [Xcode 12.5 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_5-release-notes) | 07/09/2021 6:20 AM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FRelease%5E..Xcode12.5%2FRelease?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.5%2FRelease%5E..Xcode12.5%2FRelease?short_path=b3efccb#diff-b3efccb2a6fdfba123c640032f8f6e12f0a8a81ee0c13272cf124020f6901ba2) | 12 | [Xcode 12.5.1](Xcode12.5.1.md) | [Xcode 12.5.1 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_5_1-release-notes) | 07/09/2021 6:50 AM PDT | N/A | 13 | 14 | 15 | ### Xcode 12.4 16 | 17 | Release notes | Source | Captured at | Diffs 18 | -|-|-|- 19 | [Xcode 12.4 RC](Xcode12.4RC.md) | [Xcode 12.4 RC Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_4-release-notes) | 01/25/2021 3:32 PM PST | N/A | 20 | [Xcode 12.4](Xcode12.4.md) | [Xcode 12.4 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_4-release-notes) | 02/07/2021 6:33 AM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.4%2FRelease%5E..Xcode12.4%2FRelease?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.4%2FRelease%5E..Xcode12.4%2FRelease?short_path=db54291#diff-db54291f957fc747e17403088c15add1c372ce3bfc3c26db09a40e5815272281) | 21 | 22 | 23 | ### Xcode 12.3 24 | 25 | Release notes | Source | Captured at | Diffs 26 | -|-|-|- 27 | [Xcode 12.3 Beta](Xcode12.3Beta1.md) | [Xcode 12.3 Beta Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_3-beta-release-notes) | 11/13/2020 7:07 AM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.3%2FBeta1%5E..Xcode12.3%2FBeta1?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.3%2FBeta1%5E..Xcode12.3%2FBeta1?short_path=c6207c2#diff-c6207c2b56c5e6ee453c19129bf25cdb7b766841c8d1312b4392b2e9ff3fa18f) | 28 | [Xcode 12.3 RC](Xcode12.3RC.md) | [Xcode 12.3 RC Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_3-release-notes) | 12/14/2020 9:57 AM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.3%2FRC%5E..Xcode12.3%2FRC?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.3%2FRC%5E..Xcode12.3%2FRC?short_path=50bb2c0#diff-50bb2c0b37eed62830cf6558d9c3f8f99652152cfcc882ae3efe40b3eb3aaf45) | 29 | [Xcode 12.3](Xcode12.3.md) | [Xcode 12.3 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_3-release-notes) | 12/30/2020 10:06 PM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.3%2FRelease%5E..Xcode12.3%2FRelease?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.3%2FRelease%5E..Xcode12.3%2FRelease?short_path=3c7b607#diff-3c7b607142996cb80f89f508f7b6e826cb39474a447fa794ad18623e78a49e2a) | 30 | 31 | ### Xcode 12.2 32 | 33 | Release notes | Source | Captured at | Diffs 34 | -|-|-|- 35 | [Xcode 12.2 Beta](Xcode12.2Beta1.md) | [Xcode 12.2 Beta Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-beta-release-notes) | 09/19/2020 6:05 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FBeta1%5E..Xcode12.2%2FBeta1?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FBeta1%5E..Xcode12.2%2FBeta1?short_path=655a714#diff-655a7146fb495afcfca2897f7ae4a685) | 36 | [Xcode 12.2 Beta 2](Xcode12.2Beta2.md) | [Xcode 12.2 Beta 2 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-beta-release-notes) | 09/29/2020 11:42 AM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FBeta2%5E..Xcode12.2%2FBeta2?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FBeta2%5E..Xcode12.2%2FBeta2?short_path=91fba1c#diff-91fba1ca60ba0cd97a840ecfee4ccb82) | 37 | [Xcode 12.2 Beta 3](Xcode12.2Beta3.md) | [Xcode 12.2 Beta 3 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-beta-release-notes) | 10/27/2020 10:30 AM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FBeta3%5E..Xcode12.2%2FBeta3?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FBeta3%5E..Xcode12.2%2FBeta3?short_path=69282c1#diff-69282c10b555c9744382cd8791a2b8919f812247690513f05554799c03ea58a8) | 38 | [Xcode 12.2 RC](Xcode12.2RC.md) | [Xcode 12.2 RC Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-release-notes) | 11/05/2020 8:27 PM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FRC%5E..Xcode12.2%2FRC?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FRC%5E..Xcode12.2%2FRC?short_path=326fafd#diff-326fafd6dd5cd34b13813747bf0cbb13330e390e10528a4b0d7bcbc1bc527395) | 39 | [Xcode 12.2](Xcode12.2.md) | [Xcode 12.2 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-release-notes) | 11/13/2020 7:07 AM PST | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FRelease%5E..Xcode12.2%2FRelease?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.2%2FRelease%5E..Xcode12.2%2FRelease?short_path=1a8ff42#diff-1a8ff42fd30a9b3942c22e820c90c26a4578280a290b0f558f65df8c7d2fb19c) | 40 | 41 | ### Xcode 12.1 42 | 43 | Release notes | Source | Captured at | Diffs 44 | -|-|-|- 45 | [Xcode 12.1](Xcode12.1.md) | [Xcode 12.1 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_1-release-notes) | 10/27/2020 10:31 AM PDT | N/A | 46 | [Xcode 12.1.1 RC](Xcode12.1.1RC.md) | [Xcode 12.1.1 RC Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_1_1-release-notes) | 10/31/2020 4:00 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12.1.1%2FRC%5E..Xcode12.1.1%2FRC?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12.1.1%2FRC%5E..Xcode12.1.1%2FRC?short_path=620567a#diff-620567aba1ef91e23068e444e25ec10fe60a7f0f8daa5fbf69eea45b1e3eaf30) | 47 | 48 | ### Xcode 12 49 | 50 | Release notes | Source | Captured at | Diffs 51 | -|-|-|- 52 | [Xcode 12 Beta 1](Xcode12Beta1.md) | [Xcode 12 Beta Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes) | 06/22/2020 3:29 PM PDT | N/A | 53 | [Xcode 12 Beta 2](Xcode12Beta2.md) | [Xcode 12 Beta 2 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes) | 07/08/2020 1:17 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta2%5E..Xcode12%2FBeta2?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta2%5E..Xcode12%2FBeta2?short_path=b74c4cf#diff-b74c4cf496fb2d04bb9f2a3a28f0c711) | 54 | [Xcode 12 for macOS Universal Apps Beta 2](Xcode12UABeta2.md) | [Xcode 12 for macOS Universal Apps Beta 2 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-for-macos-universal-apps-beta-release-notes) | 07/12/2020 3:23 PM PDT | N/A | 55 | [Xcode 12 Beta 3](Xcode12Beta3.md) | [Xcode 12 Beta 3 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes) | 07/22/2020 9:09 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta3%5E..Xcode12%2FBeta3?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta3%5E..Xcode12%2FBeta3?short_path=09123d6#diff-09123d60aad40b34e594737bd2297123) | 56 | [Xcode 12 Beta 4](Xcode12Beta4.md) | [Xcode 12 Beta 4 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes) | 08/04/2020 8:29 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta4%5E..Xcode12%2FBeta4?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta4%5E..Xcode12%2FBeta4?short_path=8a1565e#diff-8a1565e409d886e4531693f22c555857) | 57 | [Xcode 12 Beta 5](Xcode12Beta5.md) | [Xcode 12 Beta 5 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes) | 08/18/2020 7:44 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta5%5E..Xcode12%2FBeta5?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta5%5E..Xcode12%2FBeta5?short_path=898d0cd#diff-898d0cd4e08b7bf6944249878d0e4254) | 58 | [Xcode 12 Beta 6](Xcode12Beta6.md) | [Xcode 12 Beta 6 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes) | 08/25/2020 9:45 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta6%5E..Xcode12%2FBeta6?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FBeta6%5E..Xcode12%2FBeta6?short_path=38be202#diff-38be202fbd79d54c55d9d634e68b8f46) | 59 | [Xcode 12 GM Seed](Xcode12GMSeed.md) | [Xcode 12 GM Seed Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes) | 09/15/2020 12:47 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FGMSeed%5E..Xcode12%2FGMSeed?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FGMSeed%5E..Xcode12%2FGMSeed?short_path=a6e3fcd#diff-a6e3fcd8d5faf6c1b927060d059eaf1f) [🛑](#render-failure) | 60 | [Xcode 12](Xcode12.md) | [Xcode 12 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes) | 09/19/2020 5:56 PM PDT | [`Source`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FRelease%5E..Xcode12%2FRelease?diff=split) [`Rich`](https://github.com/evnik/XcodeRN/compare/Xcode12%2FRelease%5E..Xcode12%2FRelease?short_path=fc702d0#diff-fc702d0704a3e1597e94b97687f118fe) | 61 | [Xcode 12.0.1](Xcode12.0.1.md) | [Xcode 12.0.1 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12_0_1-release-notes) | 09/29/2020 11:45 AM PDT | N/A | 62 | 63 |

🛑 − GitHu󠀠󠀠b might be unable to render this diff

64 | 65 | ### Credits 66 | All content was captured from Apple [Xcode Release Notes](https://developer.apple.com/documentation/xcode-release-notes/). 67 | Idea - [Maxim Ananov](https://medium.com/@pointum/how-to-compare-xcode-beta-release-notes-66ce00a2e250) 68 | HTML to Markdown conversion - [Browserling](https://www.browserling.com/tools/html-to-markdown) 69 | Markdown editor - [JetBrains AppCode](https://www.jetbrains.com/objc/) 70 | -------------------------------------------------------------------------------- /Xcode12.0.1.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.0.1 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.0.1 includes SDKs for iOS 14, iPadOS 14, tvOS 14, watchOS 7, and macOS Catalina 10.15.6. The Xcode 12.0.1 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.0.1 requires an Intel-based Mac running macOS Catalina 10.15.4 or later. 8 | 9 | ### General 10 | 11 | #### Resolved 12 | 13 | * Opening the Developer Documentation window no longer causes Xcode to crash. (66690089) 14 | -------------------------------------------------------------------------------- /Xcode12.1.1RC.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.1.1 RC Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.1.1 RC includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Catalina 10.15.6. The Xcode 12.1.1 release candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.1.1 RC requires an Intel-based Mac running macOS Catalina 10.15.4 or later. 8 | 9 | > ##### Note 10 | > The term “Release Candidate” (RC) replaces “GM seed” and indicates this version is near final. 11 | 12 | ### Devices 13 | 14 | #### Known Issues 15 | 16 | * After installing Xcode, you must reboot your Mac before you can use `rvictl`. (70403127) 17 | 18 | #### Resolved Issues 19 | 20 | * You can now debug a WatchKit App when an App Clip is added to its paired iOS App, even if that iOS App isn’t installed. (65784374, 70152797) (FB8065876) 21 | 22 | * Fixed a crash that could occur when you click the View Device Logs button for a device you select in the Devices and Simulators window. (66303792, 70152877) 23 | 24 | ### Source Editor 25 | 26 | #### Resolved Issues 27 | 28 | * The source editor properly displays errors and warnings from Run Script build phases that use relative paths; clicking the issue in the Issues navigator takes you to the issue in the source editor. (43290386, 70152655) (FB5420750) 29 | -------------------------------------------------------------------------------- /Xcode12.1.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.1 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.1 includes SDKs for iOS 14.1, iPadOS 14.1, tvOS 14, watchOS 7, and macOS Catalina 10.15.6. The Xcode 12.1 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.1 requires an Intel-based Mac running macOS Catalina 10.15.4 or later. 8 | 9 | ### General 10 | 11 | #### Resolved 12 | 13 | * Fixed a bitcode issue that could cause App Store processing to fail, resulting in an “ITMS-90562: Invalid Bundle” error in App Store Connect. (69121373) (FB8708120) 14 | 15 | ### Metal 16 | 17 | #### Resolved 18 | 19 | * Fixed an issue that could cause Metal Debugger to show empty Summary and Memory reports when debugging. (68599136) 20 | -------------------------------------------------------------------------------- /Xcode12.2.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.2 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.2 includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Big Sur 11. The Xcode 12.2 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 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. 8 | 9 | ### General 10 | 11 | #### New Features 12 | 13 | * When bringing iPad apps to macOS using Mac Catalyst, you can now enable the “Optimize Interface for Mac” target setting to use native Mac controls and resolution. (56344940) 14 | 15 | * Xcode’s scheme menu now includes 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) 16 | 17 | * Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094) 18 | 19 | #### Resolved Issues 20 | 21 | * You can now upload an app for App Store submission or Developer ID notarization even if Xcode’s path contains a space. (69009477) 22 | 23 | #### Known Issues 24 | 25 | * Xcode doesn’t prevent you from selecting a macOS destination for an iOS app when the macOS destination doesn’t support the iOS app’s deployment target. (68261281, 68714781, 68948002) 26 | 27 | If you attempt to launch the app through Xcode on an unsupported macOS destination, Xcode displays the message “The app is incompatible with the current version of macOS. Please check the app’s deployment target.” 28 | 29 | **Workaround**: Change the iOS deployment target for the iOS app to a version supported by the macOS destination, or upgrade to a version of macOS that supports the iOS deployment target configured in the project. Xcode must be running on macOS 11 or later to build an app with an iOS 14 or later deployment target. 30 | 31 | ### Build System 32 | 33 | #### Resolved Issues 34 | 35 | * When building on the command line, projects now build for all of their configured architectures instead of the first architecture in the list, when `ONLY_ACTIVE_ARCH` is set to `YES` and the `-destination` option to `xcodebuild` isn’t being used. (69242858) 36 | 37 | ### Core ML 38 | 39 | #### Resolved Issues 40 | 41 | * 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) 42 | 43 | ### Create ML 44 | 45 | #### New Features 46 | 47 | * You can explore and interact with models during training using the new Training Control. You can pause, save, resume, or extend the training process. This feature requires macOS 11 or later. (45241965) 48 | 49 | * You can train deep neural networks to stylize photos and videos in real time using the new Style Transfer template. This template requires macOS 11 or later. (55848835) 50 | 51 | * You can train neural networks to classify a single person’s actions in a video clip using the new Action Classification template. This template requires macOS 11 or later. (56622350) 52 | 53 | * You can improve model accuracy when training data is limited using the Object Detection template’s new Transfer Learning option. This feature requires macOS 11 or later. (58627183) 54 | 55 | * The Word Tagger template’s new Transfer Learning option uses dynamic word embeddings to help improve model accuracy when training data is limited. This feature requires macOS 11 or later. (59281335) 56 | 57 | ### Debugging 58 | 59 | #### Resolved Issues 60 | 61 | * Improved Xcode’s error message for app-launch failures when attempting to launch multiple instances of an app built with Mac Catalyst, or an iOS app on Mac, with the same bundle identifier. (66691875) 62 | 63 | * Fixed an issue where Quick Look popovers for variables in the Xcode debugger were sometimes too small and truncated their contents. (67580519) 64 | 65 | #### Known Issues 66 | 67 | * Xcode fails to install an app with multibyte UTF-8 characters in its bundle name, and presents an error of “failed to hardlink copy”. (69887557) (FB8766413) 68 | 69 | **Workaround**: Use only uppercase letters (A-Z), lowercase letters (a-z), hyphens (-), underscores(__), and spaces in an app’s bundle name. By default, an app’s bundle name matches its target name, which you can change in the project editor. 70 | 71 | Note that this issue doesn’t impact an app’s Bundle ID or Bundle Display Name, only the name of the app’s `.app` folder on disk, which isn’t usually seen by users. 72 | 73 | * When running in macOS 11, Xcode’s navigators lay out at the wrong sizes. The breakpoint navigator may not display the state of the breakpoint, and the breakpoint editor popover may never become visible. (70063096) 74 | 75 | **Workaround:** Use macOS 11.0.1 or later. 76 | 77 | ### Devices 78 | 79 | #### Known Issues 80 | 81 | * Xcode may spontaneously lose device configuration information for an Apple Watch. This may cause Xcode to crash or display an error stating that your app “cannot be installed on (null)”. (54768855) 82 | 83 | **Workaround**: On the Mac you’re using for development, run the following command in Terminal: 84 | ``` 85 | sudo killall -9 usbmuxd 86 | ``` 87 | After running this command, restart Xcode. 88 | 89 | * Xcode 11 and 12 may fail to prepare a wirelessly connected iOS device for debugging with the error “Failed _shouldMakeReadyForDevelopment check”. Even if Xcode prepares the device successfully, the Devices and Simulators window may continue to display stale errors for the device’s status. (61227501) (FB7649607) 90 | 91 | **Workaround**: Keep the wirelessly connected iOS device unlocked while deploying or debugging an app on the device. Restart Xcode if you want to clear stale device preparation errors. Whenever possible, use a USB cable instead of a wireless connection between your Mac and iOS device. 92 | 93 | * Xcode may fail to copy symbols from iOS devices, and fail to prepare the devices for debugging, then take several minutes to attach to the debugger and reach breakpoints that would normally be reached immediately on launch. (68221778) (FB8611135) 94 | 95 | **Workaround**: Re-copy symbols from your devices by following these steps. 96 | 97 | 1. Disconnect all iOS devices from your Mac. 98 | 99 | 2. Delete this directory: `~/Library/Developer/Xcode/iOS DeviceSupport` 100 | 101 | 3. Open the Devices and Simulators window in Xcode. 102 | 103 | 4. Use a USB cable to connect any arm64e iOS devices (iPhone XS, iPhone XS Max, or later). 104 | 105 | 5. Wait for the Devices and Simulators window to finish copying symbols for these devices. 106 | 107 | 6. Use a USB cable to connect any arm64 iOS devices and copy their symbols. 108 | 109 | * After installing Xcode, you must reboot your Mac before you can use `rvictl`. (70403127) 110 | 111 | #### Resolved Issues 112 | 113 | * You can now debug a WatchKit App when an App Clip is added to its paired iOS App, even if that iOS App isn’t installed. (65784374, 70152797) (FB8065876) 114 | 115 | * Fixed a crash that could occur when you click the View Device Logs button for a device you select in the Devices and Simulators window. (66303792, 70152877) 116 | 117 | ### Documentation Viewer 118 | 119 | #### Known Issues 120 | 121 | * Xcode may crash when you open the Developer Documentation window if you install and run Xcode outside of `/Applications`. (70631583) 122 | 123 | **Workaround**: Move Xcode to `/Applications` and relaunch. 124 | 125 | ### Interface Builder 126 | 127 | #### New Features 128 | 129 | * Interface Builder now supports Inline and Compact [`UIDatePicker`](https://developer.apple.com/documentation/uikit/uidatepicker) styles. (65085323) (FB7847821) 130 | 131 | #### Resolved Issues 132 | 133 | * Enabled safe area relative margins by default for navigation bars of [`UINavigationController`](https://developer.apple.com/documentation/uikit/uinavigationcontroller). 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) 134 | 135 | * Fixed an issue that could cause an [`NSTableView`](https://developer.apple.com/documentation/appkit/nstableview) to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478) 136 | 137 | ### Organizer 138 | 139 | #### Resolved Issues 140 | 141 | * You can now export a watchOS app for Ad Hoc or Development distribution with thinning enabled for “All compatible device variants”. (66637482) 142 | 143 | ### Previews 144 | 145 | #### New Features 146 | 147 | * The action menu has a new “Embed…” menu item that lets you specify the type of View container in which to embed the selected view hierarchy. (51152198) 148 | 149 | * The action menu has a new “Embed in ZStack” menu item. (56989502) 150 | 151 | * Xcode provides SwiftUI previews for macOS Widget extensions. (57990060) 152 | 153 | * The SwiftUI previews canvas now automatically shows and hides based on the presence of a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider) in the file you’re editing. (67083504, 67693254) 154 | 155 | * The Editor menu now includes Create Preview to create a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider), and Create Library Item to create a [`LibraryContentProvider`](https://developer.apple.com/documentation/developertoolssupport/librarycontentprovider). (67110969) 156 | 157 | #### Resolved Issues 158 | 159 | * 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) 160 | 161 | * Previews correctly display interpolated strings, including for localized strings. (64278576) 162 | 163 | * Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599) 164 | 165 | * The canvas now displays error details when a preview fails to launch due to the underlying app crashing, such as when the app doesn’t have an [`EnvironmentObject`](https://developer.apple.com/documentation/swiftui/environmentobject). (67955924) 166 | 167 | #### Known Issues 168 | 169 | * Using the device name “Mac Catalyst” in a SwiftUI [`PreviewDevice`](https://developer.apple.com/documentation/swiftui/previewdevice) modifier may cause the preview to fail to update. Instead, the banner displays the error “Cannot preview in this file – rendering service was interrupted”. (65305155) 170 | 171 | **Workaround**: Remove the `previewDevice` modifier and switch to the “My Mac” run destination. 172 | 173 | ### RealityKit 174 | 175 | #### Known Issues 176 | 177 | * Xcode can’t build an app with Mac Catalyst if the app imports the RealityKit framework (70102384) 178 | 179 | ### Signing and Distribution 180 | 181 | #### New Features 182 | 183 | * 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](https://developer.apple.com/) 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) 184 | 185 | * 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, macOS prompts you to open the Security & Privacy preferences pane and 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). 186 | 187 | #### Resolved Issues 188 | 189 | * Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321) 190 | 191 | * Xcode can now distribute an archive containing an App Clip even if the parent app’s application identifier doesn’t begin with a Team ID. (67401115) (FB8461092) 192 | 193 | ### Simulator 194 | 195 | #### New Features 196 | 197 | * 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) 198 | > ##### Note 199 | > Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which doesn’t support 32-bit code. 200 | 201 | #### Resolved Issues 202 | 203 | * Fixed an issue that could cause apps linking against [Core NFC](https://developer.apple.com/documentation/corenfc) to crash with an error of “Library not loaded” from `dyld`. (67961203) 204 | 205 | #### Known Issues 206 | 207 | * Simulators may not be available when running command-line tools like `simctl` or `xcodebuild` from a non-root LaunchDaemon, or when launching as a different user from the current user (for example, with `sudo` or `launchctl`). (62188195) 208 | 209 | * Simulator runtimes for iOS 13, tvOS 13, and watchOS 6 and earlier don’t work on the Developer Transition Kit. Preferences offers these runtimes for download, but creating a simulated device from one of these runtimes fails, claiming the runtime is unavailable. Other Macs with Apple silicon support a limited set of older simulator runtimes for iOS and tvOS. (66115743, 70472441) (FB8157217) 210 | 211 | #### Deprecations 212 | 213 | * Simulators for watchOS 6 or earlier aren’t supported on Macs with Apple silicon. (66352760) 214 | 215 | ### Source Editor 216 | 217 | #### Resolved Issues 218 | 219 | * The source editor properly displays errors and warnings from Run Script build phases that use relative paths; clicking the issue in the Issues navigator takes you to the issue in the source editor. (43290386, 70152655) (FB5420750) 220 | 221 | ### StoreKit 222 | 223 | #### Resolved Issues 224 | 225 | * Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368) 226 | 227 | ### Swift 228 | 229 | #### Resolved Issues 230 | 231 | * Fixed a compiler crash that could occur when a function builder body contains an empty switch statement. This issue could also cause a SourceKit crash while typing a switch statement in a SwiftUI view body. (65983237) (FB8111944) 232 | 233 | * Fixed a regression that caused property wrappers to leak objects during their initialization. (69023636) 234 | 235 | #### Known Issues 236 | 237 | * Compiling a project with Mac Catalyst that imports [OSLog](https://developer.apple.com/documentation/oslog) from Swift may fail. (68597591) 238 | 239 | **Workaround:** Consider importing `os.log` and similar services directly, or guarding the `OSLog` import with a `targetEnvironment` compiler directive. 240 | 241 | ### Swift Packages 242 | 243 | #### Known Issues 244 | 245 | * Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067) 246 | 247 | **Workaround**: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices. 248 | 249 | ### Testing 250 | 251 | #### Known Issues 252 | 253 | * 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) 254 | 255 | * Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529) 256 | 257 | * iOS unit tests fail to launch on Apple silicon if the test target’s host application is set to None. (65309328) 258 | 259 | **Workaround**: In the General tab of the test target’s project settings, set the host application to an iOS application target. 260 | 261 | * Test Runner fails to re-launch on older simulator runtimes when the test hangs and times out. (68288321) 262 | 263 | **Workaround**: Fix the test that is hanging, or use a newer simulator runtime version. 264 | -------------------------------------------------------------------------------- /Xcode12.2Beta1.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.2 Beta Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | 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. 8 | 9 | ### General 10 | 11 | #### New Features 12 | 13 | * 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) 14 | 15 | * 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) 16 | 17 | * Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094) 18 | 19 | #### Known Issues 20 | 21 | * 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) 22 | 23 | The failure may present in one of the following ways: 24 | 25 | * The application crashes on launch 26 | 27 | * Xcode displays an alert stating “The operation couldn’t be completed. (OSStatus error -10825.)” 28 | 29 | * Xcode displays an alert stating “Unable To Install” 30 | 31 | **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. 32 | 33 | ### Apple Clang Compiler 34 | 35 | #### Known Issues 36 | 37 | * On Macs with Apple silicon, `strip`, `install_name_tool` and `vtool` may corrupt the ad-hoc code signatures generated by the linker for arm64 Mach-O files. (51911417) 38 | 39 | **Workaround**: Run the following command to repair files these tools have touched: 40 | ``` 41 | codesign -s - --preserve-metadata=identifier,entitlements,flags,runtime -f 42 | ``` 43 | 44 | ### Build System 45 | 46 | #### Resolved Issues 47 | 48 | * `xcodebuild` no longer incorrectly double-escapes the output of `xcodebuild -showBuildSettings -json`. (63554669) 49 | 50 | ### Core ML 51 | 52 | #### Resolved Issues 53 | 54 | * 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) 55 | 56 | ### Devices 57 | 58 | #### Resolved Issues 59 | 60 | * 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) 61 | 62 | #### Known Issues 63 | 64 | * `rvictl` hangs on macOS 11. (65205535) 65 | 66 | ### Interface Builder 67 | 68 | #### New Features 69 | 70 | * Added support for Inline and Compact [`UIDatePicker`](https://developer.apple.com/documentation/uikit/uidatepicker) styles. (65085323) (FB7847821) 71 | 72 | #### Resolved Issues 73 | 74 | * 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) 75 | 76 | * Fixed an issue that could cause an [`NSTableView`](https://developer.apple.com/documentation/appkit/nstableview) to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478) 77 | 78 | ### Organizer 79 | 80 | #### Resolved Issues 81 | 82 | * Thinning for “all compatible device variants” no longer causes export of a watchOS application for Ad Hoc or Development distribution to fail. (66637482) 83 | 84 | #### Known Issues 85 | 86 | * When the Organizer is first launched, the sidebar might become horizontally scrollable and the selected item may not be highlighted. (67498422) 87 | 88 | ### Playgrounds 89 | 90 | #### Known Issues 91 | 92 | * Playgrounds may crash when presenting a live view on a Mac with Apple silicon. (68930351) 93 | 94 | ### Previews 95 | 96 | #### New Features 97 | 98 | * The new “Embed…” option in the action menu lets you embed in a user-specified View container. (51152198) 99 | 100 | * The action menu now includes an “Embed in ZStack” option. (56989502) 101 | 102 | * The Editor menu now includes Create Preview to create a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider), and Create Library Item to create a [`LibraryContentProvider`](https://developer.apple.com/documentation/developertoolssupport/librarycontentprovider). (67110969) 103 | 104 | #### Resolved Issues 105 | 106 | * 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) 107 | 108 | * Previews correctly display interpolated strings, including for localized strings. (64278576) 109 | 110 | * Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599) 111 | 112 | * On Intel-based Macs, previews now load for iOS, watchOS, or tvOS projects that depend on libraries without an arm64 slice. (65890022) 113 | 114 | * The previews canvas now automatically shows and hides based on the presence of a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider) in the file being edited. (67083504, 67693254) 115 | 116 | * 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`](https://developer.apple.com/documentation/swiftui/environmentobject). (67955924) 117 | 118 | #### Known Issues 119 | 120 | * Xcode doesn’t provide previews for macOS widget extensions. (57990060) 121 | 122 | * Using the device name “Mac Catalyst” in a [`PreviewDevice`](https://developer.apple.com/documentation/swiftui/previewdevice) modifier may cause the preview to fail. (65305155) 123 | 124 | **Workaround**: Remove the `previewDevice` modifier and switch to the “My Mac” run destination. 125 | 126 | ### Signing and Distribution 127 | 128 | #### New Features 129 | 130 | * 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](https://developer.apple.com) 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) 131 | 132 | * 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). 133 | 134 | #### Resolved Issues 135 | 136 | * 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) 137 | 138 | * Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321) 139 | 140 | #### Known Issues 141 | 142 | * An app built with Mac Catalyst and signed to run locally on macOS may fail to run with the Mac (Rosetta) run destination. (64421496) 143 | 144 | ### Simulator 145 | 146 | #### New Features 147 | 148 | * 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) 149 | > ##### Note 150 | > Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which don’t support 32-bit code. 151 | 152 | #### Known Issues 153 | 154 | * 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) 155 | 156 | * SwiftUI projects using StoreKit fail to build in simulated watchOS devices. (68931021, 68935233) 157 | 158 | **Workaround**: Build and run on a device. 159 | 160 | #### Deprecations 161 | 162 | * Simulators for watchOS 6 or earlier require 32-bit processes that aren’t supported on Macs with Apple silicon. (66352760) 163 | 164 | ### StoreKit 165 | 166 | #### Resolved Issues 167 | 168 | * Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368) 169 | 170 | ### Swift 171 | 172 | #### Known Issues 173 | 174 | * 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) 175 | 176 | ### Swift Packages 177 | 178 | #### Known Issues 179 | 180 | * Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067) 181 | 182 | **Workaround**: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices. 183 | 184 | ### Testing 185 | 186 | #### Known Issues 187 | 188 | * 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) 189 | 190 | * Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529) 191 | 192 | * iOS unit tests fail to launch on Apple silicon if the test target’s Host Application is set to None. (65309328) 193 | 194 | **Workaround**: Set the host application to an iOS application target. 195 | -------------------------------------------------------------------------------- /Xcode12.2Beta2.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.2 Beta 2 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.2 beta 2 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 2 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 beta 2 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. 8 | 9 | ### General 10 | 11 | #### Known Issues 12 | 13 | * 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) 14 | 15 | The failure may present in one of the following ways: 16 | 17 | * The application crashes on launch 18 | 19 | * Xcode displays an alert stating “The operation couldn’t be completed. (OSStatus error -10825.)” 20 | 21 | * Xcode displays an alert stating “Unable To Install” 22 | 23 | **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. 24 | 25 | * You can again upload an app for App Store submission or Developer ID notarization using an Xcode located at a path that contains a space. (69009477) 26 | 27 | ### Apple Clang Compiler 28 | 29 | #### Resolved Issues 30 | 31 | * Fixed an issue that caused `strip`, `install_name_tool` and `vtool` to corrupt the ad-hoc code signatures generated by the linker for arm64 Mach-O files. (51911417) 32 | 33 | ### Devices 34 | 35 | #### Resolved Issues 36 | 37 | * Fixed a hang in `rvictl` when running on macOS 11. (65205535) 38 | 39 | ### Playgrounds 40 | 41 | #### Known Issues 42 | 43 | * Playgrounds may crash when presenting a live view on a Mac with Apple silicon. (68930351) 44 | 45 | ### Previews 46 | 47 | #### New Features 48 | 49 | * Xcode provides previews for macOS Widget extensions. (57990060) 50 | 51 | #### Known Issues 52 | 53 | * Using the device name “Mac Catalyst” in a [`PreviewDevice`](https://developer.apple.com/documentation/swiftui/previewdevice) modifier may cause the preview to fail. (65305155) 54 | 55 | **Workaround**: Remove the `previewDevice` modifier and switch to the “My Mac” run destination. 56 | 57 | ### Project Navigator 58 | 59 | #### Resolved Issues 60 | 61 | * Fixed an issue where the Finish button was not enabled when adding Swift Packages to a project. (68731814) 62 | 63 | ### Signing and Distribution 64 | 65 | #### Known Issues 66 | 67 | * Xcode can’t distribute an archive containing an App Clip if the parent app’s application identifier doesn’t begin with a Team ID. (67401115) (FB8461092) 68 | 69 | ### Simulator 70 | 71 | #### Resolved Issues 72 | 73 | * SwiftUI projects using StoreKit can now build for simulated watchOS devices. (68931021, 68935233) 74 | 75 | #### Known Issues 76 | 77 | * 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) 78 | 79 | * Shortcuts may not run in simulated devices. (69516795) 80 | 81 | #### Deprecations 82 | 83 | * Simulators for watchOS 6 or earlier require 32-bit processes that aren’t supported on Macs with Apple silicon. (66352760) 84 | 85 | ### Source Editor 86 | 87 | #### Resolved Issues 88 | 89 | * The source editor properly displays errors and warnings from Run Script build phases that use relative paths; clicking the issue in the Issues navigator takes you to the issue in the source editor. (43290386) (FB5420750) 90 | 91 | ### Swift 92 | 93 | #### Resolved Issues 94 | 95 | * Fixed a compiler crash that could occur when a function builder body contains an empty switch statement. This issue could also cause a SourceKit crash while typing a switch statement in a SwiftUI view body. (65983237) (FB8111944) 96 | 97 | ### Swift Packages 98 | 99 | #### Known Issues 100 | 101 | * Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067) 102 | 103 | **Workaround**: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices. 104 | 105 | ### Testing 106 | 107 | #### Known Issues 108 | 109 | * 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) 110 | 111 | * Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529) 112 | 113 | * iOS unit tests fail to launch on Apple silicon if the test target’s host application is set to None. (65309328) 114 | 115 | **Workaround**: Set the host application to an iOS application target. 116 | 117 | ### Updates in Xcode 12.2 beta 118 | 119 | ### General 120 | 121 | #### New Features 122 | 123 | * 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) 124 | 125 | * 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) 126 | 127 | * Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094) 128 | 129 | ### Build System 130 | 131 | #### Resolved Issues 132 | 133 | * `xcodebuild` no longer incorrectly double-escapes the output of `xcodebuild -showBuildSettings -json`. (63554669) 134 | 135 | ### Core ML 136 | 137 | #### Resolved Issues 138 | 139 | * 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) 140 | 141 | ### Create ML 142 | 143 | #### New Features 144 | 145 | * Training Control helps you explore and interact with models during training. The training process can be paused, saved, resumed, and extended. This feature requires macOS 11 or later. (45241965) 146 | 147 | * The new Style Transfer template lets you train deep neural networks to stylize photos and videos in real time. This template requires macOS 11 or later. (55848835) 148 | 149 | * The new Action Classification template lets you train neural networks to classify a single person’s actions in a video clip. This template requires macOS 11 or later. (56622350) 150 | 151 | * The Object Detection template’s new Transfer Learning option helps improve model accuracy when training data is limited. This feature requires macOS 11 or later. (58627183) 152 | 153 | * The Word Tagger template’s new Transfer Learning option uses dynamic word embeddings to help improve model accuracy when training data is limited. This feature requires macOS 11 or later. (59281335) 154 | 155 | ### Devices 156 | 157 | #### Resolved Issues 158 | 159 | * 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) 160 | 161 | ### Interface Builder 162 | 163 | #### New Features 164 | 165 | * Added support for Inline and Compact [`UIDatePicker`](https://developer.apple.com/documentation/uikit/uidatepicker) styles. (65085323) (FB7847821) 166 | 167 | #### Resolved Issues 168 | 169 | * 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) 170 | 171 | * Fixed an issue that could cause an [`NSTableView`](https://developer.apple.com/documentation/appkit/nstableview) to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478) 172 | 173 | ### Organizer 174 | 175 | #### Resolved Issues 176 | 177 | * Thinning for “all compatible device variants” no longer causes export of a watchOS application for Ad Hoc or Development distribution to fail. (66637482) 178 | 179 | ### Previews 180 | 181 | #### New Features 182 | 183 | * The action menu has a new “Embed…” menu item that lets you specify the type of View container in which to embed the selected view hierarchy. (51152198) 184 | 185 | * The action menu has a new “Embed in ZStack” menu item. (56989502) 186 | 187 | * The previews canvas now automatically shows and hides based on the presence of a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider) in the file being edited. (67083504, 67693254) 188 | 189 | * The Editor menu now includes Create Preview to create a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider), and Create Library Item to create a [`LibraryContentProvider`](https://developer.apple.com/documentation/developertoolssupport/librarycontentprovider). (67110969) 190 | 191 | #### Resolved Issues 192 | 193 | * 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) 194 | 195 | * Previews correctly display interpolated strings, including for localized strings. (64278576) 196 | 197 | * Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599) 198 | 199 | * On Intel-based Macs, previews now load for iOS, watchOS, or tvOS projects that depend on libraries without an arm64 slice. (65890022) 200 | 201 | * The canvas displays error details when a preview fails to launch due to the underlying app crashing, such as when the app doesn’t have an [`EnvironmentObject`](https://developer.apple.com/documentation/swiftui/environmentobject). (67955924) 202 | 203 | #### Known Issues 204 | 205 | * Previews for macOS projects may not load if your Xcode is located outside the /Applications folder. (69442156) 206 | 207 | ### Signing and Distribution 208 | 209 | #### New Features 210 | 211 | * 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](https://developer.apple.com) 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) 212 | 213 | * 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). 214 | 215 | #### Resolved Issues 216 | 217 | * 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) 218 | 219 | * Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321) 220 | 221 | ### Simulator 222 | 223 | #### New Features 224 | 225 | * 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) 226 | > ##### Note 227 | > Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which don’t support 32-bit code. 228 | 229 | ### StoreKit 230 | 231 | #### Resolved Issues 232 | 233 | * Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368) 234 | -------------------------------------------------------------------------------- /Xcode12.2Beta3.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.2 Beta 3 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.2 beta 3 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 3 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 beta 3 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. 8 | 9 | ### General 10 | 11 | #### Known Issues 12 | 13 | * 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) 14 | 15 | The failure may present in one of the following ways: 16 | 17 | * The application crashes on launch 18 | 19 | * Xcode displays an alert stating “The operation couldn’t be completed. (OSStatus error -10825.)” 20 | 21 | * Xcode displays an alert stating “Unable To Install” 22 | 23 | **Workaround**: Change the iOS deployment target for the iOS app to a version supported by the version of macOS you’re 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. 24 | 25 | ### Build System 26 | 27 | #### Known Issues 28 | 29 | * `xcodebuild` double-escapes the output of `xcodebuild -showBuildSettings -json`. (63554669) 30 | 31 | ### Core Data 32 | 33 | #### Known Issues 34 | 35 | * Core Data’s model editor may display a blank Detail area for an Entity when running in macOS 11 beta 9. (69472812) 36 | 37 | ### Debugging 38 | 39 | #### Known Issues 40 | 41 | * Xcode fails to install an app with multibyte UTF-8 characters in its bundle name, and presents an error of “failed to hardlink copy”. (69887557) (FB8766413) 42 | 43 | **Workaround**: Use only uppercase letters (A-Z), lowercase letters (a-z), hyphens (-), underscores(__), and spaces in an app’s bundle name. By default, an app’s bundle name matches its target name, which you can change in the project editor. 44 | 45 | Note that this issue doesn’t impact an app’s Bundle ID or Bundle Display Name, only the name of the app’s `.app` folder on disk, which isn’t usually seen by users. 46 | 47 | * When you build and run an app in macOS 11 beta 10, the app may pause immediately at a SIGCONT signal. (69936597) 48 | 49 | **Workaround**: Continue execution as you would if the app had stopped at a breakpoint. 50 | 51 | ### Previews 52 | 53 | #### Known Issues 54 | 55 | * Using the device name “Mac Catalyst” in a SwiftUI [`PreviewDevice`](https://developer.apple.com/documentation/swiftui/previewdevice) modifier may cause the preview to fail to update. Instead, the banner displays the error “Cannot preview in this file – rendering service was interrupted”. (65305155) 56 | 57 | **Workaround**: Remove the `previewDevice` modifier and switch to the “My Mac” run destination. 58 | 59 | ### Signing and Distribution 60 | 61 | #### Resolved Issues 62 | 63 | * Xcode can now distribute an archive containing an App Clip even if the parent app’s application identifier doesn’t begin with a Team ID. (67401115) (FB8461092) 64 | 65 | ### Simulator 66 | 67 | #### Resolved Issues 68 | 69 | * Fixed an issue that could cause apps linking against [Core NFC](https://developer.apple.com/documentation/corenfc) to crash with an error of “Library not loaded” from `dyld`. (67961203) 70 | 71 | * Fixed an issue that could prevent Shortcuts from running in simulated devices. (69516795) 72 | 73 | #### Known Issues 74 | 75 | * Simulators may not be available when running command-line tools like `simctl` or `xcodebuild` from a non-root LaunchDaemon, or when launching as a different user from the current user (for example, with `sudo` or `launchctl`). (62188195) 76 | 77 | * Simulator runtimes for iOS 13, tvOS 13, and watchOS 6 and earlier don’t work on the Developer Transition Kit. Preferences offers these runtimes for download, but creating a simulated device from one of these runtimes fails, claiming the runtime is unavailable. Future Macs with Apple silicon will support a limited set of older simulator runtimes for iOS and tvOS. (66115743) (FB8157217) 78 | 79 | #### Deprecations 80 | 81 | * Simulators for watchOS 6 or earlier aren’t supported on Macs with Apple silicon. (66352760) 82 | 83 | ### Swift 84 | 85 | #### Resolved Issues 86 | 87 | * Fixed a regression that caused property wrappers to leak objects during their initialization. (69023636) 88 | 89 | ### Swift Packages 90 | 91 | #### Known Issues 92 | 93 | * Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067) 94 | 95 | **Workaround**: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices. 96 | 97 | ### Testing 98 | 99 | #### Known Issues 100 | 101 | * 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) 102 | 103 | * Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529) 104 | 105 | * iOS unit tests fail to launch on Apple silicon if the test target’s host application is set to None. (65309328) 106 | 107 | **Workaround**: In the General tab of the test target’s project settings, set the host application to an iOS application target. 108 | 109 | ## Updates in Xcode 12.2 beta 2 110 | 111 | ### General 112 | 113 | #### Resolved Issues 114 | 115 | * You can upload an app for App Store submission or Developer ID notarization even if Xcode’s path contains a space. (69009477) 116 | 117 | ### Apple Clang Compiler 118 | 119 | #### Resolved Issues 120 | 121 | * Fixed an issue that caused `strip`, `install_name_tool` and `vtool` to corrupt the ad-hoc code signatures generated by the linker for arm64 Mach-O files. (51911417) 122 | 123 | ### Devices 124 | 125 | #### Resolved Issues 126 | 127 | * Fixed a hang in `rvictl` when running on macOS 11. (65205535) 128 | 129 | ### Playgrounds 130 | 131 | #### Resolved Issues 132 | 133 | * Fixed a crash that could occur when presenting a live view on a Mac with Apple silicon. (68930351) 134 | 135 | ### Previews 136 | 137 | #### New Features 138 | 139 | * Xcode provides SwiftUI previews for macOS Widget extensions. (57990060) 140 | 141 | ### Project Navigator 142 | 143 | #### Resolved Issues 144 | 145 | * Fixed an issue where the Finish button was not enabled when adding Swift Packages to a project. (68731814) 146 | 147 | ### Simulator 148 | 149 | #### Resolved Issues 150 | 151 | * SwiftUI projects using StoreKit can now build for simulated watchOS devices. (68931021, 68935233) 152 | 153 | ### Source Editor 154 | 155 | #### Resolved Issues 156 | 157 | * The source editor properly displays errors and warnings from Run Script build phases that use relative paths; clicking the issue in the Issues navigator takes you to the issue in the source editor. (43290386) (FB5420750) 158 | 159 | ### Swift 160 | 161 | #### Resolved Issues 162 | 163 | * Fixed a compiler crash that could occur when a function builder body contains an empty switch statement. This issue could also cause a SourceKit crash while typing a switch statement in a SwiftUI view body. (65983237) (FB8111944) 164 | 165 | ## Updates in Xcode 12.2 beta 166 | 167 | ### General 168 | 169 | #### New Features 170 | 171 | * 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) 172 | 173 | * 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) 174 | 175 | * Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094) 176 | 177 | ### Core ML 178 | 179 | #### Resolved Issues 180 | 181 | * 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) 182 | 183 | ### Create ML 184 | 185 | #### New Features 186 | 187 | * Training Control helps you explore and interact with models during training. The training process can be paused, saved, resumed, and extended. This feature requires macOS 11 or later. (45241965) 188 | 189 | * The new Style Transfer template lets you train deep neural networks to stylize photos and videos in real time. This template requires macOS 11 or later. (55848835) 190 | 191 | * The new Action Classification template lets you train neural networks to classify a single person’s actions in a video clip. This template requires macOS 11 or later. (56622350) 192 | 193 | * The Object Detection template’s new Transfer Learning option helps improve model accuracy when training data is limited. This feature requires macOS 11 or later. (58627183) 194 | 195 | * The Word Tagger template’s new Transfer Learning option uses dynamic word embeddings to help improve model accuracy when training data is limited. This feature requires macOS 11 or later. (59281335) 196 | 197 | ### Devices 198 | 199 | #### Resolved Issues 200 | 201 | * 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) 202 | 203 | ### Interface Builder 204 | 205 | #### New Features 206 | 207 | * Added support for Inline and Compact [`UIDatePicker`](https://developer.apple.com/documentation/uikit/uidatepicker) styles. (65085323) (FB7847821) 208 | 209 | #### Resolved Issues 210 | 211 | * 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) 212 | 213 | * Fixed an issue that could cause an [`NSTableView`](https://developer.apple.com/documentation/appkit/nstableview) to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478) 214 | 215 | ### Organizer 216 | 217 | #### Resolved Issues 218 | 219 | * Thinning for “all compatible device variants” no longer causes export of a watchOS application for Ad Hoc or Development distribution to fail. (66637482) 220 | 221 | ### Previews 222 | 223 | #### New Features 224 | 225 | * The action menu has a new “Embed…” menu item that lets you specify the type of View container in which to embed the selected view hierarchy. (51152198) 226 | 227 | * The action menu has a new “Embed in ZStack” menu item. (56989502) 228 | 229 | * The SwiftUI previews canvas now automatically shows and hides based on the presence of a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider) in the file you’re editing. (67083504, 67693254) 230 | 231 | * The Editor menu now includes Create Preview to create a [`PreviewProvider`](https://developer.apple.com/documentation/swiftui/previewprovider), and Create Library Item to create a [`LibraryContentProvider`](https://developer.apple.com/documentation/developertoolssupport/librarycontentprovider). (67110969) 232 | 233 | #### Resolved Issues 234 | 235 | * 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) 236 | 237 | * Previews correctly display interpolated strings, including for localized strings. (64278576) 238 | 239 | * Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599) 240 | 241 | * On Intel-based Macs, previews now load for iOS, watchOS, or tvOS projects that depend on libraries without an arm64 slice. (65890022) 242 | 243 | * The canvas displays error details when a preview fails to launch due to the underlying app crashing, such as when the app doesn’t have an [`EnvironmentObject`](https://developer.apple.com/documentation/swiftui/environmentobject). (67955924) 244 | 245 | #### Known Issues 246 | 247 | * SwiftUI previews for macOS projects may not load if Xcode is located outside the /Applications folder. (69442156) 248 | 249 | ### Signing and Distribution 250 | 251 | #### New Features 252 | 253 | * 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](https://developer.apple.com) 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) 254 | 255 | * 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, macOS prompts you to open the Security & Privacy preferences pane and 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). 256 | 257 | #### Resolved Issues 258 | 259 | * 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) 260 | 261 | * Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321) 262 | 263 | ### Simulator 264 | 265 | #### New Features 266 | 267 | * 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) 268 | > ##### Note 269 | > Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which don’t support 32-bit code. 270 | 271 | ### StoreKit 272 | 273 | #### Resolved Issues 274 | 275 | * Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368) 276 | -------------------------------------------------------------------------------- /Xcode12.2RC.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.2 RC Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.2 RC includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Big Sur 11. The Xcode 12.2 release candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 RC 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. 8 | > ##### Note 9 | > The term “Release Candidate” (RC) replaces “GM seed” and indicates this version is near final. 10 | 11 | ### General 12 | 13 | #### New Features 14 | 15 | * 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) 16 | 17 | * Xcode’s scheme menu now includes 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) 18 | 19 | * Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094) 20 | 21 | #### Resolved Issues 22 | 23 | * You can now upload an app for App Store submission or Developer ID notarization even if Xcode’s path contains a space. (69009477) 24 | 25 | #### Known Issues 26 | 27 | * Xcode does not prevent you from selecting a macOS destination for an iOS app when the macOS destination does not support the iOS app’s deployment target. (68261281, 68714781, 68948002) 28 | 29 | If you attempt to launch the app through Xcode on an unsupported macOS destination, Xcode displays the message “The app is incompatible with the current version of macOS. Please check the app’s deployment target.” 30 | 31 | **Workaround**: Change the iOS deployment target for the iOS app to a version supported by the macOS destination, or upgrade to a version of macOS that supports the iOS deployment target configured in the project. Apps configured with deployment targets of iOS 14 or later require the Mac to be running macOS 11 or later. 32 | 33 | * A red beta sash appears on the app icon, even though this is a release candidate of Xcode 12.2. (70739528) 34 | 35 | ### Build System 36 | 37 | #### Resolved Issues 38 | 39 | * When building on the command line, projects now build for all of their configured architectures instead of the first architecture in the list, when `ONLY_ACTIVE_ARCH` is set to `YES` and the `-destination` option to `xcodebuild` isn’t being used. (69242858) 40 | 41 | ### Core ML 42 | 43 | #### Resolved Issues 44 | 45 | * 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) 46 | 47 | ### Create ML 48 | 49 | #### New Features 50 | 51 | * You can explore and interact with models during training using the new Training Control. You can pause, save, resume, or extend the training process. This feature requires macOS 11 or later. (45241965) 52 | 53 | * You can train deep neural networks to stylize photos and videos in real time using the new Style Transfer template. This template requires macOS 11 or later. (55848835) 54 | 55 | * You can train neural networks to classify a single person’s actions in a video clip using the new Action Classification template. This template requires macOS 11 or later. (56622350) 56 | 57 | * You can improve model accuracy when training data is limited using the Object Detection template’s new Transfer Learning option. This feature requires macOS 11 or later. (58627183) 58 | 59 | * The Word Tagger template’s new Transfer Learning option uses dynamic word embeddings to help improve model accuracy when training data is limited. This feature requires macOS 11 or later. (59281335) 60 | 61 | ### Debugging 62 | 63 | #### Resolved Issues 64 | 65 | * Improved Xcode’s error message for app-launch failures when attempting to launch multiple instances of an app built with Mac Catalyst, or an iOS app on Mac, with the same bundle identifier. (66691875) 66 | 67 | * Fixed an issue where Quick Look popovers for variables in the Xcode debugger were sometimes too small and truncated their contents. (67580519) 68 | 69 | #### Known Issues 70 | 71 | * Xcode fails to install an app with multibyte UTF-8 characters in its bundle name, and presents an error of “failed to hardlink copy”. (69887557) (FB8766413) 72 | 73 | **Workaround**: Use only uppercase letters (A-Z), lowercase letters (a-z), hyphens (-), underscores(__), and spaces in an app’s bundle name. By default, an app’s bundle name matches its target name, which you can change in the project editor. 74 | 75 | Note that this issue doesn’t impact an app’s Bundle ID or Bundle Display Name, only the name of the app’s `.app` folder on disk, which isn’t usually seen by users. 76 | 77 | * When running in macOS 11, Xcode’s navigators lay out at the wrong sizes. The breakpoint navigator may not display the state of the breakpoint, and the breakpoint editor popover may never become visible. (70063096) 78 | 79 | **Workaround:** Use macOS 11.0.1 or later. 80 | 81 | ### Devices 82 | 83 | #### Known Issues 84 | 85 | * Xcode may spontaneously lose device configuration information for an Apple Watch. This may cause Xcode to crash or display an error stating that your app “cannot be installed on (null)”. (54768855) 86 | 87 | **Workaround**: On the Mac you’re using for development, run the following command in Terminal: 88 | ``` 89 | sudo killall -9 usbmuxd 90 | ``` 91 | After running this command, restart Xcode. 92 | 93 | * Xcode 11 and 12 may fail to prepare a wirelessly connected iOS device for debugging with the error “Failed _shouldMakeReadyForDevelopment check”. Even if Xcode does prepare the device successfully, the Devices and Simulators window may continue to display stale errors for the device’s status. (61227501) (FB7649607) 94 | 95 | **Workaround**: Keep the wirelessly connected iOS device unlocked while deploying or debugging an app on the device. Restart Xcode if you want to clear stale device preparation errors. Whenever possible, use a USB cable instead of a wireless connection between your Mac and iOS device. 96 | 97 | * Xcode may fail to copy symbols from iOS devices, and fail to prepare the devices for debugging, then take several minutes to attach to the debugger and reach breakpoints that would normally be reached immediately on launch. (68221778) (FB8611135) 98 | 99 | **Workaround**: Re-copy symbols from your devices by following these steps. 100 | 101 | 1. Disconnect all iOS devices from your Mac. 102 | 103 | 2. Delete this directory: `~/Library/Developer/Xcode/iOS DeviceSupport` 104 | 105 | 3. Open the Devices and Simulators window in Xcode. 106 | 107 | 4. Use a USB cable to connect any arm64e iOS devices (iPhone XS, iPhone XS Max, or later). 108 | 109 | 5. Wait for the Devices and Simulators window to finish copying symbols for these devices. 110 | 111 | 6. Use a USB cable to connect any arm64 iOS devices and copy their symbols. 112 | 113 | * After installing Xcode, you must reboot your Mac before you can use `rvictl`. (70403127) 114 | 115 | #### Resolved Issues 116 | 117 | * You can now debug a WatchKit App when an App Clip is added to its paired iOS App, even if that iOS App isn’t installed. (65784374, 70152797) (FB8065876) 118 | 119 | * Fixed a crash that could occur when you click the View Device Logs button for a device you select in the Devices and Simulators window. (66303792, 70152877) 120 | 121 | ### Documentation Viewer 122 | 123 | #### Known Issues 124 | 125 | * Xcode may crash when you open the Developer Documentation window if you install and run Xcode outside of `/Applications`. (70631583) 126 | 127 | **Workaround**: Move Xcode to `/Applications` and relaunch. 128 | 129 | ### Interface Builder 130 | 131 | #### New Features 132 | 133 | * Interface Builder now supports Inline and Compact [`UIDatePicker`](https://developer.apple.com/documentation/uikit/uidatepicker) styles. (65085323) (FB7847821) 134 | 135 | #### Resolved Issues 136 | 137 | * Enabled safe area relative margins by default for navigation bars of [`UINavigationController`](https://developer.apple.com/documentation/uikit/uinavigationcontroller). 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) 138 | 139 | * Fixed an issue that could cause an [`NSTableView`](https://developer.apple.com/documentation/appkit/nstableview) to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478) 140 | 141 | ### Organizer 142 | 143 | #### Resolved Issues 144 | 145 | * You can now export a watchOS app for Ad Hoc or Development distribution with thinning enabled for “All compatible device variants”. (66637482) 146 | 147 | ### Previews 148 | 149 | #### New Features 150 | 151 | * The action menu has a new “Embed…” menu item that lets you specify the type of View container in which to embed the selected view hierarchy. (51152198) 152 | 153 | * The action menu has a new “Embed in ZStack” menu item. (56989502) 154 | 155 | * Xcode provides SwiftUI previews for macOS Widget extensions. (57990060) 156 | 157 | * The SwiftUI previews canvas now automatically shows and hides based on the presence of a [`PreviewProvider`](https://developer.apple.com/documentation/SwiftUI/PreviewProvider) in the file you’re editing. (67083504, 67693254) 158 | 159 | * The Editor menu now includes Create Preview to create a [`PreviewProvider`](https://developer.apple.com/documentation/SwiftUI/PreviewProvider), and Create Library Item to create a [`LibraryContentProvider`](https://developer.apple.com/documentation/DeveloperToolsSupport/LibraryContentProvider). (67110969) 160 | 161 | #### Resolved Issues 162 | 163 | * 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) 164 | 165 | * Previews correctly display interpolated strings, including for localized strings. (64278576) 166 | 167 | * Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599) 168 | 169 | * The canvas now displays error details when a preview fails to launch due to the underlying app crashing, such as when the app doesn’t have an [`EnvironmentObject`](https://developer.apple.com/documentation/SwiftUI/EnvironmentObject). (67955924) 170 | 171 | #### Known Issues 172 | 173 | * Using the device name “Mac Catalyst” in a SwiftUI [`PreviewDevice`](https://developer.apple.com/documentation/SwiftUI/PreviewDevice) modifier may cause the preview to fail to update. Instead, the banner displays the error “Cannot preview in this file – rendering service was interrupted”. (65305155) 174 | 175 | **Workaround**: Remove the `previewDevice` modifier and switch to the “My Mac” run destination. 176 | 177 | ### RealityKit 178 | 179 | #### Known Issues 180 | 181 | * Xcode can’t build an app with Mac Catalyst if the app imports the RealityKit framework (70102384) 182 | 183 | ### Signing and Distribution 184 | 185 | #### New Features 186 | 187 | * 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](https://developer.apple.com) 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) 188 | 189 | * 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, macOS prompts you to open the Security & Privacy preferences pane and 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). 190 | 191 | #### Resolved Issues 192 | 193 | * Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321) 194 | 195 | * Xcode can now distribute an archive containing an App Clip even if the parent app’s application identifier doesn’t begin with a Team ID. (67401115) (FB8461092) 196 | 197 | ### Simulator 198 | 199 | #### New Features 200 | 201 | * 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) 202 | > ##### Note 203 | > Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which doesn’t support 32-bit code. 204 | 205 | #### Resolved Issues 206 | 207 | * Fixed an issue that could cause apps linking against [Core NFC](https://developer.apple.com/documentation/corenfc) to crash with an error of “Library not loaded” from `dyld`. (67961203) 208 | 209 | #### Known Issues 210 | 211 | * Simulators may not be available when running command-line tools like `simctl` or `xcodebuild` from a non-root LaunchDaemon, or when launching as a different user from the current user (for example, with `sudo` or `launchctl`). (62188195) 212 | 213 | * Simulator runtimes for iOS 13, tvOS 13, and watchOS 6 and earlier don’t work on Macs with Apple silicon. Preferences offers these runtimes for download, but creating a simulated device from one of these runtimes fails, claiming the runtime is unavailable. Future Macs with Apple silicon will support a limited set of older simulator runtimes for iOS and tvOS. (66115743, 70472441) (FB8157217) 214 | 215 | #### Deprecations 216 | 217 | * Simulators for watchOS 6 or earlier aren’t supported on Macs with Apple silicon. (66352760) 218 | 219 | ### Source Editor 220 | 221 | #### Resolved Issues 222 | 223 | * The source editor properly displays errors and warnings from Run Script build phases that use relative paths; clicking the issue in the Issues navigator takes you to the issue in the source editor. (43290386, 70152655) (FB5420750) 224 | 225 | ### StoreKit 226 | 227 | #### Resolved Issues 228 | 229 | * Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368) 230 | 231 | ### Swift 232 | 233 | #### Resolved Issues 234 | 235 | * Fixed a compiler crash that could occur when a function builder body contains an empty switch statement. This issue could also cause a SourceKit crash while typing a switch statement in a SwiftUI view body. (65983237) (FB8111944) 236 | 237 | * Fixed a regression that caused property wrappers to leak objects during their initialization. (69023636) 238 | 239 | #### Known Issues 240 | 241 | * Compiling a project with Mac Catalyst that imports [OSLog](https://developer.apple.com/documentation/oslog) from Swift may fail. (68597591) 242 | 243 | **Workaround:** Consider importing `os.log` and similar services directly, or guarding the `OSLog` import with a `targetEnvironment` compiler directive. 244 | 245 | ### Swift Packages 246 | 247 | #### Known Issues 248 | 249 | * Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067) 250 | 251 | **Workaround**: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices. 252 | 253 | ### Testing 254 | 255 | #### Known Issues 256 | 257 | * 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) 258 | 259 | * Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529) 260 | 261 | * iOS unit tests fail to launch on Apple silicon if the test target’s host application is set to None. (65309328) 262 | 263 | **Workaround**: In the General tab of the test target’s project settings, set the host application to an iOS application target. 264 | 265 | * Test Runner fails to re-launch on older simulator runtimes when the test hangs and times out. (68288321) 266 | 267 | **Workaround**: Fix the test that is hanging, or use a newer simulator runtime version. 268 | -------------------------------------------------------------------------------- /Xcode12.3.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.3 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.3 includes SDKs for iOS 14.3, iPadOS 14.3, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.3 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.3 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. 8 | 9 | ### General 10 | 11 | #### Resolved Issues 12 | 13 | * Improved responsiveness of macOS mouse and keyboard events while under heavy load, such as when building a large project while running Simulator. (71819679) 14 | 15 | #### Known Issues 16 | 17 | * The first time you launch Xcode on a Mac with Apple silicon without Rosetta installed, Xcode prompts you to install Rosetta. The prompt prevents any interaction, and blocks Xcode from launching. (70853975) (FB8848625) 18 | 19 | **Workaround**: Launch an x86_64 process to trigger the system’s Rosetta prompt. 20 | 21 | ### Build System 22 | 23 | #### Resolved Issues 24 | 25 | * Fixed an issue where `xcodebuild` sometimes logged unexpected output about failed event streams. (33401512) 26 | 27 | ### Devices 28 | 29 | #### Resolved Issues 30 | 31 | * Fixed an issue that caused Xcode to spontaneously lose device configuration information for an Apple Watch. This data loss caused Xcode to either crash or display an error stating that your app “cannot be installed on (null)”. (54768855) 32 | 33 | * Fixed an issue where Xcode could fail to prepare a wirelessly connected iOS device for debugging with the error “Failed _shouldMakeReadyForDevelopment check”. (61227501) (FB7649607) 34 | 35 | * Fixed an issue that blocked simulator runtimes from being available when running command-line tools like `simctl` or `xcodebuild` from a non-root LaunchDaemon, or when launching as a different user from the current user (for example, with `sudo` or `launchctl`). (62188195, 69738053) 36 | 37 | * Fixed an issue that could cause Xcode to get interrupted when copying symbols from iOS devices, and never finish preparing iOS devices for debugging. The failure mainly occurred on Xcode installations used to debug multiple iOS devices which are running the same version of iOS. This bug impacted the performance of launching executables on iOS devices and attaching the debugger to them. (68221778) (FB8611135) 38 | 39 | ### Documentation Viewer 40 | 41 | #### Resolved Issues 42 | 43 | * Fixed a crash that could happen when opening the Documentation Window if you installed Xcode outside of `/Applications`. (70631583) 44 | 45 | ### Interface Builder 46 | 47 | #### Resolved Issues 48 | 49 | * Fixed iOS storyboard rendering issues when using [`UISplitViewController`](https://developer.apple.com/documentation/uikit/uisplitviewcontroller) simulated metric sizes with [`UITabBarController`](https://developer.apple.com/documentation/uikit/uitabbarcontroller). (69054879) (FB8704013) 50 | 51 | * Fixed an issue that caused Xcode to warn about multiple deprecated system color references in saved documents. (69667149) (FB8749086) 52 | 53 | * Fixed an issue where the background color of a [`UITextField`](https://developer.apple.com/documentation/uikit/uitextfield) could appear transparent in your app instead of the default color. (70559650) 54 | 55 | ### SceneKit 56 | 57 | #### Known Issues 58 | 59 | * On a Mac with Apple silicon, SceneKit editor may display pixelated graphics or an empty window. (71239899, 71395291, 72141599) 60 | 61 | **Workaround**: Click on the Display option icon at the bottom-right of the 3D viewport, then disable the Outline selection and Grid options. 62 | 63 | ### Simulator 64 | 65 | #### New Features 66 | 67 | * `simctl` now prints “Recording started” to `stderr` when it has enqueued the first frame of a video recording. Scripts or other automation can wait for that message before proceeding, to ensure the first part of the operation is captured in the resulting video. (57915463) 68 | 69 | #### Resolved Issues 70 | 71 | * `simctl` video recordings no longer cut off the end of the video when no screen updates are happening. The recording timeline now holds the last frame and extends until you terminate the recording with Control-C (SIGINT). (67952344) (FB8565355) 72 | 73 | * CoreSimulator now excludes its caches directory from Time Machine backups by default. (68782191) 74 | 75 | #### Known Issues 76 | 77 | * When using macOS Big Sur 11.0 or 11.0.1 on your Mac, you can’t run a simulated device with watchOS 6, and you can’t run apps with 32-bit code in simulated devices running watchOS 7. This issue is fixed in macOS Big Sur 11.1. (69093569) 78 | 79 | * Siri may not respond in a simulated device running on a Mac with Apple silicon. (71604992) 80 | 81 | * Apps may not detect all game controller events when running in simulated devices on Macs with Apple silicon. (71651414) 82 | 83 | ### Swift 84 | 85 | #### Resolved Issues 86 | 87 | * Fixed a failure that could occur when compiling a project with Mac Catalyst that imports [OSLog](https://developer.apple.com/documentation/oslog) from Swift. (68597591) 88 | -------------------------------------------------------------------------------- /Xcode12.3Beta1.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.3 Beta Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.3 beta includes SDKs for iOS 14.3, iPadOS 14.3, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.3 beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.3 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. 8 | 9 | ### Build System 10 | 11 | #### Resolved Issues 12 | 13 | * Fixed an issue where `xcodebuild` sometimes logged unexpected output about failed event streams. (33401512) 14 | 15 | ### Devices 16 | 17 | #### Resolved Issues 18 | 19 | * Fixed an issue that caused Xcode to spontaneously lose device configuration information for an Apple Watch. This data loss caused Xcode to either crash or display an error stating that your app “cannot be installed on (null)”. (54768855) 20 | 21 | * Fixed an issue where Xcode could fail to prepare a wirelessly connected iOS device for debugging with the error “Failed _shouldMakeReadyForDevelopment check”. (61227501) (FB7649607) 22 | 23 | * Fixed an issue that could cause Xcode to get interrupted when copying symbols from iOS devices, and never finish preparing iOS devices for debugging. The failure mainly occurred on Xcode installations used to debug multiple iOS devices which are running the same version of iOS. This bug impacted the performance of launching executables on iOS devices and attaching the debugger to them. (68221778) (FB8611135) 24 | 25 | ### Documentation Viewer 26 | 27 | #### Resolved Issues 28 | 29 | * Fixed a crash that could happen when opening the Documentation Window if you installed Xcode outside of `/Applications`. (70631583) 30 | 31 | ### Interface Builder 32 | 33 | #### Resolved Issues 34 | 35 | * Fixed iOS storyboard rendering issues when using [`UISplitViewController`](https://developer.apple.com/documentation/uikit/uisplitviewcontroller) simulated metric sizes with [`UITabBarController`](https://developer.apple.com/documentation/uikit/uitabbarcontroller). (69054879) (FB8704013) 36 | 37 | * Fixed an issue that caused Xcode to warn about multiple deprecated system color references in saved documents. (69667149) (FB8749086) 38 | 39 | * Fixed an issue where the background color of a [`UITextField`](https://developer.apple.com/documentation/uikit/uitextfield) could appear transparent in your app instead of the default color. (70559650) 40 | 41 | ### Simulator 42 | 43 | #### New Features 44 | 45 | * `simctl` now prints “Recording started” to `stderr` when it has enqueued the first frame of a video recording. Scripts or other automation can wait for that message before proceeding, to ensure the first part of the operation is captured in the resulting video. (57915463) 46 | 47 | #### Resolved Issues 48 | 49 | * `simctl` video recordings no longer cut off the end of the video when no screen updates are happening. The recording timeline now holds the last frame and extends until you terminate the recording with Control-C (SIGINT). (67952344) (FB8565355) 50 | 51 | * CoreSimulator now excludes its caches directory from Time Machine backups by default. (68782191) 52 | 53 | ### Swift 54 | 55 | #### Resolved Issues 56 | 57 | * Fixed a failure that could occur when compiling a project with Mac Catalyst that imports [OSLog](https://developer.apple.com/documentation/oslog) from Swift. (68597591) 58 | -------------------------------------------------------------------------------- /Xcode12.3RC.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.3 RC Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.3 RC includes SDKs for iOS 14.3, iPadOS 14.3, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.3 release candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.3 RC 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. 8 | 9 | ### General 10 | 11 | #### Resolved Issues 12 | 13 | * Improved responsiveness of macOS mouse and keyboard events while under heavy load, such as when building a large project while running Simulator. (71819679) 14 | 15 | #### Known Issues 16 | 17 | * The first time you launch Xcode on a Mac with Apple silicon without Rosetta installed, Xcode prompts you to install Rosetta. The prompt prevents any interaction, and blocks Xcode from launching. (70853975) (FB8848625) 18 | 19 | **Workaround**: Launch an x86_64 process to trigger the system’s Rosetta prompt. 20 | 21 | ### Build System 22 | 23 | #### Resolved Issues 24 | 25 | * Fixed an issue where `xcodebuild` sometimes logged unexpected output about failed event streams. (33401512) 26 | 27 | ### Devices 28 | 29 | #### Resolved Issues 30 | 31 | * Fixed an issue that caused Xcode to spontaneously lose device configuration information for an Apple Watch. This data loss caused Xcode to either crash or display an error stating that your app “cannot be installed on (null)”. (54768855) 32 | 33 | * Fixed an issue where Xcode could fail to prepare a wirelessly connected iOS device for debugging with the error “Failed _shouldMakeReadyForDevelopment check”. (61227501) (FB7649607) 34 | 35 | * Fixed an issue that blocked simulator runtimes from being available when running command-line tools like `simctl` or `xcodebuild` from a non-root LaunchDaemon, or when launching as a different user from the current user (for example, with `sudo` or `launchctl`). (62188195, 69738053) 36 | 37 | * Fixed an issue that could cause Xcode to get interrupted when copying symbols from iOS devices, and never finish preparing iOS devices for debugging. The failure mainly occurred on Xcode installations used to debug multiple iOS devices which are running the same version of iOS. This bug impacted the performance of launching executables on iOS devices and attaching the debugger to them. (68221778) (FB8611135) 38 | 39 | ### Documentation Viewer 40 | 41 | #### Resolved Issues 42 | 43 | * Fixed a crash that could happen when opening the Documentation Window if you installed Xcode outside of `/Applications`. (70631583) 44 | 45 | ### Interface Builder 46 | 47 | #### Resolved Issues 48 | 49 | * Fixed iOS storyboard rendering issues when using [`UISplitViewController`](https://developer.apple.com/documentation/uikit/uisplitviewcontroller) simulated metric sizes with [`UITabBarController`](https://developer.apple.com/documentation/uikit/uitabbarcontroller). (69054879) (FB8704013) 50 | 51 | * Fixed an issue that caused Xcode to warn about multiple deprecated system color references in saved documents. (69667149) (FB8749086) 52 | 53 | * Fixed an issue where the background color of a [`UITextField`](https://developer.apple.com/documentation/uikit/uitextfield) could appear transparent in your app instead of the default color. (70559650) 54 | 55 | ### Simulator 56 | 57 | #### New Features 58 | 59 | * `simctl` now prints “Recording started” to `stderr` when it has enqueued the first frame of a video recording. Scripts or other automation can wait for that message before proceeding, to ensure the first part of the operation is captured in the resulting video. (57915463) 60 | 61 | #### Resolved Issues 62 | 63 | * `simctl` video recordings no longer cut off the end of the video when no screen updates are happening. The recording timeline now holds the last frame and extends until you terminate the recording with Control-C (SIGINT). (67952344) (FB8565355) 64 | 65 | * CoreSimulator now excludes its caches directory from Time Machine backups by default. (68782191) 66 | 67 | #### Known Issues 68 | 69 | * When using macOS Big Sur 11.0 or 11.0.1 on your Mac, you can’t run a simulated device with watchOS 6, and you can’t run apps with 32-bit code in simulated devices running watchOS 7. This issue is fixed in macOS Big Sur 11.1. (69093569) 70 | 71 | * Siri may not respond in a simulated device running on a Mac with Apple silicon. (71604992) 72 | 73 | * Apps may not detect all game controller events when running in simulated devices on Macs with Apple silicon. (71651414) 74 | 75 | ### Swift 76 | 77 | #### Resolved Issues 78 | 79 | * Fixed a failure that could occur when compiling a project with Mac Catalyst that imports [OSLog](https://developer.apple.com/documentation/oslog) from Swift. (68597591) 80 | -------------------------------------------------------------------------------- /Xcode12.4.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.4 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.4 includes SDKs for iOS 14.4, iPadOS 14.4, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.4 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.4 requires a Mac running macOS 10.15.4 or later. 8 | 9 | ### Debugging 10 | 11 | #### Known Issues 12 | 13 | * Xcode may hang if the host Mac is connected to an iOS device which has one or more companion watches. The hangs occur when the watches aren’t fully prepared for development, or if they are experiencing poor wireless connectivity. (72490921) (FB8945320) 14 | 15 | **Workaround**: Power off the watches, or unpair them from the iPhone. 16 | 17 | You can force Xcode to freshly prepare a watch for development using these steps: 18 | 19 | 1. Force-quit Xcode. 20 | 21 | 2. Power-off and disconnect all iOS device from the Mac. 22 | 23 | 3. Reboot the Mac. 24 | 25 | 4. Launch Xcode, close all projects, and open the Devices and Simulators window. 26 | 27 | 5. Power-on and unlock an iOS device and its companion watchOS devices by entering the passcode as required. 28 | 29 | 6. Plug the iOS device into the Mac using USB cable. 30 | 31 | 7. Check each iOS device and each watch for any pairing request and approve the requests. 32 | 33 | 8. Monitor the status of device preparation in the Devices and Simulators window. If Xcode presents device-preparation errors, follow the guidance in the error message to resolve the error. 34 | 35 | Once Xcode finishes preparing the iOS device and its companion watches for development, repeat steps 5 through 8 for each remaining iOS device and its companion watches until you verify that Xcode has prepared all devices for development. You may now open your Xcode projects and resume development. 36 | 37 | ### Sanitizers 38 | 39 | #### Resolved Issues 40 | 41 | * Fixed a crash that could occur when launching an application with Thread Sanitizer enabled on a Mac with Apple silicon. (72129387, 72262222, 72449940) (FB8933994, FB8938284) 42 | 43 | ### Simulator 44 | 45 | #### Resolved Issues 46 | 47 | * iOS simulated devices no longer display an incorrect yellow tint in translucent UI elements. Certain GPUs may continue to display the tint with some tvOS simulators. (71203015) 48 | 49 | * Fixed an issue that could prevent iOS apps from launching on Macs with Apple silicon. (72360675) 50 | 51 | ### Swift Packages 52 | 53 | #### Known Issues 54 | 55 | * If you use a Swift package with binary dependencies in an app with extensions, the build system incorrectly embeds the binary dependencies alongside the extension in the PlugIns directory, causing validation of the archived app to fail. (69834549) (FB8761306) 56 | 57 | **Workaround**: Add a scheme post-build action which removes the embedded binaries from the PlugIns directory after the build, e.g. `rm -rf "${TARGET_BUILD_DIR}/${TARGET_NAME}.app"/PlugIns/*.framework`. 58 | -------------------------------------------------------------------------------- /Xcode12.4RC.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.4 RC Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.4 RC includes SDKs for iOS 14.4, iPadOS 14.4, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.4 Release Candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.4 RC 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. 8 | 9 | ### Debugging 10 | 11 | #### Known Issues 12 | 13 | * Xcode may hang if the host Mac is connected to an iOS device which has one or more companion watches. The hangs occur when the watches aren’t fully prepared for development, or if they are experiencing poor wireless connectivity. (72490921) (FB8945320) 14 | 15 | **Workaround**: Power off the watches, or unpair them from the iPhone. 16 | 17 | You can force Xcode to freshly prepare a watch for development using these steps: 18 | 19 | 1. Force-quit Xcode. 20 | 21 | 2. Power-off and disconnect all iOS device from the Mac. 22 | 23 | 3. Reboot the Mac. 24 | 25 | 4. Launch Xcode, close all projects, and open the Devices and Simulators window. 26 | 27 | 5. Power-on and unlock an iOS device and its companion watchOS devices by entering the passcode as required. 28 | 29 | 6. Plug the iOS device into the Mac using USB cable. 30 | 31 | 7. Check each iOS device and each watch for any pairing request and approve the requests. 32 | 33 | 8. Monitor the status of device preparation in the Devices and Simulators window. If Xcode presents device-preparation errors, follow the guidance in the error message to resolve the error. 34 | 35 | Once Xcode finishes preparing the iOS device and its companion watches for development, repeat steps 5 through 8 for each remaining iOS device and its companion watches until you verify that Xcode has prepared all devices for development. You may now open your Xcode projects and resume development. 36 | 37 | ### Sanitizers 38 | 39 | #### Resolved Issues 40 | 41 | * Fixed a crash that could occur when launching an application with Thread Sanitizer enabled on a Mac with Apple silicon. (72129387, 72262222, 72449940) (FB8933994, FB8938284) 42 | 43 | ### Simulator 44 | 45 | #### Resolved Issues 46 | 47 | * iOS simulated devices no longer display an incorrect yellow tint in translucent UI elements. Certain GPUs may continue to display the tint with some tvOS simulators. (71203015) 48 | 49 | * Fixed an issue that could prevent iOS apps from launching on Macs with Apple silicon. (72360675) 50 | 51 | ### Swift Packages 52 | 53 | #### Known Issues 54 | 55 | * If you use a Swift package with binary dependencies in an app with extensions, the build system incorrectly embeds the binary dependencies alongside the extension in the PlugIns directory, causing validation of the archived app to fail. (69834549) (FB8761306) 56 | 57 | **Workaround**: Add a scheme post-build action which removes the embedded binaries from the PlugIns directory after the build, e.g. `rm -rf "${TARGET_BUILD_DIR}/${TARGET_NAME}.app"/PlugIns/*.framework`. 58 | -------------------------------------------------------------------------------- /Xcode12.5.1.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.5.1 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.5.1 includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5.1 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5.1 requires a Mac running macOS Big Sur 11 or later. 8 | 9 | ### Debugging 10 | 11 | #### Resolved Issues 12 | 13 | * Improved the performance of the Variables View in very large projects. (75381959, 78035413) 14 | 15 | ### Signing and Distribution 16 | 17 | #### Resolved Issues 18 | 19 | * Resolved an issue in which Xcode failed to `codesign` using a smart card. (78035219) 20 | 21 | ### Source Control 22 | 23 | #### Known Issues 24 | 25 | * When you select Upload Key after you clone a repository from a source control provider and associate a locally-generated key with that repository, Xcode doesn’t upload the key. (78824500) 26 | 27 | **Workaround**: Add the key using the source control provider’s website. 28 | 29 | ### Swift Packages 30 | 31 | #### Resolved Issues 32 | 33 | * Fixed an issue where `swift build` exited silently when building a program with package dependencies and a large compiler crash output. (77558631) 34 | 35 | * Fixed an issue where command-line builds of packages sometimes didn’t print a “Build complete!” message. (77669218) 36 | 37 | #### Known Issues 38 | 39 | * Authentication may fail when using Xcode Server with Swift Packages. (77331504) 40 | 41 | **Workaround**: Add `-scmProvider xcode` to the `xcodebuild` arguments in the bot’s configuration. 42 | 43 | ### Testing 44 | 45 | #### Resolved Issues 46 | 47 | * Fixed an issue which caused XCTest UI Recording to not emit automation code in iOS, tvOS, or watchOS. (77511696) (FB9096691) 48 | 49 | #### Known Issues 50 | 51 | * UI interruption monitors don’t work in watchOS. (59571331) 52 | 53 | * UI Test Recording fails to generate code for iOS Simulator targets if recording starts after code execution stops at a breakpoint. (77924295) 54 | 55 | **Workaround**: With no breakpoint set, place your cursor within a test method and press the record button. 56 | -------------------------------------------------------------------------------- /Xcode12.5Beta1.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.5 Beta Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.5 Beta includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5 Beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5 Beta requires a Mac running macOS Big Sur 11 or later. 8 | 9 | ### General 10 | 11 | #### New Features 12 | 13 | * The Reveal Build Products Folder item in the Product menu reveals the build products directory in Finder. (72248847) 14 | 15 | #### Resolved Issues 16 | 17 | * Fixed an issue where code completion, live issues, and other code-analysis features could produce incorrect results after a user moves a source file while an Xcode project is open. (57054858) 18 | 19 | * Large workspaces now open faster. (70276306) 20 | 21 | ### Apple Clang Compiler 22 | 23 | #### New Features 24 | 25 | * The `_LIBCPP_RAW_ITERATORS` macro has been removed from libc++ in favor of using wrapped iterators. (63088925) 26 | 27 | ### Build System 28 | 29 | #### New Features 30 | 31 | * The build system no longer re-signs the hosting app target when building app-hosted test targets; instead it builds test targets before the app target’s sign task runs. This eliminates an extra `codesign` task, which speeds up builds for large apps with such test targets. (47322098) 32 | 33 | * `xcodebuild` now supports the `-archive` flag when creating an XCFramework, providing a shorthand method for creating an XCFramework from one or more archives. (64725832) 34 | 35 | For example: 36 | ``` 37 | xcodebuild -archive -framework MyFramework.framework -archive -framework MyFramework.framework -o 38 | ``` 39 | 40 | #### Known Issues 41 | 42 | * Builds where Parallelize Build is turned off may hit a new dependency cycle when a hosted test target, which defines the `TEST_HOST` build setting, depends on targets other than the target that produces the host bundle (the one to which `TEST_HOST` refers). (73210420) 43 | 44 | **Workaround**: Turn on Parallelize Build in the scheme. If it’s not possible to turn on Parallelize Build, then in the Dependencies build phase of the hosted test target, move the target that produces the host bundle to the end of the list. 45 | 46 | #### Resolved Issues 47 | 48 | * The copy files build phase now properly signs code for embedded frameworks with a framework version that isn’t “A”. (55701162) (FB7323980) 49 | 50 | * You can now manually reorder schemes. (61456142) 51 | 52 | * `xcodebuild` no longer double-escapes the output of `xcodebuild -showBuildSettings -json`. (63554669) 53 | 54 | * Preprocess and Assemble single-file actions now work correctly when analyze-while-building is enabled, and no longer display an empty property list in the source editor. (70811963) 55 | 56 | ### Code Completion 57 | 58 | #### New Features 59 | 60 | * Code completion is more reliable in expressions that contain errors, and in expressions that are ambiguous without additional context. (71378252) 61 | 62 | For example, given: 63 | ```swift 64 | func test(a: Int, b: String) -> Int { ... } 65 | func test(a: Int, b: Int) -> String { ... } 66 | func test(a: (Int, Int) -> Int) -> Int { ... } 67 | ``` 68 | 69 | Invoking code completion after `test().prefix(3).` suggests members of String. Invoking code completion after `test(a: 2).` suggests members of Int and String. Invoking code completion after `$0.` in the following block suggests members of Int: 70 | ```swift 71 | test { 72 | $0. 73 | } 74 | ``` 75 | 76 | ### Debugging 77 | 78 | #### New Features 79 | 80 | * When debugging C++ programs using libc++, LLDB now offers improved expression evaluation support for STL containers and algorithms. 81 | 82 | * You can call member functions of STL containers, even if they are never called in the target program. 83 | 84 | * LLDB can instantiate templated functions from the standard library. This includes algorithms such as `std::sort`, `std::count`, `std::count_if`, etc. (19866497) 85 | 86 | #### Known Issues 87 | 88 | * Xcode fails to launch apps when Nightstand Mode is enabled on Apple Watch. (61351690) 89 | 90 | **Workaround**: Disable Nightstand Mode by going to Settings > General > Nightstand Mode and toggling the switch off. 91 | 92 | ### Instruments 93 | 94 | #### New Features 95 | 96 | * `<(start|end)-pattern>` elements in os-signpost-interval schema are now optional. This allows Custom Instruments to match signposts by name and other properties without needing to specify the expected message format. (43850670) 97 | 98 | * Profiling XCTest with Instruments now automatically starts the recording, without a click on the record button. (50260328) 99 | 100 | * Instruments can now import `os_log` and `os_signpost` data from the ktrace files that include logging-level data. (56037733) 101 | 102 | * Custom Instruments can now specify statically defined sub-tracks without needing to be driven by table column data. (61367995) 103 | 104 | * `xctrace export` now produces output in time-sorted order. (69804348) 105 | 106 | * Table of Contents query for `xctrace` now exposes metadata information about the run. (71320853) 107 | 108 | #### Resolved Issues 109 | 110 | * Fixed an issue where `xctrace` wouldn’t pass a standard input to the launched process. (17842765) 111 | 112 | * Fixed an issue where plot elements wouldn’t draw using the color column specified in a point schema. (71680467) (FB8913696) 113 | 114 | ### Interface Builder 115 | 116 | #### New Features 117 | 118 | * You can now configure a Module for custom classes in the inspector for [`NSObjectController`](https://developer.apple.com/documentation/appkit/nsobjectcontroller) and similar objects. (35971498) 119 | 120 | #### Resolved Issues 121 | 122 | * [`NSButton`](https://developer.apple.com/documentation/appkit/nsbutton)’s “Image Only” Position setting now properly displays an image without a title at runtime. (16200971) 123 | 124 | * Fixed an issue where the assistant editor wouldn’t display source code for a selected object’s custom Swift class if the class was annotated with `@objc`. (19623315) 125 | 126 | * Fixed an issue where connect-to-source wouldn’t properly escape Swift keywords in Outlet and Action names. (22527929) 127 | 128 | * Fixed an issue where Editor > Debug Selected Views failed to attach to `@IBDesignable` views for debugging. (45217745) (FB5645911) 129 | 130 | * Added Dark Mode support for the connect-to-source bindings popover. (47583413) (FB5701084) 131 | 132 | * Fixed iOS canvas appearance issues when importing project images with an unexpected scale. (63789933) (FB7719276) 133 | 134 | * Fixed an issue where the assistant editor could open the wrong source file for a selected object’s custom class if duplicate class names existed in the project. (67362709) 135 | 136 | * Fixed the canvas drifting when resizing the document outline. (67505701) 137 | 138 | * Fixed an issue where selecting the custom color item from an inspector’s color popup menu wouldn’t open the system colors picker window. (69365980) (FB8727901) 139 | 140 | * Selecting a view in the canvas and performing Select All (CMD+A) no longer selects the view’s layout guides. (69518746) 141 | 142 | * Fixed an issue where certain connect-to-source popover labels didn’t show up in Dark Mode. (69713404) 143 | 144 | * Fixed an issue where the custom colors swatch in an inspector’s color properties displayed an incorrectly offset focus indicator. (72370447) 145 | 146 | ### Localization 147 | 148 | #### New Features 149 | 150 | * You can now use Xcode to localize applications into all ISO 639 languages. (46806165) (FB5359472) 151 | 152 | * You can now use workspaces to export a collection of projects for localization, generating a single localization catalog for all projects in the workspace. As part of this change, options to import and export for localization are now in the Product menu instead of the Editor menu. You can also use `xcodebuild -importLocalizations` and `xcodebuild -exportLocalizations` with the `-workspace` option to export or import a workspace. (48548375) 153 | 154 | * The new Localization Export Supported build setting lets you disable localization export for a specific target or project that doesn’t require localization. (66606145) 155 | 156 | #### Resolved Issues 157 | 158 | * Fixed an issue where the Application Language menu in the scheme editor doesn’t show all languages for which a project is localized. (28872507) 159 | 160 | * `*-InfoPlist.strings` files are now renamed to `InfoPlist.strings` at build-time for bundles that require `Info.plist` localization. This is consistent with existing behavior that renames `Info.plist` files at build-time. (38686398) 161 | 162 | * Exporting and importing for localization now produces an error if two files (ex: Main.strings and Main.storyboard) write translations to the same path. (39917359, 52412470) (FB6384066) 163 | 164 | * Fixed an issue where exporting color sets for localization caused Xcode to crash (63934393) 165 | 166 | * Fixed an issue where new-style multiline Swift string literals weren’t properly extracted for localization. (64652467) (FB7742731) 167 | 168 | * Localizable keys in `Info.plist` files are now only automatically extracted on localization export for Application and App Extension targets. (66871236) 169 | 170 | * Fixed an issue where strings were replaced with their keys at localization export if the `.strings` file was outside the directory hierarchy of the Xcode project. (69835864) (FB8761502) 171 | 172 | ### Playgrounds 173 | 174 | #### New Features 175 | 176 | * A Playground in an app’s project can now access symbols from the app target. New playgrounds you create have this option on by default. To enable this functionality in existing playground documents, turn on the Import App Types option in the File Inspector. (66357893) 177 | 178 | * Inline results for deeply nested Swift arrays and structs now display more information in Xcode Playgrounds. (67344623) 179 | 180 | #### Resolved Issues 181 | 182 | * Fixed an issue that could cause Xcode to show “No editor” when opening a Playground. (56484197) 183 | 184 | ### Signing and Distribution 185 | 186 | #### Known Issues 187 | 188 | * When attempting to export a distribution certificates from Xcode, keyboard input may fail in the authentication field, making it impossible to authenticate with a password. (71011727) (FB8880845) 189 | 190 | **Workaround**: Export the certificate and private key using Keychain Access. 191 | 192 | ### Simulator 193 | 194 | #### New Features 195 | 196 | * Simulator now supports recording video from within the app. Hold Option when clicking on the screenshot button in the toolbar (or press Command+R) to record a video. Click the red button to stop video recording. (63041314) 197 | 198 | * Simulator can create animated GIFs from video recordings using the new Record Video feature. After recording a video, right-click on the video preview, then select Save as Animated GIF. To keep both the video file and the animated GIF, press and hold Option and select Save Copy as Animated GIF. You can adjust the dimensions and size of the generated GIFs in Simulator Preferences. (65089299) 199 | 200 | #### Known Issues 201 | 202 | * Apps that use [`WKWebView`](https://developer.apple.com/documentation/webkit/wkwebview) may crash in simulated devices running iOS 13.7 or earlier on a Mac with Apple silicon. (73375522) 203 | 204 | ### Source Control 205 | 206 | #### Resolved Issues 207 | 208 | * Fixed an issue where some workspaces could fail to notice project file changes from source control operations until you quit and relaunched Xcode. (3920347) 209 | 210 | ### StoreKit 211 | 212 | #### New Features 213 | 214 | * StoreKit Testing in Xcode now supports testing of non-renewing subscriptions. (59478394) 215 | 216 | * The [StoreKit Test](https://developer.apple.com/documentation/storekittest) framework is now availabe on watchOS. (68152552) 217 | 218 | ### Swift 219 | 220 | #### New Features 221 | 222 | * Incremental compilation is faster in many cases. When you change code within the body of a struct, class, enum, protocol, or extension, Swift now recompiles far fewer files in that module than before. (51230617) 223 | 224 | * Implicit member expressions now support chains of member accesses. (57295228) 225 | 226 | For example, this code is now valid: 227 | ```swift 228 | let milky: UIColor = .white.withAlphaComponent(0.5) 229 | let milky2: UIColor = .init(named: "white")!.withAlphaComponent(0.5) 230 | let milkyChance: UIColor? = .init(named: "white")?.withAlphaComponent(0.5) 231 | ``` 232 | 233 | As is the case with the existing implicit member expression syntax, the resulting type of the chain must be the same as the (implicit) base, so it isn’t well-formed to write `let cgMilky: CGColor = .white.withAlphaComponent(0.5).cgColor` (unless appropriate white and withAlphaComponent members were defined on CGColor.). 234 | 235 | Members of a “chain” can be properties, method calls, subscript accesses, force unwraps, or optional chaining question marks. Furthermore, the type of each member along the chain is permitted to differ (again, as long as the base of the chain matches the resulting type) meaning the following successfully typechecks: 236 | ```swift 237 | struct Foo { 238 | static var foo = Foo() 239 | static var bar = Bar() 240 | 241 | var anotherFoo: Foo { Foo() } 242 | func getFoo() -> Foo { Foo() } 243 | var optionalFoo: Foo? { Foo() } 244 | subscript() -> Foo { Foo() } 245 | } 246 | 247 | struct Bar { 248 | var anotherFoo = Foo() 249 | } 250 | 251 | let _: Foo? = .bar.anotherFoo.getFoo().optionalFoo?.optionalFoo![] 252 | ``` 253 | 254 | * Swift includes more checks when bridging data from Objective-C. In particular, the runtime library aborts your program with a suitable error message if it detects a non-nullable pointer that contains a null value. (58650899) 255 | 256 | * Property wrappers are now supported on local variables. (73377111) 257 | 258 | * Functions, subscripts, and initializers may now have more than one variadic parameter, as long as all parameters that follow variadic parameters are labeled. (73676506) 259 | 260 | This makes declarations like the following valid: 261 | ```swift 262 | func foo(_ a: Int..., b: Double...) { } 263 | 264 | struct Bar { 265 | subscript(a: Int..., b b: Int...) -> [Int] { a + b } 266 | 267 | init(a: String..., b: Float...) { } 268 | } 269 | ``` 270 | 271 | #### Resolved Issues 272 | 273 | * Function overloading now works in local contexts, making the following valid: 274 | ```swift 275 | func outer(x: Int, y: String) { 276 | func doIt(_: Int) {} 277 | func doIt(_: String) {} 278 | 279 | doIt(x) 280 | doIt(y) 281 | } 282 | ``` 283 | 284 | In this code, the first `doIt(_:)` calls with an Int value, and the second with a String value. (29312676) 285 | 286 | * The runtime and compiler support for Swift’s `is`, `as?`, and `as!` operators has been overhauled, providing more consistent and predictable behavior. (58991956) 287 | 288 | * If your app (including loaded OS binaries) contains multiple redundant protocol conformances, Swift now uses the first one it finds in the first binary loaded (including in OS binaries). (72049977) 289 | 290 | ### Swift Packages 291 | 292 | #### New Features 293 | 294 | * Swift packages that specify a 5.4 tools version can now explicitly declare targets as executable, which allows the use of the `@main` keyword in package code. ([SE-0294](https://forums.swift.org/t/se-0294-declaring-executable-targets-in-package-manifests/42404), 47691185) 295 | 296 | * Swift Package Manager caches package dependencies on a per-user basis, which reduces the amount of network traffic and increases performance of dependency resolution for subsequent uses of the same package. If needed, you can disable cache use in `xcodebuild` by using the new `-disablePackageRepositoryCache` flag. (72204929) 297 | 298 | ### Testing 299 | 300 | #### New Features 301 | 302 | * XCTest now supports marking test failures as “expected”. Expected test failures don’t impact the overall pass/fail result of the suite containing the test. Xcode displays expected failures differently in the Test Navigator and Test Report, and highlights the line of code where the expected failure occurred along with an optional user description. Expected test failures provide a low-overhead tool for preserving the overall “green” state of a project’s test suite when there are failures which can’t be immediately resolved, ensuring that any new failures are clearly visible. In contrast to skipping a test with [`XCTSkip`](https://developer.apple.com/documentation/xctest/xctskip), a test with an expected failure still runs, reporting any unexpected changes. (13408632) 303 | 304 | To mark a failure as expected, call the new [`XCTExpectFailure`](https://developer.apple.com/documentation/xctest/3726077-xctexpectfailure) API in a test before the code which produces the test failure, for example: 305 | ```swift 306 | XCTExpectFailure("…") 307 | // Perform test which currently fails 308 | ``` 309 | 310 | Additionally, the scope of the expected failure can be limited by enclosing the failing code in a closure: 311 | ```swift 312 | // Arrange and act on the test subject 313 | 314 | XCTExpectFailure("…") { 315 | XCTAssert(…) // Failing assertion 316 | } 317 | 318 | // Continue test with further assertions etc. 319 | ``` 320 | 321 | By default, if `XCTExpectFailure` is called but the test doesn’t record a failure, XCTest marks the test as having failed due to an “unmatched expected failure”. This can be suppressed for failures which occur non-deterministically, by passing `XCTExpectFailure` an `XCTExpectedFailure.Options` object as a parameter, with its `isStrict` property set to `false`: 322 | ```swift 323 | let options = XCTExpectedFailure.Options() 324 | options.isStrict = false 325 | XCTExpectFailure("…", options: options) 326 | // Perform test which sometimes fails 327 | ``` 328 | 329 | * Xcode now allows you to clean test results without having to re-open your workspace by selecting Clean Test Results from Xcode’s Product menu. (16527161) 330 | 331 | * Xcode now supports XCTest unit and UI tests for watchOS apps. When creating a new watchOS app, check the Include tests checkbox to add a unit and UI test target to the newly created project. For an existing project, add a unit or UI test target via File > New > Target, and then add the test target to the Test action of the WatchKit App scheme. To run the tests, select a watch simulator or device from the run destinations menu in the toolbar, and then choose Product > Test. Note that testing is supported on watchOS 7.4 or later. (21395998) 332 | 333 | * XCTest now automatically includes specialized subclasses of Swift generic test classes when running tests on macOS 11.3, iOS 14.5, tvOS 14.5, watchOS 7.4, or later OS versions. This allows you to use generics to improve reusability of test classes. (23493200) 334 | 335 | * XCTest now includes [`XCTAssertIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727243-xctassertidentical) and [`XCTAssertNotIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727244-xctassertnotidentical) APIs to assert whether two object instances are identical (the same instance) and are stricter than [`XCTAssertEqual`](https://developer.apple.com/documentation/xctest/xctassertequal) by using the `===` operator instead of `==` in Swift. (46137782) 336 | 337 | #### Known Issues 338 | 339 | * XCTest’s legacy Swift overlay library (`libswiftXCTest.dylib`) has been removed. Don’t use this library; instead use its replacement, `libXCTestSwiftSupport.dylib`. Any frameworks that link XCTest and encounter build issues due to this removed legacy library need to replace their manual framework or library search paths with the build setting `ENABLE_TESTING_SEARCH_PATHS=YES`, which automatically configures a target with the search paths needed to locate XCTest libraries. (70365050) 340 | 341 | * [`XCTOSSignpostMetric`](https://developer.apple.com/documentation/xctest/xctossignpostmetric)’s methods unexpectedly throw an exception on watchOS. (72552791) 342 | 343 | * [`XCUIElement`](https://developer.apple.com/documentation/xctest/xcuielement)’s [`adjust(toNormalizedSliderPosition:)`](https://developer.apple.com/documentation/xctest/xcuielement/1501022-adjust) method may adjust to the wrong value for sliders in Watch apps. (73100059) 344 | 345 | * When a test target has Automatically include new tests disabled in a test plan or scheme, and tests for that test plan or scheme are run via `xcodebuild test-without-building`, each of the selected tests may run twice, which may lead to longer overall run times or timeouts in CI environments. (73230328) 346 | 347 | **Workaround**: Enable Automatically include new tests for affected test targets, or use `test` instead of `test-without-building`. 348 | 349 | * UI tests running on iOS devices that use the arm64e architecture (including iPhone XS and later) fail to launch with a `Symbol not found` error. (73263692) 350 | 351 | **Workaround**: In the Xcode build settings for affected UI test targets, under Other Swift Flags (`OTHER_SWIFT_FLAGS`), add `-runtime-compatibility-version none`. 352 | 353 | * Running specific test methods or classes written in Swift using the `xctest` or `swift test` command line tools doesn’t work on Apple platforms if those classes don’t explicitly customize their ObjC name using `@objc(...)`. (73267118) 354 | 355 | **Workaround**: Run the entire test bundle, or customize affected classes’ names using `@objc(...)`. 356 | 357 | * When running unit tests for a Watch app, the tests may sometimes fail to start after the app has launched. (73478326) 358 | 359 | **Workaround**: Run the test again, or close the simulated device and try again. 360 | 361 | #### Resolved Issues 362 | 363 | * The `message` String parameter of `XCTSkip.init(_:file:line:)` no longer includes `@autoclosure` incorrectly. Unlike its conditional variants [`XCTSkipIf`](https://developer.apple.com/documentation/xctest/xctskipif) and [`XCTSkipUnless`](https://developer.apple.com/documentation/xctest/xctskipunless), XCTSkip’s initializer unconditionally evaluates its message string. (63827685) 364 | 365 | * If a test times out (due to having Test Timeouts enabled in the active Test Plan), any content that the test emitted to standard out or standard error prior to the timeout is now included in the test log. (64591225) 366 | 367 | * Xcode and xcodebuild now prevent the computer from sleeping while executing tests. (67493488) 368 | 369 | * If code under test crashes, and Xcode is able to collect a crash report, the error message that Xcode generates in the Test Report and Test Log includes the crashing symbol, as well as the Application Specific Information field from the crash report. (69755517) 370 | -------------------------------------------------------------------------------- /Xcode12.5Beta2.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.5 Beta 2 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.5 Beta 2 includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5 Beta 2 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5 Beta 2 requires a Mac running macOS Big Sur 11 or later. 8 | 9 | ### General 10 | 11 | #### New Features 12 | 13 | * You can create macOS File Provider extensions using the new File Provider Extension target template. (54054417) 14 | 15 | ### Build System 16 | 17 | #### Resolved Issues 18 | 19 | * Builds with Parallelize Build disabled no longer hit a new dependency cycle if a hosted test target with a defined `TEST_HOST` build setting depends on targets other than the one that produces the host bundle. (73210420) 20 | 21 | ### Debugging 22 | 23 | #### Known Issues 24 | 25 | * Xcode fails to launch apps when Nightstand Mode is enabled on Apple Watch. (61351690) 26 | 27 | **Workaround**: Disable Nightstand Mode in Settings > General > Nightstand Mode on the Apple Watch. 28 | 29 | ### Instruments 30 | 31 | #### Resolved Issues 32 | 33 | * Launching an extension via Product > Profile in Xcode no longer causes Instruments to wait indefinitely for the process to start. (62275419) (FB7674284) 34 | 35 | * Fixed a crash that could occur when transferring a Metal app from Xcode to Instruments and starting recording. (70655385) (FB8824932) 36 | 37 | * Revised the `xctrace export` XML schema for Run Information. You may need to adjust code that parsed the output from earlier beta releases of Xcode 12.5. (73204384) 38 | 39 | * Fixed a crash that occurred when recording a trace with the Game Performance template. (73265950) 40 | 41 | ### Signing and Distribution 42 | 43 | #### Resolved Issues 44 | 45 | * Resolved an issue that prevented the export of distribution certificates from Xcode due to a keyboard focus issue with the authentication window. (71011727) (FB8880845) 46 | 47 | #### Known Issues 48 | 49 | * OS X 10.11 and earlier may reject code signatures added to universal binaries by Xcode 12.5. (70724583) (FB8830007) 50 | 51 | **Workaround**: Specify `--digest-algorithm=sha1,sha256` to the `codesign` utility at signing time. In Xcode, specify this using the `OTHER_CODE_SIGN_FLAGS` build setting. 52 | 53 | * OS X 10.11 and earlier may reject packages signed on OS X 10.11 and earlier, with an error that indicates the packages contain an invalid signature. (71695608) 54 | 55 | **Workaround**: Re-sign the impacted packages on macOS Catalina or earlier, using the `productsign` command line utility. 56 | 57 | ### Simulator 58 | 59 | #### Resolved Issues 60 | 61 | * Fixed an issue that caused apps using [`WKWebView`](https://developer.apple.com/documentation/webkit/wkwebview) to crash on simulated devices running iOS 13.7 or earlier on a Mac with Apple silicon. (73375522) 62 | 63 | * Simulated devices running iOS 14.5 and iPadOS 14.5 no longer ignore the Shift key on attached keyboard devices. (73929715) (FB8988913) 64 | 65 | #### Known Issues 66 | 67 | * You can’t log into iCloud on a simulated device running iOS 14.5, iPadOS 14.5, tvOS 14.5, or watchOS 7.4. (74295005) 68 | 69 | ### Swift 70 | 71 | #### New Features 72 | 73 | * Property wrappers now work in local contexts. (74192307) 74 | 75 | For example, this code is now valid: 76 | ```swift 77 | @propertyWrapper 78 | struct Wrapper { 79 | var wrappedValue: T 80 | } 81 | 82 | func test() { 83 | @Wrapper var value = 10 84 | } 85 | ``` 86 | 87 | #### Known Issues 88 | 89 | * The compiler may generate incorrect code when you use an `enum` `case` with associated values to satisfy a protocol requirement. (72302307) 90 | 91 | For example: 92 | ```swift 93 | protocol FileHandlerAction { 94 | static func setFileURL(_ fileURL: NSURL) -> Self 95 | } 96 | 97 | enum AppAction : FileHandlerAction { 98 | case setFileURL(NSURL) 99 | } 100 | ``` 101 | 102 | **Workaround**: Provide a static method to satisfy the requirement: 103 | ```swift 104 | enum AppAction : FileHandlerAction { 105 | case _setFileURL(NSURL) 106 | 107 | static func setFileURL(_ fileURL: NSURL) -> Self { 108 | return ._setFileURL(fileURL) 109 | } 110 | } 111 | ``` 112 | 113 | ### Swift Packages 114 | 115 | #### New Features 116 | 117 | * The Swift Package Manager now builds package products and targets as dynamic frameworks automatically, if doing so avoids duplication of library code at runtime. (59931771) (FB7608638) 118 | 119 | ### Testing 120 | 121 | #### New Features 122 | 123 | * The code coverage report now shows the number of executable lines per file. (68808019) 124 | 125 | #### Resolved Issues 126 | 127 | * Fixed an issue where methods on [`XCTOSSignpostMetric`](https://developer.apple.com/documentation/xctest/xctossignpostmetric) threw an exception on watchOS. (72552791) 128 | 129 | * Fixed an issue where the [`adjust(toNormalizedSliderPosition:)`](https://developer.apple.com/documentation/xctest/xcuielement/1501022-adjust) method on [`XCUIElement`](https://developer.apple.com/documentation/xctest/xcuielement) would adjust to the wrong value for sliders in Watch apps. (73100059) 130 | 131 | * `xcodebuild test-without-building` no longer runs a test plan or scheme’s tests twice when you have disabled the test target’s “Automatically include new tests” run option. (73230328) 132 | 133 | * Fixed an issue where UI tests running on iOS devices using the arm64e architecture (including iPhone XS and later) failed to launch, with a `Symbol not found` error. (73263692) 134 | 135 | * Test methods and classes written in Swift and that don’t explicitly customize their Objective-C name using `@objc(...)` now work when using the `xctest` or `swift test` command line tools on Apple platforms. (73267118) 136 | 137 | * Fixed an issue where unit tests for a Watch app failed to start after the app launched. (73478326) 138 | 139 | #### Known Issues 140 | 141 | * Xcode may incorrectly report a name that starts with “” for tests the test code dynamically generates at runtime. (73767460) 142 | 143 | #### Deprecations 144 | 145 | * Xcode no longer includes XCTest’s legacy Swift overlay library (`libswiftXCTest.dylib`). Use the library’s replacement, `libXCTestSwiftSupport.dylib`, instead. For frameworks that link XCTest and encounter build issues due to this removed legacy library, replace those frameworks’ manual framework and library search paths with the build setting `ENABLE_TESTING_SEARCH_PATHS=YES`, which automatically configures the target with the search paths needed to locate XCTest libraries. (70365050) 146 | 147 | ## Updates in Xcode 12.5 Beta 148 | 149 | ### General 150 | 151 | #### New Features 152 | 153 | * The Reveal Build Products Folder item in the Product menu reveals the build products directory in Finder. (72248847) 154 | 155 | #### Resolved Issues 156 | 157 | * Fixed an issue where code completion, live issues, and other code-analysis features could produce incorrect results after a user moves a source file while an Xcode project is open. (57054858) 158 | 159 | * Large workspaces now open faster. (70276306) 160 | 161 | ### Apple Clang Compiler 162 | 163 | #### New Features 164 | 165 | * The `_LIBCPP_RAW_ITERATORS` macro has been removed from libc++ in favor of using wrapped iterators. (63088925) 166 | 167 | ### Build System 168 | 169 | #### New Features 170 | 171 | * The build system no longer re-signs the hosting app target when building app-hosted test targets; instead it builds test targets before the app target’s sign task runs. This eliminates an extra `codesign` task, which speeds up builds for large apps with such test targets. (47322098) 172 | 173 | * `xcodebuild` now supports the `-archive` flag when creating an XCFramework, providing a shorthand method for creating an XCFramework from one or more archives. (64725832) 174 | 175 | For example: 176 | ``` 177 | xcodebuild -archive -framework MyFramework.framework -archive -framework MyFramework.framework -o 178 | ``` 179 | 180 | #### Resolved Issues 181 | 182 | * The copy files build phase now properly signs code for embedded frameworks with a framework version that isn’t “A”. (55701162) (FB7323980) 183 | 184 | * You can now manually reorder schemes. (61456142) 185 | 186 | * `xcodebuild` no longer double-escapes the output of `xcodebuild -showBuildSettings -json`. (63554669) 187 | 188 | * Preprocess and Assemble single-file actions now work correctly when analyze-while-building is enabled, and no longer display an empty property list in the source editor. (70811963) 189 | 190 | ### Code Completion 191 | 192 | #### New Features 193 | 194 | * Code completion is more reliable in expressions that contain errors, and in expressions that are ambiguous without additional context. (71378252) 195 | 196 | For example, given: 197 | ```swift 198 | func test(a: Int, b: String) -> Int { ... } 199 | func test(a: Int, b: Int) -> String { ... } 200 | func test(a: (Int, Int) -> Int) -> Int { ... } 201 | ``` 202 | 203 | Invoking code completion after `test().prefix(3).` suggests members of String. Invoking code completion after `test(a: 2).` suggests members of Int and String. Invoking code completion after `$0.` in the following block suggests members of Int: 204 | ```swift 205 | test { 206 | $0. 207 | } 208 | ``` 209 | 210 | ### Debugging 211 | 212 | #### New Features 213 | 214 | * When debugging C++ programs using libc++, LLDB now offers improved expression evaluation support for STL containers and algorithms. 215 | 216 | * You can call member functions of STL containers, even if they are never called in the target program. 217 | 218 | * LLDB can instantiate templated functions from the standard library. This includes algorithms such as `std::sort`, `std::count`, `std::count_if`, etc. (19866497) 219 | 220 | ### Instruments 221 | 222 | #### New Features 223 | 224 | * `<(start|end)-pattern>` elements in os-signpost-interval schema are now optional. This allows Custom Instruments to match signposts by name and other properties without needing to specify the expected message format. (43850670) 225 | 226 | * Profiling XCTest with Instruments now automatically starts the recording, without a click on the record button. (50260328) 227 | 228 | * Instruments can now import `os_log` and `os_signpost` data from the ktrace files that include logging-level data. (56037733) 229 | 230 | * Custom Instruments can now specify statically defined sub-tracks without needing to be driven by table column data. (61367995) 231 | 232 | * `xctrace export` now produces output in time-sorted order. (69804348) 233 | 234 | * Table of Contents query for `xctrace` now exposes metadata information about the run. (71320853) 235 | 236 | #### Resolved Issues 237 | 238 | * Fixed an issue where `xctrace` wouldn’t pass a standard input to the launched process. (17842765) 239 | 240 | * Fixed an issue where plot elements wouldn’t draw using the color column specified in a point schema. (71680467) (FB8913696) 241 | 242 | ### Interface Builder 243 | 244 | #### New Features 245 | 246 | * You can now configure a Module for custom classes in the inspector for [`NSObjectController`](https://developer.apple.com/documentation/appkit/nsobjectcontroller) and similar objects. (35971498) 247 | 248 | #### Resolved Issues 249 | 250 | * [`NSButton`](https://developer.apple.com/documentation/appkit/nsbutton)’s “Image Only” Position setting now properly displays an image without a title at runtime. (16200971) 251 | 252 | * Fixed an issue where the assistant editor wouldn’t display source code for a selected object’s custom Swift class if the class was annotated with `@objc`. (19623315) 253 | 254 | * Fixed an issue where connect-to-source wouldn’t properly escape Swift keywords in Outlet and Action names. (22527929) 255 | 256 | * Fixed an issue where Editor > Debug Selected Views failed to attach to `@IBDesignable` views for debugging. (45217745) (FB5645911) 257 | 258 | * Added Dark Mode support for the connect-to-source bindings popover. (47583413) (FB5701084) 259 | 260 | * Fixed iOS canvas appearance issues when importing project images with an unexpected scale. (63789933) (FB7719276) 261 | 262 | * Fixed an issue where the assistant editor could open the wrong source file for a selected object’s custom class if duplicate class names existed in the project. (67362709) 263 | 264 | * Fixed the canvas drifting when resizing the document outline. (67505701) 265 | 266 | * Fixed an issue where selecting the custom color item from an inspector’s color popup menu wouldn’t open the system colors picker window. (69365980) (FB8727901) 267 | 268 | * Selecting a view in the canvas and performing Select All (CMD+A) no longer selects the view’s layout guides. (69518746) 269 | 270 | * Fixed an issue where certain connect-to-source popover labels didn’t show up in Dark Mode. (69713404) 271 | 272 | * Fixed an issue where the custom colors swatch in an inspector’s color properties displayed an incorrectly offset focus indicator. (72370447) 273 | 274 | ### Localization 275 | 276 | #### New Features 277 | 278 | * You can now use Xcode to localize applications into all ISO 639 languages. (46806165) (FB5359472) 279 | 280 | * You can now use workspaces to export a collection of projects for localization, generating a single localization catalog for all projects in the workspace. As part of this change, options to import and export for localization are now in the Product menu instead of the Editor menu. You can also use `xcodebuild -importLocalizations` and `xcodebuild -exportLocalizations` with the `-workspace` option to export or import a workspace. (48548375) 281 | 282 | * The new Localization Export Supported build setting lets you disable localization export for a specific target or project that doesn’t require localization. (66606145) 283 | 284 | #### Resolved Issues 285 | 286 | * Fixed an issue where the Application Language menu in the scheme editor doesn’t show all languages for which a project is localized. (28872507) 287 | 288 | * `*-InfoPlist.strings` files are now renamed to `InfoPlist.strings` at build-time for bundles that require `Info.plist` localization. This is consistent with existing behavior that renames `Info.plist` files at build-time. (38686398) 289 | 290 | * Exporting and importing for localization now produces an error if two files (ex: Main.strings and Main.storyboard) write translations to the same path. (39917359, 52412470) (FB6384066) 291 | 292 | * Fixed an issue where exporting color sets for localization caused Xcode to crash (63934393) 293 | 294 | * Fixed an issue where new-style multiline Swift string literals weren’t properly extracted for localization. (64652467) (FB7742731) 295 | 296 | * Localizable keys in `Info.plist` files are now only automatically extracted on localization export for Application and App Extension targets. (66871236) 297 | 298 | * Fixed an issue where strings were replaced with their keys at localization export if the `.strings` file was outside the directory hierarchy of the Xcode project. (69835864) (FB8761502) 299 | 300 | ### Playgrounds 301 | 302 | #### New Features 303 | 304 | * A Playground in an app’s project can now access symbols from the app target. New playgrounds you create have this option on by default. To enable this functionality in existing playground documents, turn on the Import App Types option in the File Inspector. (66357893) 305 | 306 | * Inline results for deeply nested Swift arrays and structs now display more information in Xcode Playgrounds. (67344623) 307 | 308 | #### Resolved Issues 309 | 310 | * Fixed an issue that could cause Xcode to show “No editor” when opening a Playground. (56484197) 311 | 312 | ### Simulator 313 | 314 | #### New Features 315 | 316 | * Simulator now supports recording video from within the app. Hold Option when clicking on the screenshot button in the toolbar (or press Command+R) to record a video. Click the red button to stop video recording. (63041314) 317 | 318 | * Simulator can create animated GIFs from video recordings using the new Record Video feature. After recording a video, right-click on the video preview, then select Save as Animated GIF. To keep both the video file and the animated GIF, press and hold Option and select Save Copy as Animated GIF. You can adjust the dimensions and size of the generated GIFs in Simulator Preferences. (65089299) 319 | 320 | ### Source Control 321 | 322 | #### Resolved Issues 323 | 324 | * Fixed an issue where some workspaces could fail to notice project file changes from source control operations until you quit and relaunched Xcode. (3920347) 325 | 326 | ### StoreKit 327 | 328 | #### New Features 329 | 330 | * StoreKit Testing in Xcode now supports testing of non-renewing subscriptions. (59478394) 331 | 332 | * The [StoreKit Test](https://developer.apple.com/documentation/storekittest) framework is now availabe on watchOS. (68152552) 333 | 334 | ### Swift 335 | 336 | #### New Features 337 | 338 | * Incremental compilation is faster in many cases. When you change code within the body of a struct, class, enum, protocol, or extension, Swift now recompiles far fewer files in that module than before. (51230617) 339 | 340 | * Implicit member expressions now support chains of member accesses. (57295228) 341 | 342 | For example, this code is now valid: 343 | ```swift 344 | let milky: UIColor = .white.withAlphaComponent(0.5) 345 | let milky2: UIColor = .init(named: "white")!.withAlphaComponent(0.5) 346 | let milkyChance: UIColor? = .init(named: "white")?.withAlphaComponent(0.5) 347 | ``` 348 | 349 | As is the case with the existing implicit member expression syntax, the resulting type of the chain must be the same as the (implicit) base, so it isn’t well-formed to write `let cgMilky: CGColor = .white.withAlphaComponent(0.5).cgColor` (unless appropriate white and withAlphaComponent members were defined on CGColor.). 350 | 351 | Members of a “chain” can be properties, method calls, subscript accesses, force unwraps, or optional chaining question marks. Furthermore, the type of each member along the chain is permitted to differ (again, as long as the base of the chain matches the resulting type) meaning the following successfully typechecks: 352 | ```swift 353 | struct Foo { 354 | static var foo = Foo() 355 | static var bar = Bar() 356 | 357 | var anotherFoo: Foo { Foo() } 358 | func getFoo() -> Foo { Foo() } 359 | var optionalFoo: Foo? { Foo() } 360 | subscript() -> Foo { Foo() } 361 | } 362 | 363 | struct Bar { 364 | var anotherFoo = Foo() 365 | } 366 | 367 | let _: Foo? = .bar.anotherFoo.getFoo().optionalFoo?.optionalFoo![] 368 | ``` 369 | 370 | * Swift includes more checks when bridging data from Objective-C. In particular, the runtime library aborts your program with a suitable error message if it detects a non-nullable pointer that contains a null value. (58650899) 371 | 372 | * Property wrappers are now supported on local variables. (73377111) 373 | 374 | * Functions, subscripts, and initializers may now have more than one variadic parameter, as long as all parameters that follow variadic parameters are labeled. (73676506) 375 | 376 | This makes declarations like the following valid: 377 | ```swift 378 | func foo(_ a: Int..., b: Double...) { } 379 | 380 | struct Bar { 381 | subscript(a: Int..., b b: Int...) -> [Int] { a + b } 382 | 383 | init(a: String..., b: Float...) { } 384 | } 385 | ``` 386 | 387 | #### Resolved Issues 388 | 389 | * Function overloading now works in local contexts, making the following valid: 390 | ```swift 391 | func outer(x: Int, y: String) { 392 | func doIt(_: Int) {} 393 | func doIt(_: String) {} 394 | 395 | doIt(x) 396 | doIt(y) 397 | } 398 | ``` 399 | 400 | In this code, the first `doIt(_:)` calls with an Int value, and the second with a String value. (29312676) 401 | 402 | * The runtime and compiler support for Swift’s `is`, `as?`, and `as!` operators has been overhauled, providing more consistent and predictable behavior. (58991956) 403 | 404 | * If your app (including loaded OS binaries) contains multiple redundant protocol conformances, Swift now uses the first one it finds in the first binary loaded (including in OS binaries). (72049977) 405 | 406 | ### Swift Packages 407 | 408 | #### New Features 409 | 410 | * Swift packages that specify a 5.4 tools version can now explicitly declare targets as executable, which allows the use of the `@main` keyword in package code. ([SE-0294](https://forums.swift.org/t/se-0294-declaring-executable-targets-in-package-manifests/42404), 47691185) 411 | 412 | * Swift Package Manager caches package dependencies on a per-user basis, which reduces the amount of network traffic and increases performance of dependency resolution for subsequent uses of the same package. If needed, you can disable cache use in `xcodebuild` by using the new `-disablePackageRepositoryCache` flag. (72204929) 413 | 414 | ### Testing 415 | 416 | #### New Features 417 | 418 | * XCTest now supports marking test failures as “expected”. Expected test failures don’t impact the overall pass/fail result of the suite containing the test. Xcode displays expected failures differently in the Test Navigator and Test Report, and highlights the line of code where the expected failure occurred along with an optional user description. Expected test failures provide a low-overhead tool for preserving the overall “green” state of a project’s test suite when there are failures which can’t be immediately resolved, ensuring that any new failures are clearly visible. In contrast to skipping a test with [`XCTSkip`](https://developer.apple.com/documentation/xctest/xctskip), a test with an expected failure still runs, reporting any unexpected changes. (13408632) 419 | 420 | To mark a failure as expected, call the new [`XCTExpectFailure`](https://developer.apple.com/documentation/xctest/3726077-xctexpectfailure) API in a test before the code which produces the test failure, for example: 421 | ```swift 422 | XCTExpectFailure("…") 423 | // Perform test which currently fails 424 | ``` 425 | 426 | Additionally, the scope of the expected failure can be limited by enclosing the failing code in a closure: 427 | ```swift 428 | // Arrange and act on the test subject 429 | 430 | XCTExpectFailure("…") { 431 | XCTAssert(…) // Failing assertion 432 | } 433 | 434 | // Continue test with further assertions etc. 435 | ``` 436 | 437 | By default, if `XCTExpectFailure` is called but the test doesn’t record a failure, XCTest marks the test as having failed due to an “unmatched expected failure”. This can be suppressed for failures which occur non-deterministically, by passing `XCTExpectFailure` an `XCTExpectedFailure.Options` object as a parameter, with its `isStrict` property set to `false`: 438 | ```swift 439 | let options = XCTExpectedFailure.Options() 440 | options.isStrict = false 441 | XCTExpectFailure("…", options: options) 442 | // Perform test which sometimes fails 443 | ``` 444 | 445 | * Xcode now allows you to clean test results without having to re-open your workspace by selecting Clean Test Results from Xcode’s Product menu. (16527161) 446 | 447 | * Xcode now supports XCTest unit and UI tests for watchOS apps. When creating a new watchOS app, check the Include tests checkbox to add a unit and UI test target to the newly created project. For an existing project, add a unit or UI test target via File > New > Target, and then add the test target to the Test action of the WatchKit App scheme. To run the tests, select a watch simulator or device from the run destinations menu in the toolbar, and then choose Product > Test. Note that testing is supported on watchOS 7.4 or later. (21395998) 448 | 449 | * XCTest now automatically includes specialized subclasses of Swift generic test classes when running tests on macOS 11.3, iOS 14.5, tvOS 14.5, watchOS 7.4, or later OS versions. This allows you to use generics to improve reusability of test classes. (23493200) 450 | 451 | * XCTest now includes [`XCTAssertIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727243-xctassertidentical) and [`XCTAssertNotIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727244-xctassertnotidentical) APIs to assert whether two object instances are identical (the same instance) and are stricter than [`XCTAssertEqual`](https://developer.apple.com/documentation/xctest/xctassertequal) by using the `===` operator instead of `==` in Swift. (46137782) 452 | 453 | #### Resolved Issues 454 | 455 | * The `message` String parameter of `XCTSkip.init(_:file:line:)` no longer includes `@autoclosure` incorrectly. Unlike its conditional variants [`XCTSkipIf`](https://developer.apple.com/documentation/xctest/xctskipif) and [`XCTSkipUnless`](https://developer.apple.com/documentation/xctest/xctskipunless), XCTSkip’s initializer unconditionally evaluates its message string. (63827685) 456 | 457 | * If a test times out (due to having Test Timeouts enabled in the active Test Plan), any content that the test emitted to standard out or standard error prior to the timeout is now included in the test log. (64591225) 458 | 459 | * Xcode and xcodebuild now prevent the computer from sleeping while executing tests. (67493488) 460 | 461 | * If code under test crashes, and Xcode is able to collect a crash report, the error message that Xcode generates in the Test Report and Test Log includes the crashing symbol, as well as the Application Specific Information field from the crash report. (69755517) 462 | -------------------------------------------------------------------------------- /Xcode12.5Beta3.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.5 Beta 3 Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.5 Beta 3 includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5 Beta 3 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5 Beta 3 requires a Mac running macOS Big Sur 11 or later. 8 | 9 | ### Code Completion 10 | 11 | #### Resolved Issues 12 | 13 | * Code completion now returns suggestions more quickly inside large function bodies. (58687608) 14 | 15 | ### Debugging 16 | 17 | #### Known Issues 18 | 19 | * Xcode fails to launch apps when Nightstand Mode is enabled on Apple Watch. (61351690) 20 | 21 | **Workaround**: Disable Nightstand Mode in Settings > General > Nightstand Mode on the Apple Watch. 22 | 23 | * On Macs with Apple silicon, apps crash when you build and run them using Rosetta translation on macOS Big Sur 11.3 Beta 2. (73456059) 24 | 25 | **Workaround**: Disable debugging using the scheme editor, or upgrade to macOS Big Sur 11.3 Beta 3. 26 | 27 | ### Devices 28 | 29 | #### Known Issues 30 | 31 | * When running on a Mac with Apple silicon, Xcode may fail to connect to an Apple Watch device, presenting a message stating that the connection “is taking longer than expected.” While Xcode offers the option to continue to wait, the connection never completes. (74822495) 32 | 33 | **Workaround**: Develop with a simulated watchOS device, or using an Intel Mac. 34 | 35 | ### Signing and Distribution 36 | 37 | #### Resolved Issues 38 | 39 | * Fixed an issue that caused OS X 10.11 and earlier to reject packages signed on OS X 10.11 and earlier. (71695608) 40 | 41 | #### Known Issues 42 | 43 | * OS X 10.11 and earlier may reject code signatures added to universal binaries by Xcode 12.5. (70724583) (FB8830007) 44 | 45 | **Workaround**: Specify `--digest-algorithm=sha1,sha256` to the `codesign` utility at signing time. In Xcode, specify this using the `OTHER_CODE_SIGN_FLAGS` build setting. 46 | 47 | ### Simulator 48 | 49 | #### Known Issues 50 | 51 | * When running a simulated device from a host app (such as Simulator, Xcode, or a CI server) running under Rosetta translation, spawning a new process in the simulated device fails with an “invalid device state” error. (71913373) 52 | 53 | **Workaround**: Launch Simulator or Xcode natively. 54 | 55 | * Siri may not respond to voice input on simulated devices. (74158392, 74297245) 56 | 57 | * Siri isn’t on by default in simulated iOS and iPadOS devices. (74261033) 58 | 59 | **Workaround**: Use the Settings app to enable Siri. 60 | 61 | * Siri isn’t available in simulated tvOS devices. (74261184) 62 | 63 | * You can’t log into iCloud on a simulated device running iOS 14.5, iPadOS 14.5, tvOS 14.5, or watchOS 7.4. (74295005) 64 | 65 | ### Swift 66 | 67 | #### Resolved Issues 68 | 69 | * Fixed an issue where code signing of binary targets might fail with a “bundle format unrecognized, invalid, or unsuitable” error. (74570259) (FB9014663) 70 | 71 | #### Known Issues 72 | 73 | * The compiler may generate incorrect code when you use an `enum` `case` with associated values to satisfy a protocol requirement. (72302307) 74 | 75 | For example: 76 | ```swift 77 | protocol FileHandlerAction { 78 | static func setFileURL(_ fileURL: NSURL) -> Self 79 | } 80 | 81 | enum AppAction : FileHandlerAction { 82 | case setFileURL(NSURL) 83 | } 84 | ``` 85 | 86 | **Workaround**: Provide a static method to satisfy the requirement: 87 | ```swift 88 | enum AppAction : FileHandlerAction { 89 | case _setFileURL(NSURL) 90 | 91 | static func setFileURL(_ fileURL: NSURL) -> Self { 92 | return ._setFileURL(fileURL) 93 | } 94 | } 95 | ``` 96 | 97 | #### Deprecations 98 | 99 | * The Swift compiler emits a warning for the use of the `await` keyword as an unqualified identifier. Wrap `await` with back-ticks so Swift always treats it as an identifier, or fully qualify declarations named await (for example, by adding `self` if it is a reference to an instance member named `await` from within the instance). ([SE-0296](https://github.com/apple/swift-evolution/blob/main/proposals/0296-async-await.md), 67000350) 100 | 101 | ### Testing 102 | 103 | #### Resolved Issues 104 | 105 | * Xcode no longer incorrectly reports a name that starts with “” for tests that the test code dynamically generates at runtime. (73767460) 106 | 107 | #### Deprecations 108 | 109 | * Xcode no longer includes XCTest’s legacy Swift overlay library (`libswiftXCTest.dylib`). Use the library’s replacement, `libXCTestSwiftSupport.dylib`, instead. For frameworks that encounter build issues because of the removal of the legacy library, delete the framework and library search paths for `libswiftXCTest.dylib` and add the `ENABLE_TESTING_SEARCH_PATHS=YES` build setting. This setting automatically sets the target’s search paths so that it can locate the replacement XCTest library. (70365050) 110 | 111 | ## Updates in Xcode 12.5 Beta 2 112 | 113 | ### General 114 | 115 | #### New Features 116 | 117 | * You can create macOS File Provider extensions using the new File Provider Extension target template. (54054417) 118 | 119 | ### Build System 120 | 121 | #### Resolved Issues 122 | 123 | * Builds with Parallelize Build disabled no longer hit a new dependency cycle if a hosted test target with a defined `TEST_HOST` build setting depends on targets other than the one that produces the host bundle. (73210420) 124 | 125 | ### Instruments 126 | 127 | #### Resolved Issues 128 | 129 | * Launching an extension via Product > Profile in Xcode no longer causes Instruments to wait indefinitely for the process to start. (62275419) (FB7674284) 130 | 131 | * Fixed a crash that sometimes occurred when transferring a Metal app from Xcode to Instruments and starting recording. (70655385) (FB8824932) 132 | 133 | * Revised the `xctrace export` XML schema for Run Information. You may need to adjust code that parsed the output from earlier beta releases of Xcode 12.5. (73204384) 134 | 135 | * Fixed a crash that occurred when recording a trace with the Game Performance template. (73265950) 136 | 137 | ### Signing and Distribution 138 | 139 | #### Resolved Issues 140 | 141 | * Resolved an issue that prevented exporting distribution certificates from Xcode due to a keyboard focus issue in the authentication window. (71011727) (FB8880845) 142 | 143 | ### Simulator 144 | 145 | #### Resolved Issues 146 | 147 | * Fixed an issue that caused apps using [`WKWebView`](https://developer.apple.com/documentation/webkit/wkwebview) to crash on simulated devices running iOS 13.7 or earlier on a Mac with Apple silicon. (73375522) 148 | 149 | * Simulated devices running iOS 14.5 and iPadOS 14.5 no longer ignore the Shift key on attached keyboard devices. (73929715) (FB8988913) 150 | 151 | ### Swift 152 | 153 | #### New Features 154 | 155 | * Property wrappers now work in local contexts. (74192307) 156 | 157 | For example, this code is now valid: 158 | ```swift 159 | @propertyWrapper 160 | struct Wrapper { 161 | var wrappedValue: T 162 | } 163 | 164 | func test() { 165 | @Wrapper var value = 10 166 | } 167 | ``` 168 | 169 | ### Swift Packages 170 | 171 | #### New Features 172 | 173 | * The Swift Package Manager now builds package products and targets as dynamic frameworks automatically, if doing so avoids duplication of library code at runtime. (59931771) (FB7608638) 174 | 175 | ### Testing 176 | 177 | #### New Features 178 | 179 | * The code coverage report now shows the number of executable lines per file. (68808019) 180 | 181 | #### Resolved Issues 182 | 183 | * Fixed an issue where methods on [`XCTOSSignpostMetric`](https://developer.apple.com/documentation/xctest/xctossignpostmetric) threw an exception on watchOS. (72552791) 184 | 185 | * Fixed an issue where the [`adjust(toNormalizedSliderPosition:)`](https://developer.apple.com/documentation/xctest/xcuielement/1501022-adjust) method on [`XCUIElement`](https://developer.apple.com/documentation/xctest/xcuielement) would adjust to the wrong value for sliders in Watch apps. (73100059) 186 | 187 | * `xcodebuild test-without-building` no longer runs a test plan or scheme’s tests twice when you have disabled the test target’s “Automatically include new tests” run option. (73230328) 188 | 189 | * Fixed an issue where UI tests running on iOS devices using the arm64e architecture (including iPhone XS and later) failed to launch, with a `Symbol not found` error. (73263692) 190 | 191 | * Test methods and classes written in Swift and that don’t explicitly customize their Objective-C name using `@objc(...)` now work when using the `xctest` or `swift test` command line tools on Apple platforms. (73267118) 192 | 193 | * Fixed an issue where unit tests for a Watch app failed to start after the app launched. (73478326) 194 | 195 | ## Updates in Xcode 12.5 Beta 196 | 197 | ### General 198 | 199 | #### New Features 200 | 201 | * The Reveal Build Products Folder item in the Product menu reveals the build products directory in Finder. (72248847) 202 | 203 | #### Resolved Issues 204 | 205 | * Fixed an issue where code completion, live issues, and other code-analysis features could produce incorrect results after a user moves a source file while an Xcode project is open. (57054858) 206 | 207 | * Large workspaces now open faster. (70276306) 208 | 209 | ### Apple Clang Compiler 210 | 211 | #### New Features 212 | 213 | * The `_LIBCPP_RAW_ITERATORS` macro has been removed from libc++ in favor of using wrapped iterators. (63088925) 214 | 215 | ### Build System 216 | 217 | #### New Features 218 | 219 | * The build system no longer re-signs the hosting app target when building app-hosted test targets; instead it builds test targets before the app target’s sign task runs. This eliminates an extra `codesign` task, which speeds up builds for large apps with such test targets. (47322098) 220 | 221 | * `xcodebuild` now supports the `-archive` flag when creating an XCFramework, providing a shorthand method for creating an XCFramework from one or more archives. (64725832) 222 | 223 | For example: 224 | ``` 225 | xcodebuild -archive -framework MyFramework.framework -archive -framework MyFramework.framework -o 226 | ``` 227 | 228 | #### Resolved Issues 229 | 230 | * The copy files build phase now properly signs code for embedded frameworks with a framework version that isn’t “A”. (55701162) (FB7323980) 231 | 232 | * You can now manually reorder schemes. (61456142) 233 | 234 | * `xcodebuild` no longer double-escapes the output of `xcodebuild -showBuildSettings -json`. (63554669) 235 | 236 | * Preprocess and Assemble single-file actions now work correctly when analyze-while-building is enabled, and no longer display an empty property list in the source editor. (70811963) 237 | 238 | ### Code Completion 239 | 240 | #### New Features 241 | 242 | * Code completion is more reliable in expressions that contain errors, and in expressions that are ambiguous without additional context. (71378252) 243 | 244 | For example, given: 245 | ```swift 246 | func test(a: Int, b: String) -> Int { ... } 247 | func test(a: Int, b: Int) -> String { ... } 248 | func test(a: (Int, Int) -> Int) -> Int { ... } 249 | ``` 250 | 251 | Invoking code completion after `test().prefix(3).` suggests members of String. Invoking code completion after `test(a: 2).` suggests members of Int and String. Invoking code completion after `$0.` in the following block suggests members of Int: 252 | ```swift 253 | test { 254 | $0. 255 | } 256 | ``` 257 | 258 | ### Debugging 259 | 260 | #### New Features 261 | 262 | * When debugging C++ programs using libc++, LLDB now offers improved expression evaluation support for STL containers and algorithms. 263 | 264 | * You can call member functions of STL containers, even if they are never called in the target program. 265 | 266 | * LLDB can instantiate templated functions from the standard library. This includes algorithms such as `std::sort`, `std::count`, `std::count_if`, etc. (19866497) 267 | 268 | ### Instruments 269 | 270 | #### New Features 271 | 272 | * `<(start|end)-pattern>` elements in os-signpost-interval schema are now optional. This allows Custom Instruments to match signposts by name and other properties without needing to specify the expected message format. (43850670) 273 | 274 | * Profiling XCTest with Instruments now automatically starts the recording, without a click on the record button. (50260328) 275 | 276 | * Instruments can now import `os_log` and `os_signpost` data from the ktrace files that include logging-level data. (56037733) 277 | 278 | * Custom Instruments can now specify statically defined sub-tracks without needing to be driven by table column data. (61367995) 279 | 280 | * `xctrace export` now produces output in time-sorted order. (69804348) 281 | 282 | * Table of Contents query for `xctrace` now exposes metadata information about the run. (71320853) 283 | 284 | #### Resolved Issues 285 | 286 | * Fixed an issue where `xctrace` wouldn’t pass a standard input to the launched process. (17842765) 287 | 288 | * Fixed an issue where plot elements wouldn’t draw using the color column specified in a point schema. (71680467) (FB8913696) 289 | 290 | ### Interface Builder 291 | 292 | #### New Features 293 | 294 | * You can now configure a Module for custom classes in the inspector for [`NSObjectController`](https://developer.apple.com/documentation/appkit/nsobjectcontroller) and similar objects. (35971498) 295 | 296 | #### Resolved Issues 297 | 298 | * [`NSButton`](https://developer.apple.com/documentation/appkit/nsbutton)’s “Image Only” Position setting now properly displays an image without a title at runtime. (16200971) 299 | 300 | * Fixed an issue where the assistant editor wouldn’t display source code for a selected object’s custom Swift class if the class was annotated with `@objc`. (19623315) 301 | 302 | * Fixed an issue where connect-to-source wouldn’t properly escape Swift keywords in Outlet and Action names. (22527929) 303 | 304 | * Fixed an issue where Editor > Debug Selected Views failed to attach to `@IBDesignable` views for debugging. (45217745) (FB5645911) 305 | 306 | * Added Dark Mode support for the connect-to-source bindings popover. (47583413) (FB5701084) 307 | 308 | * Fixed iOS canvas appearance issues when importing project images with an unexpected scale. (63789933) (FB7719276) 309 | 310 | * Fixed an issue where the assistant editor could open the wrong source file for a selected object’s custom class if duplicate class names existed in the project. (67362709) 311 | 312 | * Fixed the canvas drifting when resizing the document outline. (67505701) 313 | 314 | * Fixed an issue where selecting the custom color item from an inspector’s color popup menu wouldn’t open the system colors picker window. (69365980) (FB8727901) 315 | 316 | * Selecting a view in the canvas and performing Select All (CMD+A) no longer selects the view’s layout guides. (69518746) 317 | 318 | * Fixed an issue where certain connect-to-source popover labels didn’t show up in Dark Mode. (69713404) 319 | 320 | * Fixed an issue where the custom colors swatch in an inspector’s color properties displayed an incorrectly offset focus indicator. (72370447) 321 | 322 | ### Localization 323 | 324 | #### New Features 325 | 326 | * You can now use Xcode to localize applications into all ISO 639 languages. (46806165) (FB5359472) 327 | 328 | * You can now use workspaces to export a collection of projects for localization, generating a single localization catalog for all projects in the workspace. As part of this change, options to import and export for localization are now in the Product menu instead of the Editor menu. You can also use `xcodebuild -importLocalizations` and `xcodebuild -exportLocalizations` with the `-workspace` option to export or import a workspace. (48548375) 329 | 330 | * The new Localization Export Supported build setting lets you disable localization export for a specific target or project that doesn’t require localization. (66606145) 331 | 332 | #### Resolved Issues 333 | 334 | * Fixed an issue where the Application Language menu in the scheme editor doesn’t show all languages for which a project is localized. (28872507) 335 | 336 | * `*-InfoPlist.strings` files are now renamed to `InfoPlist.strings` at build-time for bundles that require `Info.plist` localization. This is consistent with existing behavior that renames `Info.plist` files at build-time. (38686398) 337 | 338 | * Exporting and importing for localization now produces an error if two files (ex: Main.strings and Main.storyboard) write translations to the same path. (39917359, 52412470) (FB6384066) 339 | 340 | * Fixed an issue where exporting color sets for localization caused Xcode to crash. (63934393) 341 | 342 | * Fixed an issue where new-style multiline Swift string literals weren’t properly extracted for localization. (64652467) (FB7742731) 343 | 344 | * Localizable keys in `Info.plist` files are now only automatically extracted on localization export for Application and App Extension targets. (66871236) 345 | 346 | * Fixed an issue where strings were replaced with their keys at localization export if the `.strings` file was outside the directory hierarchy of the Xcode project. (69835864) (FB8761502) 347 | 348 | ### Playgrounds 349 | 350 | #### New Features 351 | 352 | * A Playground in an app’s project can now access symbols from the app target. New playgrounds you create have this option on by default. To enable this functionality in existing playground documents, turn on the Import App Types option in the File Inspector. (66357893) 353 | 354 | * Inline results for deeply nested Swift arrays and structs now display more information in Xcode Playgrounds. (67344623) 355 | 356 | #### Resolved Issues 357 | 358 | * Fixed an issue that could cause Xcode to show “No editor” when opening a Playground. (56484197) 359 | 360 | ### Simulator 361 | 362 | #### New Features 363 | 364 | * Simulator now supports recording video from within the app. Hold Option when clicking on the screenshot button in the toolbar (or press Command+R) to record a video. Click the red button to stop video recording. (63041314) 365 | 366 | * Simulator can create animated GIFs from video recordings using the new Record Video feature. After recording a video, right-click on the video preview, then select Save as Animated GIF. To keep both the video file and the animated GIF, press and hold Option and select Save Copy as Animated GIF. You can adjust the dimensions and size of the generated GIFs in Simulator Preferences. (65089299) 367 | 368 | ### Source Control 369 | 370 | #### Resolved Issues 371 | 372 | * Fixed an issue where some workspaces could fail to notice project file changes from source control operations until you quit and relaunched Xcode. (3920347) 373 | 374 | ### StoreKit 375 | 376 | #### New Features 377 | 378 | * StoreKit Testing in Xcode now supports testing of non-renewing subscriptions. (59478394) 379 | 380 | * The [StoreKit Test](https://developer.apple.com/documentation/storekittest) framework is now availabe on watchOS. (68152552) 381 | 382 | ### Swift 383 | 384 | #### New Features 385 | 386 | * Incremental compilation is faster in many cases. When you change code within the body of a struct, class, enum, protocol, or extension, Swift now recompiles far fewer files in that module than before. (51230617) 387 | 388 | * Implicit member expressions now support chains of member accesses. (57295228) 389 | 390 | For example, this code is now valid: 391 | ```swift 392 | let milky: UIColor = .white.withAlphaComponent(0.5) 393 | let milky2: UIColor = .init(named: "white")!.withAlphaComponent(0.5) 394 | let milkyChance: UIColor? = .init(named: "white")?.withAlphaComponent(0.5) 395 | ``` 396 | 397 | As is the case with the existing implicit member expression syntax, the resulting type of the chain must be the same as the (implicit) base, so it isn’t well-formed to write `let cgMilky: CGColor = .white.withAlphaComponent(0.5).cgColor` (unless appropriate white and withAlphaComponent members were defined on CGColor.). 398 | 399 | Members of a “chain” can be properties, method calls, subscript accesses, force unwraps, or optional chaining question marks. Furthermore, the type of each member along the chain is permitted to differ (again, as long as the base of the chain matches the resulting type) meaning the following successfully typechecks: 400 | ```swift 401 | struct Foo { 402 | static var foo = Foo() 403 | static var bar = Bar() 404 | 405 | var anotherFoo: Foo { Foo() } 406 | func getFoo() -> Foo { Foo() } 407 | var optionalFoo: Foo? { Foo() } 408 | subscript() -> Foo { Foo() } 409 | } 410 | 411 | struct Bar { 412 | var anotherFoo = Foo() 413 | } 414 | 415 | let _: Foo? = .bar.anotherFoo.getFoo().optionalFoo?.optionalFoo![] 416 | ``` 417 | 418 | * Swift includes more checks when bridging data from Objective-C. In particular, the runtime library aborts your program with a suitable error message if it detects a non-nullable pointer that contains a null value. (58650899) 419 | 420 | * Property wrappers are now supported on local variables. (73377111) 421 | 422 | * Functions, subscripts, and initializers may now have more than one variadic parameter, as long as all parameters that follow variadic parameters are labeled. (73676506) 423 | 424 | This makes declarations like the following valid: 425 | ```swift 426 | func foo(_ a: Int..., b: Double...) { } 427 | 428 | struct Bar { 429 | subscript(a: Int..., b b: Int...) -> [Int] { a + b } 430 | 431 | init(a: String..., b: Float...) { } 432 | } 433 | ``` 434 | 435 | #### Resolved Issues 436 | 437 | * Function overloading now works in local contexts, making the following valid: 438 | ```swift 439 | func outer(x: Int, y: String) { 440 | func doIt(_: Int) {} 441 | func doIt(_: String) {} 442 | 443 | doIt(x) 444 | doIt(y) 445 | } 446 | ``` 447 | 448 | In this code, the first `doIt(_:)` calls with an Int value, and the second with a String value. (29312676) 449 | 450 | * The runtime and compiler support for Swift’s `is`, `as?`, and `as!` operators has been overhauled, providing more consistent and predictable behavior. (58991956) 451 | 452 | * If your app (including loaded OS binaries) contains multiple redundant protocol conformances, Swift now uses the first one it finds in the first binary loaded (including in OS binaries). (72049977) 453 | 454 | ### Swift Packages 455 | 456 | #### New Features 457 | 458 | * Swift packages that specify a 5.4 tools version can now explicitly declare targets as executable, which allows the use of the `@main` keyword in package code. ([SE-0294](https://forums.swift.org/t/se-0294-declaring-executable-targets-in-package-manifests/42404), 47691185) 459 | 460 | * Swift Package Manager caches package dependencies on a per-user basis, which reduces the amount of network traffic and increases performance of dependency resolution for subsequent uses of the same package. If needed, you can disable cache use in `xcodebuild` by using the new `-disablePackageRepositoryCache` flag. (72204929) 461 | 462 | ### Testing 463 | 464 | #### New Features 465 | 466 | * XCTest now supports marking test failures as “expected”. Expected test failures don’t impact the overall pass/fail result of the suite containing the test. Xcode displays expected failures differently in the Test Navigator and Test Report, and highlights the line of code where the expected failure occurred along with an optional user description. Expected test failures provide a low-overhead tool for preserving the overall “green” state of a project’s test suite when there are failures which can’t be immediately resolved, ensuring that any new failures are clearly visible. In contrast to skipping a test with [`XCTSkip`](https://developer.apple.com/documentation/xctest/xctskip), a test with an expected failure still runs, reporting any unexpected changes. (13408632) 467 | 468 | To mark a failure as expected, call the new [`XCTExpectFailure`](https://developer.apple.com/documentation/xctest/3726077-xctexpectfailure) API in a test before the code which produces the test failure, for example: 469 | ```swift 470 | XCTExpectFailure("…") 471 | // Perform test which currently fails 472 | ``` 473 | 474 | Additionally, the scope of the expected failure can be limited by enclosing the failing code in a closure: 475 | ```swift 476 | // Arrange and act on the test subject 477 | 478 | XCTExpectFailure("…") { 479 | XCTAssert(…) // Failing assertion 480 | } 481 | 482 | // Continue test with further assertions etc. 483 | ``` 484 | 485 | By default, if `XCTExpectFailure` is called but the test doesn’t record a failure, XCTest marks the test as having failed due to an “unmatched expected failure”. This can be suppressed for failures which occur non-deterministically, by passing `XCTExpectFailure` an `XCTExpectedFailure.Options` object as a parameter, with its `isStrict` property set to `false`: 486 | ```swift 487 | let options = XCTExpectedFailure.Options() 488 | options.isStrict = false 489 | XCTExpectFailure("…", options: options) 490 | // Perform test which sometimes fails 491 | ``` 492 | 493 | * Xcode now allows you to clean test results without having to re-open your workspace by selecting Clean Test Results from Xcode’s Product menu. (16527161) 494 | 495 | * Xcode now supports XCTest unit and UI tests for watchOS apps. When creating a new watchOS app, check the Include tests checkbox to add a unit and UI test target to the newly created project. For an existing project, add a unit or UI test target via File > New > Target, and then add the test target to the Test action of the WatchKit App scheme. To run the tests, select a watch simulator or device from the run destinations menu in the toolbar, and then choose Product > Test. Note that testing is supported on watchOS 7.4 or later. (21395998) 496 | 497 | * XCTest now automatically includes specialized subclasses of Swift generic test classes when running tests on macOS 11.3, iOS 14.5, tvOS 14.5, watchOS 7.4, or later OS versions. This allows you to use generics to improve reusability of test classes. (23493200) 498 | 499 | * XCTest now includes [`XCTAssertIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727243-xctassertidentical) and [`XCTAssertNotIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727244-xctassertnotidentical) APIs to assert whether two object instances are identical (the same instance) and are stricter than [`XCTAssertEqual`](https://developer.apple.com/documentation/xctest/xctassertequal) by using the `===` operator instead of `==` in Swift. (46137782) 500 | 501 | #### Resolved Issues 502 | 503 | * The `message` String parameter of `XCTSkip.init(_:file:line:)` no longer includes `@autoclosure` incorrectly. Unlike its conditional variants [`XCTSkipIf`](https://developer.apple.com/documentation/xctest/xctskipif) and [`XCTSkipUnless`](https://developer.apple.com/documentation/xctest/xctskipunless), XCTSkip’s initializer unconditionally evaluates its message string. (63827685) 504 | 505 | * If a test times out (due to having Test Timeouts enabled in the active Test Plan), any content that the test emitted to standard out or standard error prior to the timeout is now included in the test log. (64591225) 506 | 507 | * Xcode and xcodebuild now prevent the computer from sleeping while executing tests. (67493488) 508 | 509 | * If code under test crashes, and Xcode is able to collect a crash report, the error message that Xcode generates in the Test Report and Test Log includes the crashing symbol, as well as the Application Specific Information field from the crash report. (69755517) 510 | -------------------------------------------------------------------------------- /Xcode12.5RC.md: -------------------------------------------------------------------------------- 1 | # Xcode 12.5 RC Release Notes 2 | 3 | Update your apps to use new features, and test your apps against API changes. 4 | 5 | ## Overview 6 | 7 | Xcode 12.5 RC includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5 Release Candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5 RC requires a Mac running macOS Big Sur 11 or later. 8 | 9 | ### General 10 | 11 | #### New Features 12 | 13 | * You can create macOS File Provider extensions using the new File Provider Extension target template. (54054417) 14 | 15 | * The Reveal Build Products Folder item in the Product menu opens Finder and selects the folder where Xcode builds the product. (72248847) 16 | 17 | #### Resolved Issues 18 | 19 | * Fixed an issue that could cause code completion, live issues, and other code-analysis features to produce incorrect results after you moved any of the source files of an open Xcode project. (57054858) 20 | 21 | * Large workspaces now open faster. (70276306) 22 | 23 | #### Known Issues 24 | 25 | * Fixed an issue that could cause iOS 12.5, tvOS 14.5, watchOS 7.4, and earlier to set the minimum deployment target based on the app’s [`LSMinimumSystemVersion`](https://developer.apple.com/documentation/bundleresources/information_property_list/lsminimumsystemversion) instead of its [`MinimumOSVersion`](https://developer.apple.com/documentation/bundleresources/information_property_list/minimumosversion). (76221112) 26 | 27 | #### Deprecations 28 | 29 | * Don’t use the iOS `MinimumOSVersion` information property list key to declare the minimum release of macOS in which your app runs. Use `LSMinimumSystemVersion` instead. (73890473) 30 | 31 | * Future releases of macOS ignore the `MinimumOSVersion` key in Mac apps, including apps built with Mac Catalyst. 32 | 33 | * Future releases of macOS use the `LSMinimumSystemVersion` key in iOS apps built with Xcode 12.5 or later. If an iOS app doesn’t include an `LSMinimumSystemVersion` key, future releases of macOS compare the app’s `MinimumOSVersion` with the version of its Mac Catalyst runtime to determine compatibility. 34 | 35 | ### Apple Clang Compiler 36 | 37 | #### New Features 38 | 39 | * libc++ no longer honors the `_LIBCPP_RAW_ITERATORS` macro. Use wrapped iterators instead. (63088925) 40 | 41 | * Clang now infers the availability of `+new` from availability annotations on `-init` methods. Since `+new` calls `[[Foo alloc] init]`, `+new` isn’t available unless `+init` is available. (75884815) 42 | 43 | ### Build System 44 | 45 | #### New Features 46 | 47 | * The build system no longer re-signs the hosting app target when building app-hosted test targets; instead it builds test targets before the app target’s sign task runs. This eliminates an extra `codesign` task, which speeds up builds for large apps with such test targets. (47322098) 48 | 49 | * `xcodebuild` now supports the `-archive` flag when creating an XCFramework, providing a shorthand method for creating an XCFramework from one or more archives. (64725832) 50 | 51 | For example: 52 | ``` 53 | xcodebuild -archive -framework MyFramework.framework -archive -framework MyFramework.framework -o 54 | ``` 55 | 56 | #### Resolved Issues 57 | 58 | * Copy Files Build Phase now properly signs code for embedded frameworks with a framework version that isn’t “A”. (55701162) (FB7323980) 59 | 60 | * You can now manually reorder schemes. (61456142) 61 | 62 | * `xcodebuild` no longer double-escapes the output of `xcodebuild -showBuildSettings -json`. (63554669) 63 | 64 | * Preprocess and Assemble single-file actions now work correctly when analyze-while-building is enabled, and no longer display an empty property list in the source editor. (70811963) 65 | 66 | * Fixed a dependency cycle involving hosted test targets when Parallelize Build is disabled. Xcode no longer creates a cycle when the test target depends on another target in addition to the hosting target. (73210420) 67 | 68 | * The build system no longer emits a “duplicate tasks” error when both an app and a test target link with the same XCFramework. (74362639) (FB9005738) 69 | 70 | ### Code Completion 71 | 72 | #### New Features 73 | 74 | * Code completion is more reliable in expressions that contain errors, and in expressions that are ambiguous without additional context. (71378252) 75 | 76 | For example, given: 77 | ```swift 78 | func test(a: Int, b: String) -> Int { ... } 79 | func test(a: Int, b: Int) -> String { ... } 80 | func test(a: (Int, Int) -> Int) -> Int { ... } 81 | ``` 82 | 83 | Invoking code completion after `test().prefix(3).` suggests members of String. Invoking code completion after `test(a: 2).` suggests members of Int and String. Invoking code completion after `$0.` in the following block suggests members of Int: 84 | ```swift 85 | test { 86 | $0. 87 | } 88 | ``` 89 | 90 | #### Resolved Issues 91 | 92 | * Code completion now returns suggestions more quickly inside large function bodies. (58687608) 93 | 94 | ### Debugging 95 | 96 | #### New Features 97 | 98 | * When debugging C++ programs using libc++, LLDB now offers improved expression evaluation support for STL containers and algorithms. (19866497) 99 | 100 | * You can call member functions of STL containers, even if they are never called in the target program. 101 | 102 | * LLDB can instantiate templated functions from the standard library. This includes algorithms such as `std::sort`, `std::count`, `std::count_if`, and so on. 103 | 104 | #### Resolved Issues 105 | 106 | * When debugging Swift code, Xcode’s variable view and the `v` (`frame variable`) command now display variables with resilient types including Foundation value types such as `URL`, `URLComponents`, `Notification`, `IndexPath`, `Decimal`, `Data`, `Date`, `Global`, `Measurement`, and `UUID`. (72101693) 107 | 108 | #### Known Issues 109 | 110 | * Xcode fails to launch apps when Nightstand Mode is enabled on Apple Watch. (61351690) 111 | 112 | **Workaround**: Disable Nightstand Mode on Apple Watch; Go to Settings > General > Nightstand Mode. 113 | 114 | ### Instruments 115 | 116 | #### New Features 117 | 118 | * `<(start|end)-pattern>` elements in os-signpost-interval schema are now optional. This allows Custom Instruments to match signposts by name and other properties without needing to specify the expected message format. (43850670) 119 | 120 | * Profiling XCTest with Instruments now automatically starts the recording, without a click on the record button. (50260328) 121 | 122 | * Instruments can now import `os_log` and `os_signpost` data from the ktrace files that include logging-level data. (56037733) 123 | 124 | * Custom Instruments can now specify statically defined sub-tracks without needing to be driven by table column data. (61367995) 125 | 126 | * `xctrace export` now produces output in time-sorted order. (69804348) 127 | 128 | * Table of Contents query for `xctrace` now exposes metadata information about the run. (71320853) 129 | 130 | #### Resolved Issues 131 | 132 | * Fixed an issue where `xctrace` wouldn’t pass a standard input to the launched process. (17842765) 133 | 134 | * Launching an extension via Product > Profile in Xcode no longer causes Instruments to wait indefinitely for the process to start. (62275419) (FB7674284) 135 | 136 | * Fixed a crash that sometimes occurred when you started recording after transferring a Metal app from Xcode to Instruments. (70655385) (FB8824932) 137 | 138 | * Fixed an issue where plot elements wouldn’t draw using the color column specified in a point schema. (71680467) (FB8913696) 139 | 140 | #### Known Issues 141 | 142 | * In macOS 11.2 or earlier, `leaks` and other command line analysis tools fail or crash when run against processes built with Mac Catalyst and processes running in iOS 14.5 or later on simulated devices. (74690398) 143 | 144 | ### Interface Builder 145 | 146 | #### New Features 147 | 148 | * You can now configure a Module for custom classes in the inspector for [`NSObjectController`](https://developer.apple.com/documentation/appkit/nsobjectcontroller) and similar objects. (35971498) 149 | 150 | #### Resolved Issues 151 | 152 | * [`NSButton`](https://developer.apple.com/documentation/appkit/nsbutton)’s “Image Only” Position setting now properly displays an image without a title at runtime. (16200971) 153 | 154 | * Fixed an issue where the assistant editor wouldn’t display source code for a selected object’s custom Swift class if the class was annotated with `@objc`. (19623315) 155 | 156 | * Fixed an issue where connect-to-source wouldn’t properly escape Swift keywords in Outlet and Action names. (22527929) 157 | 158 | * Fixed an issue where Editor > Debug Selected Views failed to attach to `@IBDesignable` views for debugging. (45217745) (FB5645911) 159 | 160 | * Added Dark Mode support for the connect-to-source bindings popover. (47583413) (FB5701084) 161 | 162 | * Fixed iOS canvas appearance issues when importing project images with an unexpected scale. (63789933) (FB7719276) 163 | 164 | * Fixed an issue where the assistant editor could open the wrong source file for a selected object’s custom class if duplicate class names existed in the project. (67362709) 165 | 166 | * Fixed the canvas drifting when resizing the document outline. (67505701) 167 | 168 | * Fixed an issue where selecting the custom color item from an inspector’s color popup menu wouldn’t open the system colors picker window. (69365980) (FB8727901) 169 | 170 | * Selecting a view in the canvas and performing Select All (CMD+A) no longer selects the view’s layout guides. (69518746) 171 | 172 | * Fixed an issue where certain connect-to-source popover labels didn’t show up in Dark Mode. (69713404) 173 | 174 | * Fixed an issue where the custom colors swatch in an inspector’s color properties displayed an incorrectly offset focus indicator. (72370447) 175 | 176 | ### Localization 177 | 178 | #### New Features 179 | 180 | * You can now use Xcode to localize applications into all ISO 639 languages. (46806165) (FB5359472) 181 | 182 | * You can now use workspaces to export a collection of projects for localization, generating a single localization catalog for all projects in the workspace. As part of this change, options to import and export for localization are now in the Product menu instead of the Editor menu. You can also use `xcodebuild -importLocalizations` and `xcodebuild -exportLocalizations` with the `-workspace` option to export or import a workspace. (48548375) 183 | 184 | * The new Localization Export Supported build setting lets you disable localization export for a specific target or project that doesn’t require localization. (66606145) 185 | 186 | #### Resolved Issues 187 | 188 | * Fixed an issue where the Application Language menu in the scheme editor doesn’t show all languages for which a project is localized. (28872507) 189 | 190 | * `*-InfoPlist.strings` files are now renamed to `InfoPlist.strings` at build-time for bundles that require `Info.plist` localization. This is consistent with existing behavior that renames `Info.plist` files at build-time. (38686398) 191 | 192 | * Exporting and importing for localization now produces an error if two files (ex: Main.strings and Main.storyboard) write translations to the same path. (39917359, 52412470) (FB6384066) 193 | 194 | * Fixed an issue where exporting color sets for localization caused Xcode to crash. (63934393) 195 | 196 | * Fixed an issue where new-style multiline Swift string literals weren’t properly extracted for localization. (64652467) (FB7742731) 197 | 198 | * Localizable keys in `Info.plist` files are now only automatically extracted on localization export for Application and App Extension targets. (66871236) 199 | 200 | * Fixed an issue where strings were replaced with their keys at localization export if the `.strings` file was outside the directory hierarchy of the Xcode project. (69835864) (FB8761502) 201 | 202 | ### Playgrounds 203 | 204 | #### New Features 205 | 206 | * A Playground in an app’s project can now access symbols from the app target. New playgrounds you create have this option on by default. To enable this functionality in existing playground documents, turn on the Import App Types option in the File Inspector. (66357893) 207 | 208 | * Inline results for deeply nested Swift arrays and structs now display more information in Xcode Playgrounds. (67344623) 209 | 210 | #### Resolved Issues 211 | 212 | * Fixed an issue that could cause Xcode to show “No editor” when opening a Playground. (56484197) 213 | 214 | ### Previews 215 | 216 | #### Resolved Issues 217 | 218 | * The [`preferredColorScheme(_:)`](https://developer.apple.com/documentation/SwiftUI/View/preferredColorScheme(_:)) modifier now applies the theme to the nearest enclosing presentation, and its contained views. (62745457) 219 | 220 | ### Signing and Distribution 221 | 222 | #### Resolved Issues 223 | 224 | * Resolved an issue that prevented exporting distribution certificates from Xcode due to a keyboard focus issue in the authentication window. (71011727) (FB8880845) 225 | 226 | * Fixed an issue that caused OS X 10.11 and earlier to reject packages signed in macOS 11 or later. (71695608, 75599040) 227 | 228 | #### Known Issues 229 | 230 | * Xcode doesn’t build projects with a signing certificate on a smart card, or that is accessed via a [CryptoTokenKit](https://developer.apple.com/documentation/cryptotokenkit) extension. (58266781) (FB7516556) 231 | 232 | **Workaround**: Instead of signing in Xcode or `xcodebuild`, run `codesign` in a post-build step. 233 | 234 | * OS X 10.11 or earlier may reject code signatures added to universal binaries by Xcode 12.5 running in macOS 11.2 or earlier. (70724583) (FB8830007) 235 | 236 | **Workaround**: Specify `--digest-algorithm=sha1,sha256` to the `codesign` utility at signing time. In Xcode, specify this using the `OTHER_CODE_SIGN_FLAGS` build setting. 237 | 238 | ### Simulator 239 | 240 | #### New Features 241 | 242 | * Simulator now supports recording video from within the app. Hold Option when clicking on the screenshot button in the toolbar (or press Command+R) to record a video. Click the red button to stop video recording. (63041314) 243 | 244 | * Simulator can create animated GIFs from video recordings using the new Record Video feature. After recording a video, right-click on the video preview, then select Save as Animated GIF. To keep both the video file and the animated GIF, press and hold Option and select Save Copy as Animated GIF. You can adjust the dimensions and size of the generated GIFs in Simulator Preferences. (65089299) 245 | 246 | #### Known Issues 247 | 248 | * Siri isn’t available in simulated tvOS devices. (74261184, 75115292) 249 | 250 | * Simulator may not respect the I/O > Keyboard > Use the Same Keyboard Language as macOS setting. (74897431) 251 | 252 | ### Source Control 253 | 254 | #### Resolved Issues 255 | 256 | * Fixed an issue where some workspaces could fail to notice project file changes from source control operations until you quit and relaunched Xcode. (3920347) 257 | 258 | #### Known Issues 259 | 260 | * If you rename the default branch in your remote repository and don’t update `HEAD` to point to the renamed branch, source code operations may fail and Xcode may return an error -100. (76070146) 261 | 262 | **Workaround**: Use the `git` command line tool to re-point your `HEAD`; for example: 263 | ``` 264 | git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/ 265 | ``` 266 | 267 | ### StoreKit 268 | 269 | #### New Features 270 | 271 | * StoreKit Testing in Xcode now supports testing of non-renewing subscriptions. (59478394) 272 | 273 | * The [StoreKit Test](https://developer.apple.com/documentation/storekittest) framework is now availabe on watchOS. (68152552) 274 | 275 | ### Swift 276 | 277 | #### New Features 278 | 279 | * Incremental compilation is faster in many cases. When you change code within the body of a struct, class, enum, protocol, or extension, Swift now recompiles far fewer files in that module than before. (51230617) 280 | 281 | * Implicit member expressions now support chains of member accesses. (57295228) 282 | 283 | For example, this code is now valid: 284 | ```swift 285 | let milky: UIColor = .white.withAlphaComponent(0.5) 286 | let milky2: UIColor = .init(named: "white")!.withAlphaComponent(0.5) 287 | let milkyChance: UIColor? = .init(named: "white")?.withAlphaComponent(0.5) 288 | ``` 289 | 290 | As is the case with the existing implicit member expression syntax, the resulting type of the chain must be the same as the (implicit) base, so it isn’t well-formed to write `let cgMilky: CGColor = .white.withAlphaComponent(0.5).cgColor` (unless appropriate white and withAlphaComponent members were defined on CGColor.). 291 | 292 | Members of a “chain” can be properties, method calls, subscript accesses, force unwraps, or optional chaining question marks. Furthermore, the type of each member along the chain is permitted to differ (again, as long as the base of the chain matches the resulting type) meaning the following successfully typechecks: 293 | ```swift 294 | struct Foo { 295 | static var foo = Foo() 296 | static var bar = Bar() 297 | 298 | var anotherFoo: Foo { Foo() } 299 | func getFoo() -> Foo { Foo() } 300 | var optionalFoo: Foo? { Foo() } 301 | subscript() -> Foo { Foo() } 302 | } 303 | 304 | struct Bar { 305 | var anotherFoo = Foo() 306 | } 307 | 308 | let _: Foo? = .bar.anotherFoo.getFoo().optionalFoo?.optionalFoo![] 309 | ``` 310 | 311 | * Swift includes more checks when bridging data from Objective-C. In particular, the runtime library aborts your program with a suitable error message if it detects a non-nullable pointer that contains a null value. (58650899) 312 | 313 | * You can now use [`Float16`](https://developer.apple.com/documentation/swift/float16) in code running on Apple silicon. (61937297) 314 | 315 | * Property wrappers are now supported on local variables. (73377111) 316 | 317 | * Functions, subscripts, and initializers may now have more than one variadic parameter. When using variadic parameters, also label the parameter immediately following a variadic parameter. ([SE-0284](https://github.com/apple/swift-evolution/blob/main/proposals/0284-multiple-variadic-parameters.md), 73676506) 318 | 319 | This makes declarations like the following valid: 320 | ```swift 321 | func foo(_ a: Int..., b: Double...) { } 322 | 323 | struct Bar { 324 | subscript(a: Int..., b b: Int...) -> [Int] { a + b } 325 | 326 | init(a: String..., b: Float...) { } 327 | } 328 | ``` 329 | 330 | * Property wrappers now work in local contexts. (74192307) 331 | 332 | For example, this code is now valid: 333 | ```swift 334 | @propertyWrapper 335 | struct Wrapper { 336 | var wrappedValue: T 337 | } 338 | 339 | func test() { 340 | @Wrapper var value = 10 341 | } 342 | ``` 343 | 344 | * When you run `swift` with no arguments, it starts a REPL (Read-Eval-Print Loop) that uses LLDB. The Swift compiler no longer contains the integrated REPL for compiler developers (formerly accessible by running `swift -frontend -repl`). (74613702) 345 | 346 | The Swift compiler still supports running code as a script, for example: 347 | ``` 348 | swift myScript.swift 349 | ``` 350 | 351 | * When compiling a type that conforms to a protocol via an extension, Swift takes into account the availability of the extension when forming generic types that use this protocol conformance. (74614358) 352 | 353 | For example, consider a `Box` type whose conformance to `Hashable` uses features only available on macOS 11: 354 | ```swift 355 | public struct Box {} 356 | 357 | @available(macOS 11, *) 358 | extension Box : Hashable { 359 | func hash(into: inout Hasher) { 360 | // call some new API to hash the value... 361 | } 362 | } 363 | 364 | public func findBad(_: Set) -> Box {} 365 | // warning: conformance of 'Box' to 'Hashable' is only available in macOS 11 or newer 366 | 367 | @available(macOS 11, *) 368 | public func findGood(_: Set) -> Box {} // OK 369 | ``` 370 | 371 | In the above code, it isn’t valid for `findBad()` to take a `Set` because `Set` requires that its element type conform to `Hashable`, but the conformance of `Box` to `Hashable` isn’t available before macOS 11. 372 | 373 | Note that using an unavailable protocol conformance is a warning, not an error, to avoid potential source compatibility issues. In prior releases, you could write code that made use of unavailable protocol conformances but worked anyway — if the optimizer had eliminated all runtime dispatch through this conformance, or the code in question was entirely unreachable at runtime. 374 | 375 | Protocol conformances can also be marked as completely unavailable or deprecated, by placing an appropriate `@available` attribute on the extension: 376 | ```swift 377 | @available(*, unavailable, message: "Not supported anymore") 378 | extension Box : Hashable {} 379 | 380 | @available(*, deprecated, message: "Suggest using something else") 381 | extension Box : Hashable {} 382 | ``` 383 | 384 | If a protocol conformance is defined on the type itself, it inherits availability from the type. You can move the protocol conformance to an extension if you need it to have narrower availability than the type. 385 | 386 | * The `@available` attribute is no longer permitted on generic parameters, where it had no effect. (74614802) 387 | 388 | For example: 389 | ```swift 390 | struct Bad<@available(macOS 11, *) T> {} 391 | // error: '@available' attribute can't be applied to this declaration 392 | 393 | struct Good {} // equivalent 394 | ``` 395 | 396 | * Availability checking now rejects protocols that refine less available protocols. (74615650) 397 | 398 | Previously, this was accepted by the compiler but could result in linker errors or runtime crashes; for example: 399 | ```swift 400 | @available(macOS 11, *) 401 | protocol Base {} 402 | 403 | protocol Bad : Base {} 404 | // error: 'Base' is only available in macOS 11 or newer 405 | 406 | @available(macOS 11, *) 407 | protocol Good : Base {} // OK 408 | ``` 409 | 410 | * Protocol conformance checking now considers where clauses when evaluating if a `typealias` is a suitable witness for an associated type requirement. (74618612) 411 | 412 | The following code is now rejected: 413 | ```swift 414 | protocol Holder { 415 | associatedtype Contents 416 | } 417 | 418 | struct Box : Holder {} 419 | // error: type 'Box' doesn't conform to protocol 'Holder' 420 | 421 | extension Box where T : Hashable { 422 | typealias Contents = T 423 | } 424 | ``` 425 | 426 | In most cases, the compiler would either crash or produce surprising results when making use of a `typealias` with an unsatisfied `where` clause, but it is possible that some previously-working code is now rejected. In the above example, the conformance can be fixed in one of the following ways: 427 | 428 | * make it conditional (move the : `Holder` from the definition of `Box` to the extension) 429 | 430 | * move the `typealias` from the extension to the type itself 431 | 432 | * relax the `where` clause on the extension 433 | 434 | #### Resolved Issues 435 | 436 | * Function overloading now works in local contexts, making the following valid: 437 | ```swift 438 | func outer(x: Int, y: String) { 439 | func doIt(_: Int) {} 440 | func doIt(_: String) {} 441 | 442 | doIt(x) 443 | doIt(y) 444 | } 445 | ``` 446 | 447 | In this code, the first `doIt(_:)` calls with an Int value, and the second with a String value. (29312676) 448 | 449 | * The runtime and compiler support for Swift’s `is`, `as?`, and `as!` operators has been overhauled, providing more consistent and predictable behavior. (58991956) 450 | 451 | * If your app (including loaded OS binaries) contains multiple redundant protocol conformances, Swift now uses the first one it finds in the first binary loaded (including in OS binaries). (72049977) 452 | 453 | * Fixed a crash that occurred when setting a value using a [`ReferenceWritableKeyPath`](https://developer.apple.com/documentation/swift/referencewritablekeypath) that was upcast to a [`WritableKeyPath`](https://developer.apple.com/documentation/swift/writablekeypath). (74191390) (FB8999603) 454 | 455 | #### Known Issues 456 | 457 | * iOS Playgrounds may crash on initial execution. (70826934) 458 | 459 | **Workaround**: Re-execute the Playground. 460 | 461 | * The compiler may generate incorrect code when you use an `enum` `case` with associated values to satisfy a protocol requirement. (72302307) 462 | 463 | For example: 464 | ```swift 465 | protocol FileHandlerAction { 466 | static func setFileURL(_ fileURL: NSURL) -> Self 467 | } 468 | 469 | enum AppAction : FileHandlerAction { 470 | case setFileURL(NSURL) 471 | } 472 | ``` 473 | 474 | **Workaround**: Provide a static method to satisfy the requirement: 475 | ```swift 476 | enum AppAction : FileHandlerAction { 477 | case _setFileURL(NSURL) 478 | 479 | static func setFileURL(_ fileURL: NSURL) -> Self { 480 | return ._setFileURL(fileURL) 481 | } 482 | } 483 | ``` 484 | 485 | #### Deprecations 486 | 487 | * The Swift compiler emits a warning for the use of the `await` keyword as an unqualified identifier. Wrap `await` with back-ticks so Swift always treats it as an identifier, or fully qualify declarations named await. For example, add `self` anytime you reference an instance member named `await` from within the instance. ([SE-0296](https://github.com/apple/swift-evolution/blob/main/proposals/0296-async-await.md), 67000350) 488 | 489 | ### Swift Packages 490 | 491 | #### New Features 492 | 493 | * Swift packages that specify a 5.4 tools version can now explicitly declare targets as executable, which allows the use of the `@main` keyword in package code. ([SE-0294](https://forums.swift.org/t/se-0294-declaring-executable-targets-in-package-manifests/42404), 47691185) 494 | 495 | * The Swift Package Manager now builds package products and targets as dynamic frameworks automatically, if doing so avoids duplication of library code at runtime. (59931771) (FB7608638) 496 | 497 | * Swift Package Manager caches package dependencies on a per-user basis, which reduces the amount of network traffic and increases performance of dependency resolution for subsequent uses of the same package. If needed, you can disable cache use in `xcodebuild` by using the new `-disablePackageRepositoryCache` flag. (72204929) 498 | 499 | ### Testing 500 | 501 | #### New Features 502 | 503 | * XCTest now supports marking test failures as “expected”. Expected test failures don’t impact the overall pass/fail result of the suite containing the test. Xcode displays expected failures differently in the Test Navigator and Test Report, and highlights the line of code where the expected failure occurred along with an optional user description. Expected test failures provide a low-overhead tool for preserving the overall “green” state of a project’s test suite when there are failures which can’t be immediately resolved, ensuring that any new failures are clearly visible. In contrast to skipping a test with [`XCTSkip`](https://developer.apple.com/documentation/xctest/xctskip), a test with an expected failure still runs, reporting any unexpected changes. (13408632) 504 | 505 | To mark a failure as expected, call the new [`XCTExpectFailure`](https://developer.apple.com/documentation/xctest/3726077-xctexpectfailure) API in a test before the code which produces the test failure, for example: 506 | ```swift 507 | XCTExpectFailure("…") 508 | // Perform test which currently fails 509 | ``` 510 | 511 | Additionally, the scope of the expected failure can be limited by enclosing the failing code in a closure: 512 | ```swift 513 | // Arrange and act on the test subject 514 | 515 | XCTExpectFailure("…") { 516 | XCTAssert(…) // Failing assertion 517 | } 518 | 519 | // Continue test with further assertions etc. 520 | ``` 521 | 522 | By default, if `XCTExpectFailure` is called but the test doesn’t record a failure, XCTest marks the test as having failed due to an “unmatched expected failure”. This can be suppressed for failures which occur non-deterministically, by passing `XCTExpectFailure` an `XCTExpectedFailure.Options` object as a parameter, with its `isStrict` property set to `false`: 523 | ```swift 524 | let options = XCTExpectedFailure.Options() 525 | options.isStrict = false 526 | XCTExpectFailure("…", options: options) 527 | // Perform test which sometimes fails 528 | ``` 529 | 530 | * Xcode now allows you to clean test results without having to re-open your workspace by selecting Clean Test Results from Xcode’s Product menu. (16527161) 531 | 532 | * Xcode now supports XCTest unit and UI tests for watchOS apps. When creating a new watchOS app, check the Include tests checkbox to add a unit and UI test target to the newly created project. For an existing project, add a unit or UI test target via File > New > Target, and then add the test target to the Test action of the WatchKit App scheme. To run the tests, select a watch simulator or device from the run destinations menu in the toolbar, and then choose Product > Test. Note that testing is supported on watchOS 7.4 or later. (21395998) 533 | 534 | * XCTest now automatically includes specialized subclasses of Swift generic test classes when running tests on macOS 11.3, iOS 14.5, tvOS 14.5, watchOS 7.4, or later OS versions. This allows you to use generics to improve reusability of test classes. (23493200) 535 | 536 | * XCTest now includes [`XCTAssertIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727243-xctassertidentical) and [`XCTAssertNotIdentical(_:_:_:file:line:)`](https://developer.apple.com/documentation/xctest/3727244-xctassertnotidentical) APIs to assert whether two object instances are identical (the same instance) and are stricter than [`XCTAssertEqual`](https://developer.apple.com/documentation/xctest/xctassertequal) by using the `===` operator instead of `==` in Swift. (46137782) 537 | 538 | * The code coverage report now shows the number of executable lines per file. (68808019) 539 | 540 | #### Resolved Issues 541 | 542 | * The `message` String parameter of `XCTSkip.init(_:file:line:)` no longer includes `@autoclosure` incorrectly. Unlike its conditional variants [`XCTSkipIf`](https://developer.apple.com/documentation/xctest/xctskipif) and [`XCTSkipUnless`](https://developer.apple.com/documentation/xctest/xctskipunless), XCTSkip’s initializer unconditionally evaluates its message string. (63827685) 543 | 544 | * If a test times out (due to having Test Timeouts enabled in the active Test Plan), any content that the test emitted to standard out or standard error prior to the timeout is now included in the test log. (64591225) 545 | 546 | * Xcode and `xcodebuild` now prevent the computer from sleeping while executing tests. (67493488) 547 | 548 | * If code under test crashes, and Xcode is able to collect a crash report, the error message that Xcode generates in the Test Report and Test Log includes the crashing symbol, as well as the Application Specific Information field from the crash report. (69755517) 549 | 550 | * Fixed an issue where methods on [`XCTOSSignpostMetric`](https://developer.apple.com/documentation/xctest/xctossignpostmetric) threw an exception on watchOS. (72552791) 551 | 552 | * Xcode no longer incorrectly reports a name that starts with “” for tests that the test code dynamically generates at runtime. (73767460) 553 | 554 | #### Known Issues 555 | 556 | * When running on a Mac with Apple silicon, Xcode doesn’t provide code coverage information for code in Swift packages. (71769076) (FB8919898) 557 | 558 | * If you run lengthy uninterrupted CPU-bound computation in a test on Apple Watch devices, watchOS may terminate the test runner. (74301580) 559 | 560 | **Workaround**: Avoid performing heavy CPU-bound computation in your tests on Apple Watch devices. 561 | 562 | * Xcode crashes when you attempt to view test results for an integration. (76126769) 563 | 564 | **Workaround**: Download the integration’s build logs and open the enclosed result bundle. 565 | 566 | #### Deprecations 567 | 568 | * Xcode no longer includes XCTest’s legacy Swift overlay library (`libswiftXCTest.dylib`). Use the library’s replacement, `libXCTestSwiftSupport.dylib`, instead. For frameworks that encounter build issues because of the removal of the legacy library, delete the framework and library search paths for `libswiftXCTest.dylib` and add the `ENABLE_TESTING_SEARCH_PATHS=YES` build setting. This setting automatically sets the target’s search paths so that it can locate the replacement XCTest library. (70365050) 569 | -------------------------------------------------------------------------------- /Xcode12UABeta2.md: -------------------------------------------------------------------------------- 1 | # Xcode 12 for macOS Universal Apps Beta 2 Release Notes 2 | Update your apps for Apple silicon, and test your apps against API changes. 3 | 4 | ## Overview 5 | 6 | Xcode 12 for macOS Universal Apps beta 2 is a distribution of Xcode 12 beta 2 for creating Universal Mac apps that run on both Apple silicon and Intel-based Mac computers. Choose the “Any Mac” destination in the toolbar to build your Mac app as Universal, and to see any build errors your project may encounter. This is the same toolset included with the Universal Apps Quick Start Program and can be run on either an Intel-based Mac, or on the Developer Transition Kit. 7 | 8 | Xcode 12 for macOS Universal Apps beta 2 includes SDKs for iOS 14, iPadOS 14, and macOS 11. The Xcode 12 for macOS Universal Apps beta 2 release supports on-device debugging for iOS 9 and later. Xcode 12 for macOS Universal Apps beta 2 requires a Mac running macOS 10.15.4 or later. 9 | 10 | These notes are about the differences between Xcode 12 for macOS Universal Apps beta 2 and Xcode 12 beta 2. The primary Xcode 12 beta 2 product is recommended for development of apps not intended to run on macOS, and includes all platform SDKs. For additional information about Xcode 12 beta 2, see [Xcode 12 Beta 2 Release Notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-beta-release-notes). 11 | 12 | ### General 13 | 14 | #### Resolved in Xcode 12 for macOS Universal Apps Beta 2 15 | 16 | * Metal code compiles when using deployment target 11.0. (64344660) 17 | 18 | #### Known Issues 19 | 20 | * SwiftUI code that uses SpriteKit may not compile. (63350569) 21 | 22 | * Xcode 12 for macOS Universal Apps beta 2 doesn’t support building for tvOS or watchOS. It only supports building for iOS or iPadOS on Intel-based Macs. (63733399) 23 | 24 | * Simulated iOS devices are not available when running Xcode 12 for macOS Universal Apps beta 2 on an Apple silicon Mac. (63749966) 25 | 26 | * Debugging a Rosetta process using LLDB from the command line can take a long time to launch. (63793175) 27 | 28 | **Workaround**: Open Xcode to prepare the cache used for debugging Rosetta processes. 29 | 30 | * Storyboards and XIBs may have rendering issues when working with large images. (64093939) 31 | 32 | * When you view the signing settings of an app that builds with Mac Catalyst, and you have a Mac run destination selected, then Xcode may display an error that indicates your Mac isn’t included in your iOS provisioning profile. This is a cosmetic issue and doesn’t affect building, running, or distributing your app. (64147483) 33 | 34 | * Xcode may crash when opening a debug gauge. (64181692) 35 | 36 | * iOS, iPadOS, and tvOS Playgrounds don’t work. (64264601) 37 | 38 | **Workaround**: Use the primary Xcode 12 beta to run these playgrounds. 39 | 40 | * Some macOS target templates include an older default Deployment Target. (64312117) 41 | 42 | * To build the Release configuration or run the Profile action on a simulated iOS device, set the Build Active Architecture Only build setting to Yes for both the Debug and Release configurations. (64317985) 43 | 44 | * Xcode may crash when continuing stepping out of a breakpoint. (64333652) 45 | 46 | * Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067) 47 | 48 | **Workaround**: Use the “Any Mac” destination to build the project for both Apple silicon and Intel-based Mac computers. 49 | 50 | * SwiftUI code that uses SceneKit may not compile. (64344265) 51 | 52 | * A Mac Catalyst app signed to run locally on macOS may fail to run with the Mac (Rosetta) run destination. (64421496) 53 | 54 | * macOS 11 beta for Intel can’t run an executable built from a target created on a Mac Developer Transition Kit. (64792610) 55 | 56 | **Workaround**: Change the new target’s deployment target to macOS 10.16 or earlier. 57 | 58 | * Projects fail to build for simulated devices. (65077539) 59 | 60 | **Workaround**: Specify `x86_64` as the build architecture. 61 | 62 | ## Updates in Xcode 12 for macOS Universal Apps beta 63 | 64 | ### General 65 | 66 | #### New Features in Xcode 12 for macOS Universal Apps beta 67 | 68 | * 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) 69 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate --------------------------------------------------------------------------------