On Tuesday Apple released Xcode 11.1 GM Seed to Developers.
The Production version of Xcode 11 was released to the Mac App Store just 6 days ago. We now have the first beta version of Xcode 11.1 available for developers to test with. What’s new?
I have added links to my previous Xcode 11 Change Notes below. Also included is Xcode Requirements and “What’s New”
Summary of New Xcode 11. GM Seed Patch Notes
1 New Features
3 New Resolved issues
6 New Known Issues
0 New Deprecations
A Full List of changes is listed below, along with the full patch notes list.
Xcode 11.1 includes SDKs for iOS 13.1, macOS Catalina 10.15, watchOS 6, and tvOS 13. 2. Xcode 11.1 supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. 3. Xcode 11.1 requires a Mac running macOS Mojave 10.14.4 or later.
Asset Catalogs
Known Issues
Images in the asset catalog won’t be found at runtime when running on watchOS 4. (55395258)
Interface Builder
New Features
You can now preview your interface for the 7th generation iPad. (53957165)
Known Issues
There is an issue with UITabBarController where decoding an instance from a storyboard will create some extra views at the left end of the screen. Developers may remove these by applying a workaround. (55310448)Workaround: To remove the extraneous views from Storyboard, create a subclass of a UITabBarController and add the following snippet in the class’s init(coder:)method:class WorkaroundTabBarController: UITabBarController {
required init?(coder: NSCoder) {
super.init(coder: coder)
// This must be run immediately after the call to super.
if (tabBar.subviews.count > 1) {
tabBar.subviews[0].isHidden = true
}
}
}
Resolved Issues
Fixed a crash that sometimes occurred when compiling XIB files in iOS projects that backwards deploy to iOS versions earlier than 13.0. (55271752)
Localization
Known Issues
UITableViewCell labels in storyboards and XIB files do not use localized string values from the strings file at runtime. (52839404)
Simulator
Known Issues
On macOS Catalina, iCloud Drive will crash in a loop on simulated devices running older versions of iOS. (51392951, 54282967, 54818084)Workaround: Log out of iCloud in impacted simulators to halt the crash cycle.
Resolved Issues
CarPlay works on iOS 13.1 simulators. (54492162)
Swift
Known Issues
The NEHotspotConfigurationError enum from the NetworkExtension framework changed from NS_ENUM to NS_ERROR_ENUM, which can cause compiler errors in existing Swift code that uses the enum. For example, in code like this:let code = NEHotspotConfigurationError(rawValue: errorCode)
You will see the error message: “error: incorrect argument label in call (have ‘rawValue:’, expected ‘_nsError:’).” (54134493)Workaround: Replace references of NEHotspotConfigurationError with NEHotspotConfigurationError.Code. For the above example, change the code to:let code = NEHotspotConfigurationError.Code(rawValue: errorCode)
SwiftUI
Resolved Issues
Fixed an issue with Xcode Previews where debugging a preview would no longer pin the preview, and navigating would lose the debug session. (54758098)
Swift Packages
Known Issues
If an iOS, tvOS, or watchOS app uses a Swift Package that builds a dynamic library, it cannot be submitted to the App Store. (55564324)Workaround: Modify the Package manifest to build a static library.
Today Apple released macOS Catalina 10.15 (19A573a) Beta 9 to Developers.
This article is meant to save you time going through the notes to find what is new and what is still leftover from the last beta. I went through both Beta 8 and the new Catalina 10.15 Beta 9 (19A573a) release notes to find all the changes. Like usual, I also have included the entire patch notes list as an archive. When Apple releases the next Beta patch notes, the previous patch notes are overwritten and taken down.
Summary of Beta 9 Patch Notes
1 New Features
2 New Resolved issues
2 New Known Issues
0 New Deprecations
Report your bugs NOW!
This may be the final beta left to test. The public Release of Catalina is only a few weeks away! You will want to get any bugs that you find into Apple now. If you get them in now, they could be fixed in the current beta cycle instead of waiting until after September’s release date. If you wait it could be months before the fix is put into a dot release combo update.
Keep in mind, I can only publish public data. If you are an AppleSeed for IT member you can access additional 10.15 Catalina Beta Patch Notes in the AppleSeed Portal. AppleSeed information is protected by Apple’s NDA.
Some fixes are not going to be listed. Many issues are from #MacAdmins who have filed FeedBack Requests and Enterprise Support tickets. Most of these issues are resolved but are never publicly noted.
1. New Features in Beta 9
iCloud – Launch daemons and launch agents introduce new user privacy protections. Specifying privacy-sensitive files and folders in a launchd property list might not work as expected and prevent the service from running. Having Program or ProgramArguments pointing to an executable in a privacy sensitive location is currently allowed, but may be restricted in a future release. (49702405)To comply with the new privacy protections, resources for a launchd service must be stored in locations that aren’t privacy sensitive. If necessary, the app can set up resources during its execution rather than using launchd property list keys, making it possible to grant the app access using System Preferences > Security & Privacy > Privacy. The following launchd property list keys are affected: KeepAlive, PathState, QueueDirectories, Sockets, SockPathName, StandardErrorPath, StandardInPath, StandardOutPath, and WatchPaths.
2. New Resolved issues
Localization – Fixed an issue where certain languages might exhibit clipped or misaligned layout. (51068688, 50983852)
Localization – Fixed an issue where certain languages might display unlocalized text. (47765173, 51196633)
3. New Known Issues
Mac Catalyst – DOM keyboard events aren’t dispatched as expected in WKWebView when pressing or releasing keys. Web apps needing to track typed characters can instead listen for DOM input events. (54580414)
Remote Desktop – Turning on Curtain Mode prevents you from being able to control a remote Mac. (52900397)
Today Apple released Xcode 11 to the Mac App Store.
The Production version of Xcode 11 was released to the Mac App Store today. The Build Number is the same as Xcode 11 Seed #2. I also double checked the release notes are they are the same.
I have added links to my previous Xcode 11 Change Notes below. Also included is Xcode Requirements and “What’s New”
Xcode 11 includes Swift 5.1 and SDKs for iOS 13, tvOS 13, watchOS 6, and macOS Catalina 10.15
SwiftUI
SwiftUI framework and design tools work together to enable a new way to build user intefaces
Declarative syntax defines your user interface using easy-to-read Swift code
Design tools make it as easy as drag-and-drop to construct and edit your views
Code you write is always in sync with the design and preview canvas
Library of controls and modifiers make it easy to build complex interfaces
Animations are built using simple commands that describe the action you want to see
Preview your real app running on multiple device types, orientations, and font sizes
Share common code across all Apple platforms, and add custom experiences for each OS
* NOTE: SwiftUI requires iOS 13, watchOS 6, tvOS 13, or macOS Catalina. To use the SwiftUI design canvas Xcode 11 must be running on macOS Catalina, coming this Fall.
Mac Catalyst brings iPad apps to the Mac
Click a single checkbox in your iPad project to add a native Mac app
One project and set of source code creates iPhone, iPad, and Mac versions of your app
Customize elements of your app for an experience unique to Mac
Add new SwiftUI code to your project along side existing UIKit code
Submit to the Mac App Store or notarize for outside distribution
Swift and Swift Packages
Swift packages are supported throughout, including build, debug, and SCM workflows
Use Swift packages from GitHub, Bitbucket, GitLab, or your own hosts
Download packages automatically based on dependency analysis
Create your own packages to share code among all your apps, or to publish for the community
iOS dark mode
Switch between light and dark mode instantly while developing and debugging
Asset catalog makes it easy to control images and colors for dark and light mode
Editor
Editor minimap gives a bird’s eye view of your code so you can quickly jump to any line
Each editor view has its own preview, assistant, or other complementary views
Split any editor pane to layout your workspace exactly as you want
Other improvements
Build stand-alone watchOS apps with a faster debugging experience
Simulator launches quickly and uses the GPU to accelerate Metal code
Test plans give you greater control of your test harness with sharable results bundles
Automatically generate localized screenshots using UI tests as part of your test plan
Source control adds support for stash and cherry-pick operations
Simulate device conditions such as a slow network or thermal warnings while debugging
Metrics tab in the Organizer shows how efficiently your app runs on customer devices
NEW UPDATE: 4/08/20 – I am getting multiple reports that users are having issues applications that use Hardware Accelerated Video with the latest 10.14 and 10.13 2020-002 Security updates. The system will 100% freeze up during video conference, video or heavy app usage and you will have to hard power down. I posted all the new information about the freezing issue in a new article here – https://mrmacintosh.com/2020-002-update-causes-some-macs-to-freeze-up-while-using-vid-conf-apps/
FINAL UPDATE: 1/22/20 – Multiple users have contacted me to let me know that the latest macOS Mojave 10.14.6 Security Update 2019-002 (18G2022) has fixed the issue for them! The T2 BridgeOS version is 17.16.12551 or newer.
UPDATE: 10/03/19 – I am hearing from readers and commenters that Zoom has confirmed that this issue is fixed in macOS Catalina 10.15. This could very well mean that we will not get a fix for Mojave. 🙁
After Apple released the 10.14.6 Update, some users of 2019 & 2018 15″ MacBook Pros started to report Kernel Panics when using the Built-In FaceTime Camera.
I reported on a similar issue about a month ago when the 2019-004 Security Update for High Sierra and Sierra started causing a Kernel Panic after waking from sleep.
In this article, I will give you the lowdown of the issue. In the end, I will also give you a workaround until Apple releases a fix.
If you are interested in the 2018-004 Security Update Wake from Sleep issue you can read my report Below.
If you have the issue on a 2018-2019 13″ MacBook Pro/Air Please do not hesitate to Contact Me.
3. This issue does NOT affect most 10.14.6 users.
I tried time and time again to reproduce this issue. Having both a 2018 and 2019 15″MacBook Pro for testing, I figured that I would be able to reproduce the issue. Having FaceTime.app open for hours and using Zoom Conference call for 4 hours, produced zero crashes. This could be a clue as to an additional cause on the reported users computers, but I’m not sure.
4. Kernel Panic Reports
What do the Kernel Panic Reports look like? Looking over the report it looks like BridgeOS is crashing. Below is a sample report.
{“caused_by”:”unknown”,”macos_version”:”Mac OS X 10.14.6 (18G84)”,”os_version”:”Bridge OS 3.6 (16P6568)”,”macos_system_state”:”running”,”incident_id”:”6DCB8540-C363-4FC9-999E-9E38E276621A”,”timestamp”:”2019-07-25 15:44:33.33 +0000″,”bug_type”:”210″}
{
“build” : “Bridge OS 3.6 (16P6568)”,
“product” : “iBridge2,3”,
“kernel” : “Darwin Kernel Version 18.7.0: Tue Jun 25 21:35:19 PDT 2019; root:xnu-4903.270.47~9\/RELEASE_ARM64_T8010”,
“incident” : “6DCB8540-C363-4FC9-999E-9E38E276621A”,
“crashReporterKey” : “c0dec0dec0dec0dec0dec0dec0dec0dec0de0001”,
“date” : “2019-07-25 15:44:33.08 +0000”,
“panicString” : “panic(cpu 0 caller 0xfffffff01bca5bec): \”void AppleEmbeddedPCIeUpLinkMgmt::_linkInterruptAction(IOInterruptEventSource *, int): \” \”A link timeout has been seen after 100000 microseconds and 49999 iterations.\”@\/BuildRoot\/Library\/Caches\/com.apple.xbs\/Sources\/AppleEmbeddedPCIeUpLinkMgmt\/AppleEmbeddedPCIeUpLinkMgmt-76.260.2\/AppleEmbeddedPCIeUpLinkMgmt.cpp:3982\nDebugger message: panic\nMemory ID: 0x6\nOS version: 16P6568\nmacOS version: 18G84\nKernel version: Darwin Kernel Version 18.7.0: Tue Jun 25 21:35:19 PDT 2019; root:xnu-4903.270.47~9\/RELEASE_ARM64_T8010\nKernelCache UUID: DB4E28E6354462E8ADC412A804EB32E1\nKernel UUID: 9FC93C85-B7C5-3723-92B7-293273AB9C4F\niBoot version: iBoot-4513.270.14\nsecure boot?: YES\nx86 EFI Boot State: 0xe\nx86 System State: 0x0\nx86 Power State: 0x0\nx86 Shutdown Cause: 0x5\nx86 Previous Power Transitions: 0x40504000200\nPCIeUp link state: 0x94721611\nPaniclog version: 13\nKernel slide: 0x000000001559c000\nKernel text base: 0xfffffff01c5a0000\nmach_absolute_time: 0xa75d527f88\nEpoch Time: sec usec\n Boot : 0x5d37ad8f 0x000c3155\n Sleep : 0x5d39a45e 0x000defae\n Wake : 0x5d39ab5f 0x0006d1c2\n Calendar: 0x5d39ce41 0x000cb6eb\n\nPanicked task 0xffffffe000881680: 8160 pages, 207 threads: pid 0: kernel_task\nPanicked thread: 0xffffffe000c4b3e0, backtrace: 0xffffffe01633b590, tid: 280\n\t\t lr: 0xfffffff01c6ae2a4 fp: 0xffffffe01633b620\n\t\t lr: 0xfffffff01c79b5a4 fp: 0xffffffe01633b760\n\t\t lr: 0xfffffff01c679610 fp: 0xffffffe01633b770\n\t\t lr: 0xfffffff01c6ad848 fp: 0xffffffe01633bae0\n\t\t lr: 0xfffffff01c6adbc0 fp: 0xffffffe01633bb20\n\t\t lr: 0xfffffff01c6ada14 fp: 0xffffffe01633bb40\n\t\t lr: 0xfffffff01bca5bec fp: 0xffffffe01633bbd0\n\t\t lr: 0xfffffff01cb35fc4 fp: 0xffffffe01633bc10\n\t\t lr: 0xfffffff01cb34ad8 fp: 0xffffffe01633bc50\n\t\t lr: 0xfffffff01cb3434c fp: 0xffffffe01633bc90\n\t\t lr: 0xfffffff01c684614 fp: 0x0000000000000000\n\n”,
“panicFlags” : “0x2”,
“otherString” : “\n** Stackshot Succeeded ** Bytes Traced 112560 **\n”,
“macOSPanicFlags” : “0x0”,
“macOSPanicString” : “BAD MAGIC! (flag set in iBoot panic header), no macOS panic log available”,
“memoryStatus” : {“compressorSize”:0,”compressions”:0,”decompressions”:0,”busyBufferCount”:0,”pageSize”:16384,”memoryPressure”:false,”memoryPages”:{“active”:8141,”throttled”:0,”fileBacked”:10933,”wired”:10886,”purgeable”:0,”inactive”:5798,”free”:3029,”speculative”:2344}},
5. Why rolling back will NOT work.
You might think, what if I roll back to a previous version of Mojave like 10.14.5? In the past, this might have worked! It will NOT work when the issue is caused by BridgeOS. Apple has made it impossible to roll back the version of your T2 BridgeOS.
After you updated to 10.14.6, your BridgeOS was also updated. If you try to reinstall 10.14.5, this version will still work but the newer BridgeOS will still be installed. This is also why if you got your MacBook Pro replaced at the Apple Store, the issue could STILL be happening to you.
The only way you could get this to work is if you got ahold of a 10.14.5 system on BridgeOS version 16.16.5601 or lower.
6. Built-In FaceTime Camera
The crash ONLY happens when you use the MacBook Pro Built-In FaceTime Camera. It does not matter what you do. From the many reports that I have looked through, the crash could happen the very second you activate the camera or 2 hours after. Most of the reports seem to be from 10min to 1 hour of use.
7. Camera Software that causes the KP’s
The following software can cause your Mac to Kernel Panic
FaceTime.app
WebEx
Zoom
Slack
Google Hangouts
Skype
Teams
gotomeeting
BlueJeans
You get the idea, basically ANY application that uses the Built-In FaceTime Camera.
8. Workarounds
Most issues like this have some type of workaround. Sometimes a workaround is found by accident or after hours of testing. This time around a few users on the Apple Discussion Forums found at least one workaround.
Plug in an additional Web Camera. This could be a USB Web Camera or even a monitor with a built-in camera like the Apple 27″ ThunderBolt Display.
You don’t even have to use the secondary camera. For some reason with the second camera plugged in reports say that you can use the built-in FaceTime Camera without crashes. Found by user edgonz305
Run a Windows Fusion VM with Skype in that VM. The problem does not occur using integrated camera. This is not a solution for everyone, but for me it works better than using an external camera. Additional workaround from OaSOakover
You can prevent the crashes by just disabling video on the meeting. (This one is pretty obvious if you don’t need to use the FaceTime Cam)
macOS Catalina Beta may fix the issue. Reported by Commenter Dave!
9. Will Apple fix this issue? 10.14.6 Supplemental Update #3 ?
With the end of support coming up fast for Mojave, will Apple fix this issue? I think the answer is YES. This is coming from reports that Apple DOES know about the issue and is still investigating. My guess is that Apple will release one final Supplemental Update to fix this.
If you or any of your users are having this issue, please contact Apple Support.
Zoom Response -“We found it not only influences ZOOM but also FaceTime, Skype and other Camera involving Apps, we are still working with Apple to fix it but currently as a workaround, please turn off your video when joining ZOOM meetings or use external camera by USB.”
If you have any information on the 10.14.6 FaceTime Kernel Panic issue that you would like added to this article, please Contact Me.
Today Apple released Xcode 11 GM Seed 2 to Developers.
The Xcode 11 GM Seed 2 was released today. Usually GM or Gold Master means that this Build Version is the final shipping version. In this case a 2nd GM Seed was released.
This article is meant to save you time going through the notes to find what is new and what is still leftover from the last beta. I went through both Xcode 11 GM (11A419c) and Xcode 11 GM Seed 2 (11A420a) release notes to find all the changes. I also included the entire patch notes list as an archive. When Apple releases new patch notes the previous patch notes are overwritten and taken down.
Summary of New Xcode 11 GM Seed 2 Patch Notes
0 New Features
2 New Resolved issues
2 New Known Issues
0 New Deprecations
A Full List of changes is listed below, along with the full patch notes list.
Asset Catalog – Fixed an Asset Catalog bug that prevented named colors from being found at runtime when running on iOS 11. (54325712)
Build System – By default, Xcode’s new build system doesn’t detect changes in directories declared as inputs to shell script build phases. Enabling the build setting USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES causes it to do so. However, if any of the files inside such a directory are generated by a task that depends on the output of the script phase, then a dependency cycle error is emitted and must be resolved by restructuring the target. (41126633)
New Known Issues
Asset Catalog – When an asset is localized in the asset catalog, another localized resource must exist in the corresponding lproj directory for the app to use that language at runtime. An empty strings file can serve this purpose. (49565973)
Simulator – CarPlay does not work in iOS 13 simulators. (54492162)
Yesterday Apple released iOS 13.1 Beta 3 to Developers.
This article is meant to save you time going through the notes to find what is new and what is still leftover from the last beta. I went through both iOS 13.1 Beta 2 and the new iOS 13.1 Beta 3 (17A5837a) release notes to find all the changes. I also included the entire patch notes list as an archive. When Apple releases the next Beta patch notes the previous patch notes are overwritten and taken down.
Summary of New iOS 13.1 Beta 3 Patch Notes
1 New Features
1 New Resolved issues
2 New Known Issues
2 New Deprecations
A Full List of changes is listed below, along with the full patch notes list.
SwiftUI – (NOTE: this is a change of wording) BindableObject is replaced by the ObservableObject protocol from the Combine framework. (50800624)You can manually conform to ObservableObject by defining an objectWillChange publisher that emits before the object changes. However, by default, ObservableObject automatically synthesizes objectWillChange and emits before any @Published properties change.// RoomStore.swift import Foundation class RoomStore: ObservableObject { @Published var rooms: [Room] = [] } struct Room: Identifiable { var id: UUID var name: String var capacity: Int var hasVideo: Bool } // ContentView.swift import SwiftUI struct ContentView: View { @ObservedObject var store: RoomStore var body: some View { NavigationView { List(store.rooms) { room in RoomCell(room: room) } .navigationBarTitle(“Rooms”) } } } @ObjectBinding is replaced by @ObservedObject.
2. New Resolved Issues in iOS 13.1 Beta 3
Media Player – Fixed an issue where playback stopped if an app using MediaPlayerFramework to play catalog content was backgrounded. (54131440)
3. New Known Issues in iOS 13.1 Beta 3
Metal – In iOS 13, if you refer to a sparse texture in an argument buffer you must explicitly call use(:usage:stages:) on the texture rather than calling useHeap(🙂 on the heap. (54605833)
Sidecar – To use Sidecar with iPadOS 13.1 beta 2 or later, macOS Catalina Beta 8 or later is required. (54903543)
4. New Deprecations in iOS 13.1 Beta 3
Networking – Removed support for FTP and File URL schemes for Proxy Automatic Configuration (PAC). HTTP and HTTPS are the only supported URL schemes for PAC. This affects all PAC configurations including, but not limited to, configurations set using Settings, System Preferences, Profiles, and URLSession APIs such as connectionProxyDictionary and CFNetworkExecuteProxyAutoConfigurationURL(::::). (28578280)
SwiftUI – SwiftUI APIs deprecated in previous betas are now removed. (52587863, 53310683)
Today Apple released macOS Catalina 10.15 (19A558d) Beta 8 to Developers.
This article is meant to save you time going through the notes to find what is new and what is still leftover from the last beta. I went through both Beta 7 and the new Catalina 10.15 Beta 8 (19A558d) release notes to find all the changes. Like usual, I also have included the entire patch notes list as an archive. When Apple releases the next Beta patch notes, the previous patch notes are overwritten and taken down.
Summary of Beta 8 Patch Notes
3 New Features
3 New Resolved issues
2 New Known Issues
4 New Deprecations
A Full List of changes is listed below, along with the full patch notes list.
Report your bugs NOW!
This may be the final beta left to test. The public Release of Catalina is only about one month away. You will want to get any bugs that you find into Apple now. If you get them in now, they could be fixed in the current beta cycle instead of waiting until after September’s release date. If you wait it could be months before the fix is put into a dot release combo update.
Keep in mind, I can only publish public data. If you are an AppleSeed for IT member you can access additional 10.15 Catalina Beta Patch Notes in the AppleSeed Portal. AppleSeed information is protected by Apple’s NDA.
Some fixes are not going to be listed. Many issues are from #MacAdmins who have filed FeedBack Requests and Enterprise Support tickets. Most of these issues are resolved but are never publicly noted.
1. New Features in Beta 8
SwiftUI – NSManagedObject now conforms to ObservableObject. The new @FetchRequest property wrapper can drive views from the results of a fetch request, and managedObjectContext is now included in the environment. (50280673)
SwiftUI – BindableObject is replaced by the ObservableObject protocol from the Combine framework. (50800624)You can manually conform to ObservableObject by defining an objectWillChange publisher that emits before the object changes. However, by default, ObservableObject automatically synthesizes objectWillChange and emits before any @Published properties change.// RoomStore.swift import Foundation class RoomStore: ObservableObject { @Published var rooms: [Room] = [] } struct Room: Identifiable { var id: UUID var name: String var capacity: Int var hasVideo: Bool } // ContentView.swift import SwiftUI struct ContentView: View { @ObservedObject var store: RoomStore var body: some View { NavigationView { List(store.rooms) { room in RoomCell(room: room) } .navigationBarTitle(“Rooms”) } } } @ObjectBinding is replaced by @ObservedObject.
SwiftUI – The RangeReplaceableCollection protocol is extended to include a remove(atOffsets:) method and the MutableCollection protocol is extended to include a move(fromOffsets:toOffset:) method. Each new method takes IndexSet instances that you use with the onMove(perform:) and onDelete(perform:) modifiers on ForEach views. (51991601)
2. New Resolved Issues in Beta 8
Apple TV – Support for signing in with an account from a different country is now available. (51240948)
iWork – Attempting to open iWork documents in Finder will no longer unexpectedly create a .cpgz file if the corresponding iWork app isn’t installed. (40693892)
Mac Catalyst – Fixed an issue where event handling in extension contexts sometimes produced unexpected results, including failure to deliver trackpad pinch and zoom gestures. (50145462)
3. New Known Issues in Beta 8
Mac Catalyst – Catalyst apps using UIDocumentInteractionController might quit unexpectedly. You can work around this issue by excluding UIDocumentInteractionController functionality with target macros. (48878552)
SwiftUI – Apps containing SwiftUI inside a Swift package might not run on versions of iOS earlier than iOS 13. (53706729)Workaround: When back-deploying to an OS which doesn’t contain the SwiftUI framework, add the -weak_framework SwiftUI flag to the Other Linker Flags setting in the Build Settings tab. See Frameworks and Weak Linking for more information on weak linking a framework. This workaround doesn’t apply when using dynamically linked Swift packages which import SwiftUI.
4. New Deprecations in Beta 8
EndpointSecurity – (Left over from last time as it was incorrectly noted that this was removed) The kauth API has been deprecated. (50419013)
SwiftUI – Complex overloads for the background(:alignment:) and border(:width:) modifiers are deprecated. Use shapes in a background(:alignment:) or overlay(:alignment:) to draw these instead. (53067530)
SwiftUI – The identified(by:) method on the Collection protocol is deprecated in favor of dedicated init(:id:selection:rowContent:) and init(:id:content:) initializers. (52976883, 52029393)The retroactive conformance of Int to the Identifiable protocol is removed. Change any code that relies on this conformance to pass .self to the id parameter of the relevant initializer. Constant ranges of Int continue to be accepted:List(0..<5) { Text(“Rooms”) } However, you shouldn’t pass a range that changes at runtime. If you use a variable that changes at runtime to define the range, the list displays views according to the initial range and ignores any subsequent updates to the range.
SwiftUI – Several extensions to the Binding structure are removed. (51624798)If you have code such as the following:struct LandmarkList: View { var landmark: [Landmark] @Binding var favorites: Set var body: some View { List(landmarks) { landmark in Toggle(landmark.name, isOn: self.$favorites.contains(landmarkID)) } } } Define the following subscript on the Set structure:extension Set { subscript(member: Element) -> Bool { get { contains(member) } set { if newValue { insert(member) } else { remove(member) } } } } Then, change self.$favorites.contains(landmarkID) to self.$favorites[landmarkID].
The Xcode 11 Gold Master version of Xcode is ready! Usually GM or Gold Master means that this Build Version is the final shipping version. Apple still may release another update so don’t bank on this being the final version.
This article is meant to save you time going through the notes to find what is new and what is still leftover from the last beta. I went through both Beta 7 and the new New Xcode 11 GM (11A419c) release notes to find all the changes. I also included the entire patch notes list as an archive. When Apple releases new patch notes the previous patch notes are overwritten and taken down.
Summary of New Xcode 11 GM Seed 1 Patch Notes
26 New Features
25 New Resolved issues
15 New Known Issues
2 New Deprecations
A Full List of changes is listed below, along with the full patch notes list.
The new Xcode 11 is available in the Mac App Store and includes SDKs for iOS 13, macOS Catalina 10.15, watchOS 6, and tvOS 13. Xcode 11 supports development for devices running iOS 13.1. Xcode 11 supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Note that Xcode 11 requires a Mac running macOS Mojave 10.14.4 or later.
1. New Features in Xcode 11 GM
Asset Catalog – Xcode can find assets in your workspace/project using the Find navigator. The Asset Catalog Editor also supports Find and Replace, and you can rename assets using Replace. (14279237)
Build System – Xcode uses response files by default to pass input files to the Swift compiler. To turn this behavior off, set USE_SWIFT_RESPONSE_FILE to NO. (50852028)
Build System – Projects may now use custom build rules by setting the ‘Process Header Files’ (APPLY_RULES_IN_COPY_HEADERS) build setting to YES. (48185100)
Build System – An XCFramework makes it possible to bundle a binary framework or library for multiple platforms —including iOS devices, iOS simulators, and Mac Catalyst — into a single distributable .xcframework bundle that your developers can use within their own applications. An .xcframework bundle can be added to an Xcode target’s Link Libraries phase and Xcode uses the right platform’s version of the included framework or library at build time. Creation of frameworks is supported from the command line using xcodebuild -create-xcframework. Frameworks or libraries bundled in an XCFramework should be built with the Build Libraries for Distribution build setting set to YES. (49948269)
Create ML – A Tabular Regressor template is now available, joining Image Classification, Sound Classification, Activity Classification, Tabular Classification, Word Tagger and Text Classification. (54005628)
Debugging – Override system settings like appearance, dynamic type, and accessibility options for the debugged process using Environment Overrides, accessible from the debug bar. (45848655)
Debugging – Xcode can prefer using Wi-Fi to connect to a Watch when installing or debugging an app. (50313856)NoteThe iPhone-Watch pair must be on the same 2.4 GHz network. Networks that block peer-to-peer connections cannot be used.
Debugging – LLDB’s Python scripting is now based on Python 3. If you are using Python extensions that aren’t compatible with Python 3, they will break. To help with the transition, you can run in Python 2 mode by setting a default:defaults write com.apple.dt.lldb DefaultPythonVersion 2 Python 2 support will be removed in the future. (47806994)
Debugging – Swift Decimal values have a data formatter in LLDB, making them display in a readable way. (38983073)
Localization – The manual page for genstrings documents its behavior in more detail. (19709369)
Organizer – The new Metrics organizer shows battery life and performance analytics for your app to help you drive optimizations. Metrics are reported for your app when distributed on the App Store and after sufficient field use. The available metrics are battery drain, launch time, hang rate, memory, and disk writes. You can filter data by device and usage characteristics. (43028903)
Playgrounds – SwiftUI live views and inline results in playgrounds are supported. (42226387)
Server – Xcode Server now supports Mac Catalyst apps. (50602873)
Simulator – Metal is available in iOS 13 and tvOS 13 simulators when running on macOS 10.15. Metal code is executed on the host Mac GPU, and is significantly faster than simulated OpenGL code. (System APIs in watchOS 6.0 simulators are also GPU accelerated.)The APIs in SceneKit, CoreAnimation, and other system frameworks abstract many differences between GPUs, reducing the need for device-specific code. When running on earlier versions of macOS or in an environment where Metal is not available, simulators continue to use software rendered OpenGL. If your Mac has multiple GPUs, use the File menu in Simulator to select which GPU to use. If the GPU in use becomes unavailable, any simulators using it automatically shut down. (18430676)
Simulator – Xcode no longer creates every available iOS simulator device by default. Instead a set of the most commonly used devices are created. To create other devices — or multiple instances of a device — open the Devices window, select Simulators, click the + button, enter a name, and select the relevant device type and OS version. In Terminal, execute the xcrun simctl create command, for example xcrun simctl create “My iPhone 7” “iPhone 7” iOS13.0. (49428617)
Simulator – iOS 13, watchOS 6, and tvOS 13 simulators now have a dyld shared cache. This improves simulator launch times and reduces the number of open file handles used by simulator processes. If you report an issue you believe is related to the shared cache, include a simctl diagnose and the output of launching your program with DYLD_PRINT_LIBRARIES=1. (13632739)NoteA missing symbol crash may now mention the shared cache but this is not a shared cache bug. The message is merely informing you that the shared cache was consulted when searching for the symbol.
Source Editor – Xcode 11’s source editor introduces a mini-map of the file. The mini-map includes legible text for Mark:, highlighted lines with errors and warnings, source control changes, breakpoints, and highlighted Find results. The mini-map is enabled by default and can be turned off per editor. (35939517, 46064742, 46064809, 46064921, 46064981, 47127500, 47208960, 47516881)
Source Editor – Added options to control the indentation of case labels inside switch statements. This can be controlled separately for Swift and C-family languages under Preferences -> Text Editing -> Indentation. (9441571)
Source Editor – Added an option for controlling indentation inside the C++ namespace and external C blocks in Preferences > Text Editing > Indentation. (20700010)
Source Editor – Pasted text is no longer re-indented by default, though the initial whitespace is adjusted to match the surrounding text. This can be controlled with Preferences > Text Editing > Indentation. (16047992)
Source Editor – Added support for syntax coloring YAML files. (19942196)
Swift – The @frozen attribute for structures and enumerations is now available. (SE-0260, 36597490)
Swift – More thorough checking has been implemented for restrictions around escaping closures capturing in-out parameters or values of noescape type. While most code isn’t affected, there are edge cases where the Swift 5.0 compiler accepted code that violated these restrictions. (SR-8546, SR-9043, 43355341)An example of invalid code which was incorrectly accepted by the Swift 5.0 compiler is an @escaping closure that calls a local function that references an in-out parameter from an outer scope:struct BadCaptureExample { var escapingClosure: () -> () mutating func takesInOut(_ x: inout Int) { func localFunction() { x += 1 } escapingClosure = { localFunction() } } } The compiler now correctly diagnoses the above code by pointing out that the capture of x by localFunction() is invalid, since localFunction() is referenced from an @escaping closure.This also addresses certain cases where the compiler incorrectly diagnosed certain code as invalid, when in fact no violation of restrictions had taken place. For example:func takesNoEscape(_ fn: () -> ()) { func localFunction() { fn() } { localFunction() }() }
Swift Packages – Xcode now supports creating and working with Swift packages, as well as adding, removing, and managing package dependencies. The package management support in Xcode is built on top of the open source Swift Package Manager project. (22427200)
Testing – XCTest includes augmented performance testing capabilities with the new measure(metrics:options:block:) method and related methods. The metrics argument requires a list of objects conforming to the XCTMetric protocol. You can either implement your own custom metrics or use XCTClockMetric, XCTOSSignpostMetric, XCTCPUMetric, XCTMemoryMetric, or XCTStorageMetric. (49430032)The following shows an example performance test that measures the CPU and Memory impact of sorting a list:func testExample() { // Measures the CPU and memory impact of sorting the input list. measure(metrics: [XCTCPUMetric(), XCTMemoryMetric()]) { sortedList = qsort(list: self.fiftyNumbersFrom0to100) } }
Testing – When running tests using a test plan, it is now possible to configure which targets to include in code coverage results via the test plan’s code coverage setting. (53504451)
2. New Resolved Issues in Xcode 11 GM
General – Fixed an issue where issue text may appear light when using a light theme with a dark system appearance. (48230278)
Create ML – Non-ASCII characters can be used as training labels for Image Classification and Sound Classification. (53594243)
Debugging– Breakpoints support the VoiceOver command to open the shortcut menu. (44940944)
Debugging – Redeclaring self in Swift code works properly with LLDB. (39611934)
Debugging – The Swift REPL and LLDB’s python scripting work properly when the python binary in PATHisn’t the system one. (40961425)
Interface Builder – Fixed an issue where system colors in XIB files set to deploy before iOS 13.0 wouldn’t adapt to the system appearance at runtime. (54362252)
Debugging – Resolved an issue that prevented running a Watch App that has the ‘Supports Running Without iOS App Installation’ setting on a pre-watchOS 6.0 device or simulator. (54104164)
Simulator – Fixed an issue that could cause Simulator to crash or become unresponsive following clipboard-related actions in other applications if automatic pasteboard synchronization is enabled. (54011137)
Simulator – Changing the audio in a simulated device while a video is playing in Safari won’t mute the audio of the video. (51207286)
Source Editor – Fixed an issue where double clicking on a C++ destructor name would also select the tilde (~). (6368356)
Source Editor – Makefiles are now correctly recognized, and are always indented using tab characters. (16975247)
Source Editor – Fixed an issue where changing a file’s tab width would not update the display. (52026893)
Source Editor – When full lines are selected, typing a delimiter now places the delimiters on separate lines, shifting the selection to the right. (52077437)
Source Editor – Fixed a problem where double-clicking text containing words separated by periods in comments would select too much. (11541526)
Source Editor – Double-clicking the quotes of a Swift string containing interpolations now selects the whole string. (24470374)
Source Editor – Improved the recognition of functions in shell script files. (52478049)
Source Editor – Improved performance and correctness when parsing XML and HTML files. (50672550)
Source Editor – Improved the syntax coloring for man page files. (52035097)
Swift – Static libraries are now always force-loaded in their entirety during linking, fixing most “unable to demangle” runtime errors. (47598583)
Swift – If a type has the same name as its containing module, importing that module from a module interface works properly. (19481048, 48445154)
SwiftUI – The #if/#endif compiler conditionals surrounding PreviewProvider types have been removed from SwiftUI templates. PreviewProviders aren’t properly removed from built products when archived. (51539802)
SwiftUI – Xcode Previews work when your built products (derived data) are on a separate volume from your home directory. (54327360)
SwiftUI – Switching run destinations will show the correct device in Xcode Previews. (54006837)
SwiftUI – Fixed an issue preventing Xcode Previews from working for macOS apps with App Sandbox enabled. (51088926)
Testing – The unit test discovery mechanism is more efficient for large projects. The test navigator gets populated faster after reopening a project. (32567980)
3. New Known Issues in Xcode 11 GM
General – When building an Objective-C iOS File Provider application extension that implements the URLForItemWithPersistentIdentifier method, Xcode emits a warning saying that this callback method is deprecated and won’t be called. This warning is incorrect; the method isn’t deprecated, and is called at the appropriate times. (54487300)
Asset Catalog – Named colors in the asset catalog won’t be found at runtime when running on iOS 11. (54325712)
Command Line Tools – When using the Command Line Tools as the active Developer directory, some users may experience random crashes in the Swift compiler. (53582696)Workaround: Execute the command sudo rm -f /Library/Developer/CommandLineTools/usr/lib/swift/macosx/libswift*.dylib in Terminal.
Create ML – Apps importing the Create ML framework may not launch if they are compiled by Xcode 11. This doesn’t impact existing apps. (53795065) Workaround: Add the file libswiftCreateML.tbd in the ‘Link Library with Libraries’ section.
Reality Composer – The Rename menu item isn’t enabled when scene, object, or behavior is selected. (54274819)Workaround: You can rename scenes and objects using the Name field in the Properties inspector. You can rename behaviors by right-clicking the behavior and selecting Rename from the contextual menu.
Simulator – iCould Drive isn’t supported in iOS 13.0 and earlier simulator runtimes when running on macOS Catalina 10.15. Logging into iCloud on impacted simulators will result in birdterminating and relaunching in a cycle. (51392951)Workaround: Log out of iCloud in impacted simulators to halt the crash cycle.
Simulator – Simulated devices running iOS 13 may fail to enable an external display or CarPlay display, instead displaying a black window. (53966664)Workaround: Close the window and try again. If that fails restart the affected simulator.
Simulator – When running UI tests in a simulated device on a macOS host with slow hardware the test runner process may get killed by the CPU watchdog. (54136015)Workaround: Free up resources so the simulated device has faster I/O. You can also extend the watchdog timeouts by setting a user default in the relevant simulator. Boot the simulator, then run:xcrun simctl spawn defaults write com.apple.springboard FBLaunchWatchdogScale 2 This must be set on each simulator. Erasing a simulator will reset this setting.
Simulator – Attempting to create an MIDINetworkSession in a simulated device running iOS 13 won’t succeed. (54484923)
SwiftUI – The attribute inspector doesn’t allow specifying flexible frames. (51310989)Workaround: Use the source editor to work with the frame inspector when specifying flexible size information.
SwiftUI – Text view doesn’t display properly in tvOS playgrounds. (54148259)
SwiftUI – SwiftUI has an API that lets you change the value type of Binding to AnyHashable:let someBinding: Binding = … let typeErasedBinding = Binding(someBinding) Attempting to use this API fails at compile time with a linker error on watchOS 6. (53769896)
SwiftUI – Apps containing SwiftUI inside a Swift package crash on launch on devices running iOS versions earlier than iOS 13. (53706729)Workaround: When back-deploying to an OS that doesn’t contain the SwiftUI framework, add -weak_framework SwiftUI to the Other Linker Flags setting in the Build Settings tab. See Frameworks and Weak Linking for more information on weak linking a framework. Note that this workaround doesn’t apply when using dynamically-linked Swift packages which import SwiftUI.
SwiftUI – Xcode Previews fast turnaround may not work in some files. (48091832)Workaround: If you encounter issues using Xcode Previews, you can try disabling hot-swapping per file using the Editor > Previews menu. You will still be able to use previews, but without the faster turnaround that hot-swapping provides.
Swift Compiler – Applying multiple property wrappers to a property could cause the compiler to synthesize accessors with the wrong ABI. This feature has been disabled to prevent incompatible ABI changes from occurring in the future. (53428736)
4. New Deprecations in Xcode 11 GM
Command Line Tools – Command line support for Subversion will be removed in a future release. (50195246, 50231958, 50266910, 51740851, 52528748)
Debugging – Starting in macOS 10.15, the Quartz Composer framework is marked as deprecated, but remains present for compatibility purposes. Transition to frameworks such as Core Image, SceneKit, or Metal if your app is using Quartz Composer. (50911608)
Do you need to recover user data with Target Disk Mode, but you don’t have the user’s FileVault 2 password?
I will show you how to unlock FileVault 2 after you connect the Mac using Target Disk Mode. This can be very helpful for IT Departments that need to access user data when an employee is let go and you don’t have the user’s password.
How to boot a Mac into Target Disk Mode (TDM)
Think of Target Disk Mode as if you are turning your Mac into an External Hard Drive. Once you plug the Target Mac into the host Mac using a USB/Thunderbolt Cable you can access all of the Target Mac’s files on the Host Mac. It’s really a great tool for moving data, especially useful for fast file backup, transfers or data recovery.
After typing in the command you will have a prompt that says Passphrase. Paste or type the Mac’s Recovery Key in and hit enter.
NOTE: for the PRK you have to include all the dashes and use all CAPS.
If you don’t you will get this error
Passphrase incorrect or user does not exist
Once you type in the correct PRK you will be see this message.
Unlocked and mounted APFS Volume attached via Target Disk Mode
Copying Files
One last note if you need to copy files from the user’s folder. If you navigate to the user’s folder and see that you do not have permission to view Desktop, Documents or Downloads. This is not a problem.
All you need to do is copy the entire user folder over to the Host Mac. You will be prompted to enter in an admin password. This is the admin password on the Host Mac not the Target Mac. Once the User folder is copied over you will have access to all files.
Thanks
I wanted to thank someone who clarified this procedure and also helped test to make sure it worked.
Thank you Mr. Anonymous!!!
I hope this article has helped you. If you have any questions or comments please don’t hesitate to Contact Me.
With that said, I am going to try documenting iOS patch change notes. Maybe this will end up being useful to iOS Developers. As Michael said if Apple would organize the patch notes with every new build version, I wouldn’t have to do this.
This article is meant to save you time going through the notes to find what is new and what is still leftover from the last beta. I went through both iOS 13.1 Beta 1 and the new iOS 13.1 Beta 2 (17A5831c) release notes to find all the changes. I also included the entire patch notes list as an archive. When Apple releases the Beta 3 patch notes the previous patch notes are overwritten and taken down.
Summary of New iOS 13.1 Beta 2 Patch Notes
0 New Warnings
3 New Features
0 New Resolved issues
3 New Known Issues
0 New Deprecations
A Full List of changes is listed below, along with the full patch notes list.
SwiftUI – NSManagedObject now conforms to ObservableObject. The new @FetchRequestproperty wrapper can drive views from the results of a fetch request, and managedObjectContext is now included in the environment. (50280673)
Swift UI – BindableObject is replaced by the ObservableObject protocol from the Combine framework. (50800624)You can manually conform to ObservableObject by defining an objectWillChangepublisher that emits before the object changes. However, by default, ObservableObjectautomatically synthesizes objectWillChange and emits before any @Publishedproperties change.// RoomStore.swift import Foundation class RoomStore: ObservableObject { @Published var rooms: [Room] = [] } struct Room: Identifiable { var id: UUID var name: String var capacity: Int var hasVideo: Bool } // ContentView.swift import SwiftUI struct ContentView: View { @ObservedObject var store: RoomStore var body: some View { NavigationView { List(store.rooms) { room in RoomCell(room: room) } .navigationBarTitle(“Rooms”) } } } @ObjectBinding is replaced by @ObservedObject.
SwiftUI – The RangeReplaceableCollection protocol is extended to include a remove(atOffsets:) method and the MutableCollection protocol is extended to include a move(fromOffsets:toOffset:) method. Each new method takes IndexSetinstances that you use with the onMove(perform:) and onDelete(perform:)modifiers on ForEach views. (51991601)
2. New Resolved issues in iOS 13.1 Beta 2
None
3. New Known Issues in iOS 13.1 Beta 2
iCloud – You might be unable to delete the Recovered Files folder in On My iPad/iPhone. (54785368)Workaround: Back up your device, erase it, restore from backup, then try again.
Sidecar – If you update to iPadOS 13.1 beta 2, you will be unable to use Sidecar until a future version of macOS Catalina beta is released. (54903543)
SwiftUI – Apps containing SwiftUI inside a Swift package might not run on versions of iOS earlier than iOS 13. (53706729)Workaround: When back-deploying to an OS which doesn’t contain the SwiftUI framework, add the -weak_framework SwiftUI flag to the Other Linker Flags setting in the Build Settings tab. See Frameworks and Weak Linking for more information on weak linking a framework. This workaround doesn’t apply when using dynamically linked Swift packages which import SwiftUI.
4. New Deprecations in iOS 13.1 Beta 2
None
Full Archive of iOS 13.1 Beta 2 Release Notes.
Overview
The iOS & iPadOS 13 SDK provides support for developing apps for iPhone, iPad, and iPod touch devices running iOS & iPadOS 13. The SDK comes bundled with Xcode 11 beta available from Beta Software Downloads. For information on the compatibility requirements for Xcode 11, see Xcode 11 Beta 7 Release Notes.
Warning
If your watch is running watchOS 6 beta, you must update it to watchOS 6 beta 2 or later before updating to iOS 13 beta 7 or later, otherwise your watch will no longer be able to connect to your phone. (52854192)
General
Known Issues
Snapshots for apps that use Metal might have an unexpected appearance in the App Switcher. (53121694)
Deprecations
The UIApplicationExitsOnSuspend key is no longer supported in iOS & iPadOS 13. Update your apps to handle modern multitasking. (43958234)
Audio
New Features
Voice Processing mode can now be enabled on AVAudioEngine. (50906329)
New AVAudioNode types can be used to wrap a user-defined block for sending or receiving data in real time.
A new method is available for an AVAudioEngine-based app to retrieve a list of all nodes attached to an AVAudioEngine instance.
A new rendering mode in AVAudioEnvironmentNode selects the best spatial audio rendering algorithm automatically based on the output device.
A new AVAudioSession property allows system sounds and haptics to play while the session actively uses audio input.
A new enumeration, AVAudioSession.PromptStyle, informs apps which style of voice prompt they should play based on other audio activity in the system.
AVAudioSession.RouteSharingPolicy now permits apps to specify route-sharing policies so their audio and video routes to the same location as AirPlay.
Audio Unit Extensions now support user presets that are available across all host applications.
Deprecations
The OpenAL framework is deprecated and remains present for compatibility purposes. Transition to AVAudioEngine for spatial audio functionality.
Inter-App audio is deprecated. Use Audio Units for this functionality moving forward.
Carbon component-based Audio Units are deprecated and support will be removed in a future release.
Legacy Core Audio HAL audio hardware plug-ins are no longer supported. Use audio server plug-ins for audio drivers moving forward.
Audio Sharing
New Features
Audio sharing is compatible with AirPods (1st generation or later) and PowerBeats Pro. iPhone 8 or later, iPad Pro 12.9-inch (2nd generation or later), iPad Pro 11-inch, iPad Pro 10.5-inch, iPad (5th generation or later), iPad Air (3rd generation), iPad mini (5th generation), or iPod touch (7th generation or later) is required. (51331268)
AVFoundation
New Features
AVFoundation now supports encoding video with alpha channels using HEVC. Videos encoded in this manner are broadly supported in AVFoundation APIs, and by Safari within web pages. Technical details of the format can be found in the Interoperability Profile specification. (8045917)
Core Haptics
Known Issues
By default, haptics are disabled when microphone recording begins. You can override this by setting the AVAudioSession property allowHapticsAndSystemSoundsDuringRecording to true before activating its audio session. (25811898)
Events — such as audioContinuous, hapticContinuous, and audioCustom — can’t be resumed during the event; no output occurs for that event, only for subsequent events. This applies to playback at a specific time offset, seeking, and resuming. (29274583)
Both vibrations generated through AudioServicesPlaySystemSound(_:) and vibration patterns generated through the user-created tap-to-vibrate UI are attenuated when compared to prior versions of iOS. (47448156)
Brief audio distortion occurs when starting a Playback category app such as Music in the background. For example, brief distortion occurs if you start the app from Control Center while Core Haptics audio playback using a playAndRecord audio session is already underway. (48121467)
Following any decompression to uncompressed floating-point samples, the total limit on all audioCustom resources per process is eight megabytes. (48659023)
Multiple overlapping Parameter Curves for the same CHHapticDynamicParameter.IDmight result in playback artifacts. (50026384)
The maximum duration for a hapticContinuous haptic event is 30 seconds. Events exceeding this limit can be constructed and accepted by CHHapticPatternPlayer, but haptic playback will fade out after 30 seconds. (51322525)
Metal CIKernel instances support arguments with arbitrarily structured data.
Metal CIKernel instances support returning a group of 2 × 2 pixels.
The integer values of CIFormat symbols, such as ARGB8, have changed to a new set of values that are consistent across platforms. The former values remain supported for backward compatibility; however, you should avoid dependancies on specific numerical values.
Find My
Known Issues
When performing an action in Find My that generates an email, you might see references to the Find My Friends and Find My iPhone apps. (51123613)
While iOS & iPadOS 13 remains in beta, offline-finding capability is limited.
iCloud
Known Issues
You might be unable to delete the Recovered Files folder in On My iPad/iPhone. (54785368)Workaround: Back up your device, erase it, restore from backup, then try again.
After updating to iOS 13 beta 6 or later, iCloud Drive might synchronize for an extended period of time. If you notice any missing files, they can be found in a Recovered Files folder under On My iPhone/iPad within the Files app. (53772753)
When creating a new Pages, Numbers, or Keynote document in a shared folder, you might see the message: “Couldn’t connect to iCloud.” (50827963)Workaround: Close and reopen the document.
Mail
New Features
Ignore Blocked Senders can now be enabled in Settings > Mail. The blocked contacts list is shared with Messages, FaceTime, and Phone. (50775961)
Networking
New Features
To enhance security, URLSession no longer sniffs the MIME type when the server sends Content-Type: application/octet-stream. (7820658)
Starting with iOS 13 beta 4, the copy attribute of the httpBodyStream property of NSMutableURLRequest is enforced. If the body data is mutated after the property setter has been called, data sent in the HTTP request won’t include that mutation. Invoking the property getter no longer returns a NSMutableData reference, even when the setter was invoked with data of that type. As of iOS 13 beta 5, apps built using the iOS 12 SDK or previous SDKs use the legacy behavior. (53427882)
The CNCopyCurrentNetworkInfo API has changed to address privacy. Please refer to the updated API documentation and headers for more details. (52707167)
Removed support for FTP and File URL schemes for Proxy Automatic Configuration (PAC). HTTP and HTTPS are the only supported URL schemes for PAC. This affects all PAC configurations including, but not limited to, configurations set using Settings, System Preferences, Profiles, and URLSession APIs such as connectionProxyDictionaryand CFNetworkExecuteProxyAutoConfigurationURL(_:_:_:_:). (28578280)
The URLSession and NSURLConnection APIs no longer support SPDY. Servers should use HTTP 2 or HTTP 1.1. (43391641)
RealityKit
Known Issues
The camera feed will remain visible at the base of objects loaded from a Reality File when ARView.Environment.Background is set to ARView.Environment.Background.skybox(_:) (53715030)Workaround: Turn off grounding shadows when setting the background to ARView.Environment.Background.skybox(_:) by setting ARView.RenderOptions to disableGroundingShadows.
Screen Time
Known Issues
If you enable Share Across Devices, Screen Time settings don’t sync with iCloud until your iOS device is restarted. Any edits you make to your Screen Time settings on that device before restarting are lost. (50194586)
Sidecar
Known Issues
If you update to iPadOS 13.1 beta 2, you will be unable to use Sidecar until a future version of macOS Catalina beta is released. (54903543)
Siri
Known Issues
The supportsOnDeviceRecognition property always returns false the first time it’s accessed. After a few seconds, accessing it again returns the correct value. (47822242)
Shortcuts opened on iOS & iPadOS 13 beta are automatically upgraded and can no longer be opened on iOS 12. If a device with iOS 12 and a device with iOS 13 share an iCloud account, shortcuts might become unusable on the device running iOS 12. (50873839)Workaround: Disable iCloud Sync between devices running iOS & iPadOS 13 beta and devices running iOS 12.
BindableObject is replaced by the ObservableObject protocol from the Combine framework. (50800624)You can manually conform to ObservableObject by defining an objectWillChangepublisher that emits before the object changes. However, by default, ObservableObjectautomatically synthesizes objectWillChange and emits before any @Publishedproperties change.// RoomStore.swift
import Foundation
class RoomStore: ObservableObject {
@Published var rooms: [Room] = []
}
struct Room: Identifiable {
var id: UUID
var name: String
var capacity: Int
var hasVideo: Bool
}
// ContentView.swift
import SwiftUI
struct ContentView: View {
@ObservedObject var store: RoomStore
var body: some View {
NavigationView {
List(store.rooms) { room in
RoomCell(room: room)
}
.navigationBarTitle("Rooms")
}
}
}
@ObjectBinding is replaced by @ObservedObject.
The Identifiable protocol is now part of the Swift standard library. As a result, your model files no longer need to import the SwiftUI framework. (SE-0261)
The BindableObject protocol’s requirement is now willChange instead of didChange, and should now be sent before the object changes rather than after it changes. This change allows for improved coalescing of change notifications. (51580731)
Added an initializer for creating a Font from a CTFont. (51849885)
You can style a NavigationView using two new style properties: StackNavigationViewStyle and DoubleColumnNavigationViewStyle. By default, navigation views on iPhone and Apple TV visually reflect a navigation stack, while on iPad and Mac, a split-view styled navigation view displays. (51636729)When using the DoubleColumnNavigationViewStyle style, you can provide two views when creating a navigation view — the first is the master and the second is the detail. For example:NavigationView {
MyMasterView()
MyDetailView()
}
.navigationViewStyle(DoubleColumnNavigationViewStyle())
Known Issues
Apps containing SwiftUI inside a Swift package might not run on versions of iOS earlier than iOS 13. (53706729)Workaround: When back-deploying to an OS which doesn’t contain the SwiftUI framework, add the -weak_framework SwiftUI flag to the Other Linker Flags setting in the Build Settings tab. See Frameworks and Weak Linking for more information on weak linking a framework. This workaround doesn’t apply when using dynamically linked Swift packages which import SwiftUI.
Deprecations
SwiftUI APIs deprecated in previous versions of iOS 13 beta have been removed. (53310683)
The SelectionManager protocol is removed, use Optional and Set instances directly for selection. (51557694)
The isPresented environment value is deprecated and replaced with the more general presentationMode value. (51641238)
The StaticMember protocol is deprecated. Use protocol-conforming types directly instead. For example, use an instance of WheelPickerStyle directly rather than the wheel static member.(52911961)
SwiftUI APIs deprecated in previous betas are now removed. (52587863)
The identified(by:) method on the Collection protocol is deprecated in favor of dedicated init(_:id:selection:rowContent:) and init(_:id:content:)initializers. (52976883, 52029393)The retroactive conformance of Int to the Identifiable protocol is removed. Change any code that relies on this conformance to pass \.self to the id parameter of the relevant initializer. Constant ranges of Int continue to be accepted:List(0..<5) {
Text("Rooms")
}
However, you shouldn’t pass a range that changes at runtime. If you use a variable that changes at runtime to define the range, the list displays views according to the initial range and ignores any subsequent updates to the range.
Several extensions to the Binding structure are removed. (51624798)If you have code such as the following:struct LandmarkList: View {
var landmark: [Landmark]
@Binding var favorites: Set<Landmark>
var body: some View {
List(landmarks) { landmark in
Toggle(landmark.name, isOn: self.$favorites.contains(landmarkID))
}
}
}
Define the following subscript on the Set structure:extension Set {
subscript(member: Element) -> Bool {
get { contains(member) }
set {
if newValue {
insert(member)
} else {
remove(member)
}
}
}
}
Then, change self.$favorites.contains(landmarkID) to self.$favorites[landmarkID].
The Binding structure’s conditional conformance to the Collection protocol is removed. (51624798)If you have code such as the following:struct LandmarkList: View {
@Binding var landmark: [Landmark]
var body: some View {
List(landmarks) { landmark in
Toggle(landmark.value.name, isOn: landmark[\.isFavorite])
}
}
}
Define the following collection type:struct IndexedCollection<Base: RandomAccessCollection>: RandomAccessCollection {
typealias Index = Base.Index
typealias Element = (index: Index, element: Base.Element)
let base: Base
var startIndex: Index { base.startIndex }
var endIndex: Index { base.startIndex }
func index(after i: Index) -> Index {
base.index(after: i)
}
func index(before i: Index) -> Index {
base.index(before: i)
}
func index(_ i: Index, offsetBy distance: Int) -> Index {
base.index(i, offsetBy: distance)
}
subscript(position: Index) -> Element {
(index: position, element: base[position])
}
}
extension RandomAccessCollection {
func indexed() -> IndexedCollection<Self> {
IndexedCollection(base: self)
}
}
Then, update your code to:struct LandmarkList: View {
@Binding var landmarks: [Landmark]
var body: some View {
List(landmarks.indexed(), id: \.1.id) { (index, landmark) in
Toggle(landmark.name, isOn: self.$landmarks[index].isFavorite)
}
}
}
You might be unable to stream to a Chromecast device. (51334673)
UIKit
New Features
The UITableViewCell class no longer changes the backgroundColor or isOpaqueproperties of the contentView and any of its subviews when cells become highlighted or selected. If you are setting an opaque backgroundColor on any subviews of the cell inside (and including) the contentView, the appearance when the cell becomes highlighted or selected might be affected. The simplest way to resolve any issues with your subviews is to ensure their backgroundColor is set to nil or clear, and their opaqueproperty is false. However, if needed you can override the setHighlighted(_:animated:) and setSelected(_:animated:) methods to manually change these properties on your subviews when moving to or from the highlighted and selected states. (13955336)
Since iOS 8, using UISearchController with UINavigationController has required setting the definesPresentationContext property of the top view controller to true. Failure to do so leads to subtle bugs that can be hard to detect and debug. Starting in iOS & iPadOS 13 beta, if a view controller’s navigationItem has a non-nilsearchController, when the view controller is shown in a navigation controller, UINavigationController automatically sets that view controller’s definesPresentationContext property to true. If you are targeting earlier versions of iOS, set this property before your search controller becomes active. (31338934)
If you implement self-sizing cells in a UITableView by overriding sizeThatFits(_:)without using Auto Layout, the height you return is interpreted as the desired height for the contentView of the cell, and UITableViewCell automatically adds any additional height needed to allow room for the cell separator. If you implement manual self-sizing this way, the cell’s contentView width is guaranteed to be accurate for you to use in manual layout calculations when sizeThatFits(_:) is called on the UITableViewCell. (39742612)
Trait environments, such as views and view controllers, now have their traitCollectionproperty populated with traits during initialization. These initial traits represent a prediction of the ultimate traits that the trait environment will receive when it gets added to the hierarchy. Because the traits that are populated during initialization are just a prediction, they might differ from the traits that are received once actually in the hierarchy. Therefore, when possible you should wait to perform work that uses the traitCollection until the view, or view controller’s view, has moved into the hierarchy — meaning window returns a non-nil value — so that you don’t have to throw away any work done using the predicted traits if the actual traits are different. The best time to use the traitCollection is during layout, such as inside layoutSubviews(), viewWillLayoutSubviews(), or viewDidLayoutSubviews().
The traitCollectionDidChange(_:) method is only called when the value of a trait changes. Importantly, because the trait collection is now initialized to a prediction of the ultimate traits in the destination hierarchy, when the initial predicted traits match the ultimate traits in the hierarchy, traitCollectionDidChange(_:) will not be called when the trait environment is added to the hierarchy. Because traitCollectionDidChange(_:) is intended to be an invalidation callback to notify you that one or more traits changed, audit your existing implementations of this method, as well as the UIContentContainer method willTransition(to:with:), for places where you might have been relying on it to trigger initial setup. The best place to lazily perform work that uses the traitCollection is inside one of the layoutSubviews methods discussed above, but remember that these layout methods are called any time layout occurs so be sure to avoid repeating work when you don’t need to. (46818941)
You can now enable debug logging to easily see when traitCollectionDidChange(_:) or willTransition(to:with:) is called on your own classes. Turn on the logging by using the following launch argument: -UITraitCollectionChangeLoggingEnabled YES. You might want to temporarily disable the Main Thread Checker while using this launch argument and running your app from Xcode to avoid extra log messages for unrelated classes. (47858564)
The UITableViewCell class’s contentView property is always laid out edge-to-edge with adjacent accessories, both on the leading and the trailing side. This streamlines the layout code so developers who want the correct default offset no longer have to align their content with the content view border or the layout margin depending on whether there is an accessory on the trailing side or not. You should now always lay out their code on the layout margins of the cell’s content view to get the default system insets. These insets will be adjusted automatically based on the accessories visible in the cell to match the system’s default spacing. (48214114)
You can now invoke a custom initializer from a creation block that’s passed through instantiateInitialViewController(creator:) or instantiateViewController(identifier:creator:). This makes it possible for you to initialize view controllers with additional context and arguments, while taking advantage of defining them in a storyboard through Interface Builder. A custom controller initializer must call its super.init(coder:) method and pass the coder argument that it receives through the creation block. (48313869)
Known Issues
Specifying UIWindowScene.DestructionRequestOptions in Swift is currently unavailable. (51036709)
Voice Analytics
Known Issues
Voice Analytics is currently available only when using server based speech recognition. (53604093)
Watch
Known Issues
Complications might disappear from Apple Watch after updating to iOS 13 beta if your watch isn’t running watchOS 6 beta. (50507942)
Xcode
New Features
CAMetalLayer is now available in Simulator. (45101325)