├── 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 |
🛑 − GitHub 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
--------------------------------------------------------------------------------