How to Manage Catalina’s New Application Notifications with a Profile

MrMacintosh.com - How to Manage Catalina's New Application Notifications with a Config Profile
How to Manage Catalina’s New Application Notifications with a Profile

This article will show you how to Manage Catalina’s New Application Notification Preferences with a Config Profile.

Now that Catalina is live, MacAdmins have many questions. The top 3 questions I have seen so far are;

  • 1. How do I block macOS Catalina from my users?
  • 2. How do I Manage macOS Catalina Application Notifications?
  • 3. What are the new Screen Recording and Input Monitoring or Keystroke Receiving TCC Settings? (more on that in a new article.)

Catalina Application Notifications Index

  • 1. Should I manage Application Notifications?
  • 2. How do I reset or clear out previous Notification Settings?
  • 3. How can I test the Notifications Profile?
  • 4. Find Previous Bundle ID or App Domains from past Prompts
  • 5. Manage Notifications with a Profile.
  • 6. Notifications Profile with Profile Creator.
  • 7. Notifications Profile with Manage App Notifications.bash
  • 8. Credits

1. Should I manage Application Notifications?

This is a question you should ask yourself. Keep in mind, once you mange a profile setting it can not be changed by the user. Managing certain application notifications from Jamf Self Service is one example. You WANT the user to be able to see the notifications that it sends out. The user may miss something important, if they previously clicked DENY. For other applications, you might want to leave Notification decisions to the user.

2. How do I reset or clear out previous Notification Settings?

How do you reset Catalina’s Application Notifications if you clicked Allow or Deny already?

The settings are stored in a plist in the users /Library/Preferences folder.

com.apple.ncprefs.plist

To reset all Notification Alerts, you can delete the plist and then restart. Once you get back to the desktop all your notifications will start popping up again.

3. How can I test the Notifications Profile?

After you create the profile and install it, any open notifications will immediately disappear! The best way to test your new profile is to delete ncprefs.plist, then restart. Then you can leave any open notifications up on your desktop. Install the profile , then all the notifications that you manage should disappear.

4. Find Previous Bundle ID or Application Domains from past Prompts

If you want to see previous prompts that you have already answered try this command.

sqlite3 "$(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/db2/db" "select * from app;"

4. Manage Notifications with a Profile.

The easiest way to manage Notification is with a Configuration Profile.

NOTE: If you use Jamf Pro, Notifications is not an option yet in 10.15.1.

I will show you two ways to create a Notifications Profile.

5. Notifications Profile with Profile Creator.

Creating Profiles is easy with Profile Creator! The version that we will be using is v0.3.2 which has Catalina Options built right in. After installing you will see the welcome screen.

MrMacintosh.com - Profile Creator's Welcome Screen.
Profile Creator’s Welcome Screen.

You can start by filling out the General Settings. Set the Name of the profile, Description, Company Name and Payload Scope. For the Payload Scope select System if you want the settings to be for all users. You can add Prevent users from removing this profile (Supervised)

MrMacintosh.com - Profile Creator's General Settings.
Profile Creator’s General Settings.

Once you have the General Settings set you can add a new profile payload. Scroll down on the left hand side until you see macOS. You will then see Notifications.

MrMacintosh.com - Profile Creator's Notifications Payload.
Profile Creator Notifications Payload.

To start you will need to add the Notifications Payload Key. Click the + button on the left hand side of Notification Settings.

MrMacintosh.com - Profile Creator's Notifications Payload Settings.
Profile Creator’s Notifications Payload Settings.

Now that Notifications Settings is active you can add new keys. Click the + button to add a new Key.

MrMacintosh.com - Profile Creator's Notifications Key
Profile Creator’s Notifications Key

Now you can view the different settings you can set.

  • 1. Enable Notifications
  • 2. Bundle Identifier for the target app
  • 3. Show app in Notifications Center
  • 4. Show Notifications at the Lock Screen
  • 5. Notification Sounds Allowed
  • 6. Allow Badges
  • 7. Alert Type – None, Banners, Alerts
  • 8. Enable Critical – If the banner can pass through DND

The option that you will need to find is the Application Bundle Identifier. An example would be Microsoft Outlook. The Bundle ID for Outlook is com.microsoft.outlook. How do you find the Bundle ID ?

You can find many ways to find the Application Bundle ID. I will show you 3 different ways to do this. One of the best ways is to look directly at the application info.plist. Run the following all on one line. Let’s check to see what Safari’s Bundle ID is.

1. PlistBuddy

/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Safari.app/Contents/Info.plist

com.apple.Safari

2. lsappinfo

lsappinfo info -only bundleid Google\ Chrome

"CFBundleIdentifier"="com.google.Chrome"

3. mdls

mdls -name kMDItemCFBundleIdentifier -r /Applications/Remote\ Desktop.app

com.apple.RemoteDesktop

Now that you have the Bundle ID, plug it into the 2nd box in the key options.

MrMacintosh.com - Profile Creator's Notifications Key Application Bundle ID
Profile Creator’s Notifications Key Application Bundle ID

You can now add as many keys as you want!

MrMacintosh.com - Profile Creator's Notifications 2nd Key Application Bundle ID
Profile Creator’s Notifications 2nd Key Application Bundle ID

Once you have finished adding all the Bundle ID’s you are ready to Add this payload to the main Profile and save it. Click the Add Button in the upper right hand corner.

MrMacintosh.com - Profile Creator's Notifications Add NotificationsSettings to the main Profile.
Profile Creator’s Notifications Add NotificationsSettings to the main Profile.

You should now see this in the upper left hand corner.

MrMacintosh.com - Profile ready to save.
Profile ready to save!

Now click on the upload button on the right hand side of the + button to save your new profile.

MrMacintosh.com - Profile Creator's Save Menu
Profile Creator’s Save Menu

This is the save menu. Check over the settings to verify everything is correct.

NOTE: Just as the note says at the bottom. If you use Jamf Pro you need to Sign the profile with your Apple Developer ID. If you use any other MDM you do not have to do this.

You will now have a file called 10.15 Notifications.mobileconfig

You can now upload it to your MDM Server.

After installing the profile you can go into system preferences > Profiles and view the new profile. It will look something like this.

MrMacintosh.com - Notification Profile Settings.
Notifications Profile Settings.

You can then scroll down to verify all the macOS Catalina Application Notifications settings.

6. Notifications Profile with Manage App Notifications.bash

William Smith aka (talkingmoose) just wrote an amazing bash script that will generate a Notifications.mobileconfig

You can find the script on William’s Github

All you have to do is run the script. You will be prompted at each step.

  • Drag and drop the app into Terminal (will auto fill the bundle ID info!)
  • Allow Notifications
  • Show Notifications on the Lock Screen
  • Show In Notification Center
  • Badge App Icon
  • Play Sound
  • Critical Alerts (Past DND)
  • Upload to Jamf Pro or Save to Desktop
  • Would you like to View the Profile.

The only limiting part of this script is that you can only set one application per profile. William has mentioned that he might look into adding the ability to add multiple application notification settings into one profile. If you would like this, please send him this feedback!

7. Credits

A big Thank You goes out to the following MacAdmins.

  • @stevemasser – For finding the Notifications Preference plist Location.
  • @roberthammen & @emily for Confirming that current notifications will disappear immediately when the profile is installed.
  • @eholtam for finding the neat sqlite3 trick for showing previously answered notifications.

If you have any questions or comments on macOS Catalina Application Notifications, please don’t hesitate to Contact Me!

macOS Catalina 10.15.0 (19A583) Released! What’s New?

MrMacintosh.com - macOS Catalina 10.15.0 (19A583) Released! What's New?
macOS Catalina 10.15.0 (19A583) Released! What’s New?

macOS Catalina 10.15.0 (19A583) is LIVE!

The release of macOS Catalina came today and was unexpected for sure. Most MacAdmins felt that we would at least get a 2nd GM Seed to work with.

apple.com/macos/catalina

Whether we like or not, Catalina is here!!!

GM Seed (19A582a) and the 10.15.0 (19A583) Release Notes are the same.

I double checked the release notes for 10.15.0 and compared them against Beta 11 GM Seed and did not find any differences.

How to Block macOS Catalina 10.15.0

MacAdmins Community Notes Document –

https://docs.google.com/document/d/12llwkGUGqmCAVs40TvigIFyEYVTASpqe5beCjxnEkYA/edit?usp=sharing

macOS Catalina 10.15.0 Security Content

support.apple.com/en-gb/HT210634

Apple Catalina News Release

developer.apple.com/news/releases/?id=10072019a

Apple’s Public Developer Documentation

developer.apple.com/documentation/macos_release_notes

Previous 10.15 Beta Releases

  • macOS Catalina 10.15.0 (19A583) – 10/07/19 – Prod Release
  • 11th Catalina 10.15 GM Seed (19A582a) – 10/03/19 – Release Notes
  • 10th Catalina 10.15 Beta 10 (19A578c) – 09/30/19 – Release Notes
  • 9th Catalina 10.15 Beta 9 (19A573a) – 09/23/19 – Release Notes
  • 8th Catalina 10.15 Beta 8 (19A558d) – 09/10/19 – Release Notes
  • 7th Catalina 10.15 Beta 7 (19A546d) – 08/28/19 – Release Notes
  • 6th Catalina 10.15 Beta 6 (19A536g) – 08/19/19 – Release Notes
  • 5th Catalina 10.15 Beta 5 (19A526h) – 07/31/19 – Release Notes
  • 4th Catalina 10.15 Beta 4 (19A512f) – 07/17/19 – Release Notes
  • 3rd Catalina 10.15 Beta 3 (19A501i) – 07/02/19 – Release Notes
  • 2nd Catalina 10.15 Beta 2 (19A487l) – 06/17/19 – Release Notes
  • 1st Catalina 10.15 Beta 1 (19A471t) – 06/03/19 – Release Notes

How to Download macOS 10.15 Catalina

Direct from Apple

From Apple via open source tools.

New features available with macOS Catalina. – 119 New Changes & Updates.

Music

Designed for Apple Music1

Stream and download more than 50 million songs ad-free. Every time you open the app, you’ll get the best of Apple Music personalized to your tastes with For You.

Music Store

For users who still like to own their music, the iTunes Store is just a click away.

Now Playing

The new Music app includes an updated player. Easily see lyrics while you’re listening and control the music that will play next with just a click. Or switch to MiniPlayer to listen while multitasking.

Library

All your music organized in one place. See artists, albums, songs, playlists, and recent additions with a familiar menu in the new sidebar. And now, type what you’re looking for in the updated library pages to quickly find the exact song in your music collection.

TV

Library

Easily find all your purchased movies and shows in the updated Library tab. Browse by recently added, downloaded, genres, and more.

Movies and TV

Buy or rent new-release movies or explore the catalog of more than 100,000 movies and shows — including the largest catalog of 4K HDR titles.2

Apple TV channels3

Try new Apple TV channels, including HBO, Showtime, Starz, and more. Subscribe and share with up to six family members. Channels play in the Apple TV app ad-free, online or off — no additional apps, accounts, or passwords needed. Try them free and cancel anytime.

Home for Apple TV+

Apple’s new premium streaming service brings you a wide range of exclusive original shows and films from the world’s greatest talent. Apple TV+ will be available in the Apple TV app this fall.

Watch Now

Watch Now is your home in the Apple TV app. Find expertly curated collections and personalized recommendations picked just for you.

Up Next

Watch Now includes Up Next, which helps you quickly find and watch your favorites. It also lets you resume what you’re watching from the moment you left off, across all your devices.

Kids

A new dedicated Kids section helps you discover great, editorially handpicked shows and movies for kids of all ages.

Apple TV app everywhere

You can pick up where you left off on Apple TV, iPad, iPhone, select smart TVs, and now Mac.

Dolby Atmos

Enjoy a thrilling surround sound experience with Dolby Atmos, Dolby Digital, or Dolby Digital Plus soundtracks in the Apple TV app using the built-in speakers on certain Mac models.4

Podcasts

Listen Now

Continue listening to your favorite podcast episodes or see when a new one is available. Or find other shows you might like based on the ones you’re already listening to.

Library

The Apple Podcasts library is the one place for all the shows you’ve subscribed to or added — organized by show title or episode title. Download your favorite episodes to listen offline.

Browse

With over 700,000 shows in the catalog, our editors pick the best shows for you to browse each week. Try a show from New & Noteworthy or check out which shows are trending in Top Charts.

Search

Search provides better results when you’re searching for a topic or people — even find episodes featuring a specific guest or host.

Syncing

Media syncing

All three services — Apple TV, Apple Music, and Apple Podcasts — sync your content through the cloud across your devices. Or sync it from each of the apps if you prefer using a cable.

Back up, update, and restore through the Finder

Each time you connect a device, you can find it in the Finder sidebar. From there you can back up, update, and restore your device.

Photos

All-new Photos tab

A beautiful new browsing experience showcases your photos and memories.

Day, month, and year organization

Photos is organized by day, month, and year views so it’s easy to find photos or relive your memories. Animations and transitions keep your spot in the timeline so you can switch between views without losing your place.

Large photo previews

Photo previews are larger to help you distinguish between shots. Photos uses intelligence to find the best part of your photo in previews, so you see the full, unedited version when you open the photo.

Auto-playing Live Photos and videos

Live Photos and videos begin playing as you scroll, bringing your library to life.

Personalization

Using machine learning on your Mac, Photos can understand who’s in your photos and what’s happening to highlight important moments like birthdays, anniversaries, and trips.

Your best shots

Photos intelligently showcases the best shots in your library, removing duplicates and clutter.

All Photos

The All Photos view displays all your photos and videos in a grid. Choose to zoom in for large previews, or zoom out to get an overview of your entire collection. You can also choose to view your photos and videos in square or original format.

Memory movies

Now you can view Memory movies on your Mac and edit the duration, mood, and title. Edits sync to your other devices when you use iCloud Photos.

Notes

Gallery view

The all-new gallery view displays your notes as visual thumbnails, making it easier than ever to quickly find the note you’re looking for.

Shared folders

Collaborate on entire folders, including all the notes and subfolders inside. Invite others to a folder, and everyone can add notes, attachments, or subfolders.

View-only collaboration

You can now share notes or entire folders as view-only so that you’re the only one who can make changes.

More powerful search

Search can now recognize objects or scenes within the images you’ve added to your notes and can help you find specific text in the items you’ve scanned using the built-in document scanner. Search is also helpful before you type, with suggested searches that you can simply click to view.

New checklist options

Quickly reorder checklist items using drag and drop or keyboard shortcuts, and move checked items to the bottom and out of the way. If you’ve completed the checklist and want to use it again, you can click to uncheck all the items and start over.

Reminders

All-new design

The Reminders app has been completely rebuilt with an all-new user interface and more powerful features, making it easier than ever to create, organize, and keep track of reminders.

New edit buttons

Quickly add dates, times, locations, or flags to reminders using the new edit buttons, all without having to go to another view.

Enhanced Siri intelligence

You can type longer, more descriptive sentences and Reminders understands and provides relevant suggestions. Siri intelligence on your device can also help anticipate your needs by suggesting that you create a reminder while you make plans in Messages.

Attachments

Add attachments to your reminders to make them more informative and useful. You can add photos, scanned documents, or even web links that take you directly to a website related to the reminder.

Tasks and grouped lists

There are more options for organizing your reminders. You can capture tasks associated with a top-level reminder. You can also group multiple lists.

Smart lists

All-new smart lists automatically organize your upcoming reminders into easy-to-find categories like Today, Flagged, Scheduled, or All to see them in a single list.

Customize list appearance

Customize the appearance of your personal or shared iCloud lists, choosing from 12 beautiful colors and 60 expressive symbols.

Messages integration

Tag someone in a reminder and the next time you’re chatting with the person in Messages, you’ll be reminded that now might be a good time to talk.

Safari

Updated start page

An updated start page design includes favorites, frequently visited, and Siri suggestions that surface relevant websites in your browsing history, recently visited sites, bookmarks, reading list, iCloud Tabs, and links you receive in Messages.

Weak password warnings

When you sign in to an account in Safari with a weak, easy-to-guess password, Safari warns you and helps you replace it with a stronger one.

PiP from the tab audio button

Quickly enable Picture in Picture from the tab audio button.

Switch to open tab from the Smart Search field

If you start typing the address of a website that’s already open, Safari directs you to the open tab.

Mail

Block sender

Mail can block all email from specified senders and move their messages directly to the trash. Just as in Messages, you can access this feature by clicking the sender’s name in any email header.

Unsubscribe

An unsubscribe link for email messages from commercial lists now appears above the email header. Clicking Unsubscribe requests removal of your email address from the list.

Mute Thread

Mute Thread prevents notifications from an overly active email thread.

Updated classic layout

Arranges the Mail viewer in a column layout, with an option to preview the current message below or to the right of your message list.

Sidecar5

Extended desktop

Use your iPad as a second display for additional screen space. Refer to one app while you work in another, or see how a presentation looks in presentation mode on your iPad while editing it on your Mac.

View the Sidecar White Paper (PDF)

Mirrored desktop

Mirror the screen on your Mac to have two screens displaying the same content, making it perfect for sharing with others.

Wired or wireless

Connect your iPad to your Mac using a cable to keep it charged, or use it wirelessly — within 10 meters — for greater mobility.

Apple Pencil

Use the precision and intuitiveness of Apple Pencil with your favorite creative Mac apps that support drawing tablets. Draw and write naturally, edit a photo or graphic, and use it to point and click as you do with a mouse.

Gestures

Use the same Multi-Touch gestures you’re familiar with on iPad, along with all-new text editing gestures that let you cut, copy, paste, and undo without lifting your hands from the onscreen keyboard.

Sidebar

Get easy access to your most commonly used controls from the sidebar. Use modifier keys to enable shortcuts in pro apps, and access buttons that allow you to undo as well as display or hide the menu bar, Dock, and keyboard.

Touch Bar

For apps with Touch Bar support, the controls appear at the bottom of your iPad screen — even if your Mac doesn’t have a Touch Bar.

Developer support

Developers don’t need to do anything for Sidecar support — it just works. Apps with advanced stylus support can use Tablet Events in AppKit to enable pressure and tilt for Apple Pencil. Additionally, developers can specify custom behavior for double-tap on the side of Apple Pencil through a changeMode event.

Continuity Markup and Sketch

Continuity Markup

Write and sketch on PDFs or mark up your documents with Apple Pencil. See the updates live on your Mac as you mark them up on your iPad.

Continuity Sketch

Create a sketch on your iPad using Apple Pencil and easily insert it into any document on your Mac.

Screen Time

Usage reports

Screen Time creates usage reports that show you how much time is being spent on your Mac, which apps are used most, and how many notifications are received. With iCloud, Screen Time combines all your usage information and syncs Downtime settings and App Limits across iPhone, iPad, and Mac.

Downtime

With Screen Time, you can schedule downtime so you (or your child) can only use specific apps you’ve approved.

App Limits

With App Limits, you can set the amount of time you want to use your apps and websites. Set App Limits for total time, categories, or specific apps.

Combined Limits

Create combined limits with a combination of app categories, specific apps, or websites.

One More Minute

When a limit is met, you can tap “One more minute” to give you time to quickly save your work or wrap up a conversation.

Communication Limits*

Communication Limits let you control who your children can communicate with and who can communicate with them throughout the day and during downtime.

Managed contact list for children

Parents can use Screen Time to manage the contacts that appear on their children’s devices.

Family Sharing

Parents can configure Screen Time from any device — iPhone, iPad, or Mac — and have everything set up for their kids on all their devices.

Security

Enhanced Gatekeeper

Gatekeeper will ensure that all new apps you install — from the App Store or the internet — have been checked for known security issues by Apple before you run them the first time and periodically thereafter. This extends the protection from the app’s source to include automated checks for what’s in the app.

Data protections

macOS Catalina checks with you before allowing an app to access your data in your Documents, Desktop, and Downloads folders; iCloud Drive; the folders of third-party cloud storage providers; removable media; and external volumes. In addition, you’re asked before an app can perform key logging or capture a still or video recording of your screen.

Activation Lock

All Mac models with the Apple T2 Security Chip now support Activation Lock — just like your iPhone or iPad. So if your Mac is ever misplaced or lost, the only person who can erase and reactivate it is you.

Dedicated system volume

macOS Catalina runs in a dedicated, read-only system volume — which means it is completely separate from all other data and helps improve the reliability of macOS.

DriverKit and user space system extensions

Previously many hardware peripherals and sophisticated features needed to run their code directly within macOS using kernel extensions, or kexts. Now these programs run separately from the operating system, just like any other app, so they can’t affect macOS if something goes wrong.

Find My

Two great apps in one

Find My iPhone and Find My Friends are now combined in a single, easy-to-use app to help you locate the people and devices that are important to you.

Find offline devices

Locate a missing device even if it’s not connected to Wi-Fi using crowd-sourced location. When you mark your device as missing and another Apple user’s device is nearby, it can detect your device’s Bluetooth signal and report its location to you. It’s completely anonymous and encrypted end-to-end, so everyone’s privacy is protected.

Enhanced location notifications

Location notifications include the ability to schedule notifications for different days of the week, more useful place names, and enhanced privacy controls.

Approve with Apple Watch

View passwords

Anywhere you need to type your Mac password, such as viewing passwords in Safari preferences, you can now double-click the side button on your Apple Watch to authenticate on your Mac.

Approving app installations

Unlock a locked note, approve app installations, unlock settings in System Preferences, and modify root files, all with your Apple Watch.

Accessibility

Voice Control

Voice Control is a new way to fully control your Mac, iOS, and iPadOS devices entirely with your voice.

View the Accessibility White Paper (PDF)

Accurate dictation

Voice Control improves on the existing Enhanced Dictation feature using the Siri speech recognition engine, so you get the latest advances in machine learning for audio-to-text transcription.

Add custom words

Whether you’re writing a biology report, filling out a legal document, or emailing about a favorite topic, you can add custom words to ensure that Voice Control recognizes the words you commonly use.

On-device processing

All audio processing for Voice Control happens on your device, ensuring that your personal data is kept private.

Rich text editing

Thanks to rich text editing commands, you don’t have to rehearse before you speak. Making corrections is quick and easy. You can replace phrases by name. Try saying “Replace I’m almost there with I just arrived.” Fine-grained selection also makes it simple to select text. Try saying “Move up two lines. Select previous word. Capitalize that.”

Word and emoji suggestions

If you need to correct a word, there’s a new interface just for that. Simply ask to correct a word, and you’ll be presented with a list of suggested replacements.

Seamless transitions from dictation to commands

Voice Control understands contextual cues, so you can seamlessly transition between text dictation and commands. For example, say “Happy Birthday. Tap send.” in Messages, and Voice Control sends “Happy Birthday” — just as you intended. You can also say “delete that”, and Voice Control knows to delete what you just typed.

Comprehensive app navigation

You can rely entirely on your voice to navigate an app. Comprehensive navigation is provided by navigation commands, names of accessibility labels, numbers, and grids.

Navigation commands

Navigation commands give you quick ways to interact with macOS and apps. You can open apps, search the web, open Spotlight, and more.

Names

You can easily navigate by telling Voice Control to select the name of an accessibility label for buttons, links, and more.

Numbers

Say “show numbers” to see numbers appear next to all clickable items onscreen. Use this to quickly navigate complex or unfamiliar apps. Numbers automatically appear in menus and whenever you need to disambiguate between items with the same name. Just say a number to click it.

Grids

If you ever need to touch a part of the screen that doesn’t have a control, use Grid overlays. Saying “show grid” superimposes a grid on your screen and allows you to precisely do things, like select, zoom, drag, and more.

Hover Text

Hover Text displays high-resolution zoom of text, text fields, menu items, buttons, and more in a dedicated window. Just press the Control key when hovering over text with your cursor, and a window with zoomed text appears alongside the standard interface — helping you stay contextually aware. Text is crisply displayed in a font and color of your choice. And you can interact with buttons and type right in the zoomed window.

Zoom Display

While using a second display, you can see the same screen up close and at a distance simultaneously. You can keep one monitor zoomed in and another at a standard resolution. Or keep a personal Mac zoomed in while giving a presentation.

Simplified tab navigation

VoiceOver users will enjoy simplified keyboard navigation that requires less drilling into unique focus groups. The Tab key more simply advances through selection of elements — such as window stoplights, toolbar buttons, and scroll bars.

Punctuation in iCloud

VoiceOver users often customize the way punctuation marks are spoken. These customizations are now stored in iCloud, giving you a consistent experience across macOS, iOS, and iPadOS.

Additional international braille tables

macOS Catalina adds more international braille tables and lets you quickly switch between them.

Improved VoiceOver support in Xcode

VoiceOver now reads aloud warnings, line numbers, and breakpoints in the Xcode text editor.

Display color filters

Users with color vision deficiencies can adjust display colors using new color filter options. Your Mac shifts the colors onscreen, helping you easily differentiate areas of confusion. And you can turn this preference on and off through the Accessibility Options pane using Command-Option-F5.

Tint your entire display

A new display option lets you tint your entire screen using a color of your choice. Some users may find that certain color tints help make text easier to read.

Apple ID Account Information

One place for your Apple ID account details

Now you can access all your important Apple ID account information right from System Preferences on your Mac.

Overview and helpful notifications

A new overview pane allows you to quickly review important tips and notifications to help ensure that your account is properly signed in and secure, and that all the features you expect are set up and working correctly.

Basic account and security details

Easily review account details such as your name, contact info, password, security details, payment and shipping info, and email newsletter preferences.

iCloud settings

Review and update your iCloud settings and manage or upgrade your storage plan anytime.

Media and purchases

Get easy access to your current subscriptions, past purchases, and account settings related to the App Store, iTunes Store, Apple Music, Apple Books, Apple News, Apple TV, and more.

Family Sharing

View which subscriptions you’re sharing, which services are enabled, who has Ask to Buy turned on, and more.

View all your devices

View a list of all the devices you’re signed in to with your account. Review device details such as last backup completed, Find My status, and more.

QuickTime Player

Picture in Picture (PiP)

With a single click in the navigation controller, you can play video in a resizable window that isn’t blocked by other windows, allowing you to watch while working on other things.

Enhanced Movie Inspector

The Movie Inspector pane shows you even more in-depth technical information about the currently open media file. See key details such as video color space, HDR format, bit depth, scale, and aspect ratio.

Open Image Sequence

Create an H.264, HEVC, or ProRes-encoded movie file by navigating to a folder of sequentially numbered images, then choosing your desired resolution, frame rate, and encoding quality.

Timecode support

When QuickTime Player opens a media file with embedded timecode, it shows the time information in the onscreen navigation controller.

Transparent video support

Transparency in ProRes 4444 files can optionally be preserved when exporting to the HEVC format.

Home

HomeKit Secure Video

With a home hub such as an Apple TV or HomePod, securely record video to iCloud when activity by a person, animal, or vehicle is detected by your HomeKit-enabled cameras. Choose to receive notifications when clips are recorded and view them in the Home app on your Mac. In the Home app, a timeline of recordings is available to play from iCloud. You can also share a recording, delete it, or save it to your Photos library.

Audio in scenes and automations

HomePod and AirPlay 2–enabled speakers can now play songs, playlists, and radio stations from Apple Music in scenes and automations with your other HomeKit accessories.

International Features

New multilingual setup for macOS

Choose your languages, including those for keyboard and dictation, in Setup Assistant, and customize your language preferences from the start.

New relationship labels in Contacts

Contacts now includes hundreds of new, more specific relationship labels to help you manage your contact list. Examples include “younger cousin” and “elder cousin.”

Cantonese keyboard predictions

The new Cantonese predictions for Traditional Chinese Cangjie, Sucheng, Stroke, and Handwriting keyboards bring more relevant character and emoji predictions to Cantonese users.

Improved Japanese predictions

A new neural language model takes words typed earlier in the sentence into account, so predictions are more grammatically consistent and relevant to the subject matter.

New fonts for Indian languages

Get 34 new fonts, including four system fonts and 30 document fonts, for languages like Gujarati, Hindi, Kannada, Odia, Punjabi, and many more.

New Indian English Siri voices

All-new Indian English male and female Siri voices allow Siri to be more natural and expressive.

New dictionaries

New dictionaries include Thai-English and Vietnamese-English.

Other Features

iCloud Drive folder sharing*

You can now share folders with a private link. Anyone who has access can see the folder in iCloud Drive, add new files, and get the latest versions of files.

Restore from snapshot

If your third-party software is incompatible with an update you just installed, use macOS Recovery to restore from a snapshot of your computer taken right before the installation. macOS and all your apps will work just as they did before you installed the update.

What’s New in macOS Catalina 10.15 GM Seed #1 Beta 11 (19A582a)

MrMacintosh.com - What's New in macOS Catalina 10.15 GM Seed #1 Beta 11 (19A582a)
What’s New in macOS Catalina 10.15 GM Seed #1 Beta 11 (19A582a)

UPDATE: 10/9/19 – macOS 10.15.0 is LIVE, What’s New?mrmacintosh.com/macos-catalina-10-15-0-19a583

Today Apple released macOS Catalina 10.15 GM Seed #1 Beta 11 (19A582a)

Catalina 10.15 GM Seed #1 is here! GM stands for Gold Master, this term is from way back when CD and DVD media was still a thing. The GM build was the final production version of the OS burned to CD or DVD. Now that Catalina GM Build is live, we should be very close to the public release of 10.15.

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 10 and the new Catalina 10.15 GM Seed #1 (19A582a) release notes to find all the changes. When Apple releases the next Beta patch notes, the previous patch notes are overwritten and taken down.

10.15 GM Seed #1 or Beta 11 ?

NOTE: I am calling this GM Seed #1 because it’s my bet that we will see a GM Seed #2. The evidence is that Apple is still calling this release.

Install macOS Catalina Beta.app

I don’t know for sure though. Apple could just release the current build and change the name!!!

I for one really hope this is the case, as we still have some things that need to be addressed before launch.

Summary of GM Seed #1 Patch Notes

  • 1 New Features
  • 1 New Resolved issues
  • 0 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 week or two 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 Octobers’s release date. If you wait it could be months before the fix is put into a dot release combo update.

Apple’s Public Developer Documentation

developer.apple.com/documentation/macos_release_notes

Previous 10.15 Beta Releases

  • 11th Catalina 10.15 GM Seed (19A582a) – 10/03/19 – Current
  • 10th Catalina 10.15 Beta 10 (19A578c) – 09/30/19 – Release Notes
  • 9th Catalina 10.15 Beta 9 (19A573a) – 09/23/19 – Release Notes
  • 8th Catalina 10.15 Beta 8 (19A558d) – 09/10/19 – Release Notes
  • 7th Catalina 10.15 Beta 7 (19A546d) – 08/28/19 – Release Notes
  • 6th Catalina 10.15 Beta 6 (19A536g) – 08/19/19 – Release Notes
  • 5th Catalina 10.15 Beta 5 (19A526h) – 07/31/19 – Release Notes
  • 4th Catalina 10.15 Beta 4 (19A512f) – 07/17/19 – Release Notes
  • 3rd Catalina 10.15 Beta 3 (19A501i) – 07/02/19 – Release Notes
  • 2nd Catalina 10.15 Beta 2 (19A487l) – 06/17/19 – Release Notes
  • 1st Catalina 10.15 Beta 1 (19A471t) – 06/03/19 – Release Notes

How to Download macOS 10.15 Catalina Beta

AppleSeed Patch Notes & Some Fixes not listed?

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 GM Seed #1

REMOVED!!! – Installing third party kernel extensions now requires that you restart your Mac before they’re permitted to load. (50340461)

New Resolved Issues in GM Seed #1

Privacy – Fixed an issue where turning on Curtain Mode prevented you from being able to control a remote Mac. (52900397)

New Known Issues in GM Seed #1

None

New Deprecations in GM Seed #1

None

What’s New in macOS Catalina 10.15 Beta 10 (19A578c)

MrMacintosh.com - Today Apple released macOS Catalina 10.15 Beta 10 (19A578c) to Developers, What's New?
Today Apple released macOS Catalina 10.15 Beta 10 (19A578c) to Developers.

UPDATE: 10/03/19Catalina 10.15 GM Seed #1 is now live! What’s New ?mrmacintosh.com/whats-new-in-macos-catalina-10-15-gm-seed-1-beta-11-19a582a/

Today Apple released macOS Catalina 10.15 Beta 10 (19A578c) 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 9 and the new Catalina 10.15 Beta 10 (19A578c) 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 10 Patch Notes

Nothing! Apple has not documented any changes in the Public Developer Release Notes between Beta 9 and Beta 10.

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.

Link to Apple’s Public Developer Documentation

developer.apple.com/documentation/macos_release_notes

Previous 10.15 Beta Releases

  • 10th Catalina 10.15 Beta 10 (19A578c) – 9/30/19 – Current Release
  • 9th Catalina 10.15 Beta 9 (19A573a) – 09/23/19 – Release Notes
  • 8th Catalina 10.15 Beta 8 (19A558d) – 09/10/19 – Release Notes
  • 7th Catalina 10.15 Beta 7 (19A546d) – 08/28/19 – Release Notes
  • 6th Catalina 10.15 Beta 6 (19A536g) – 08/19/19 – Release Notes
  • 5th Catalina 10.15 Beta 5 (19A526h) – 07/31/19 – Release Notes
  • 4th Catalina 10.15 Beta 4 (19A512f) – 07/17/19 – Release Notes
  • 3rd Catalina 10.15 Beta 3 (19A501i) – 07/02/19 – Release Notes
  • 2nd Catalina 10.15 Beta 2 (19A487l) – 06/17/19 – Release Notes
  • 1st Catalina 10.15 Beta 1 (19A471t) – 06/03/19 – Release Notes

How to Download macOS 10.15 Catalina Beta

AppleSeed Patch Notes & Some Fixes not listed?

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 10

None

New Resolved Issues in Beta 10

None

New Known Issues in Beta 10

None

New Deprecations in Beta 10

None

macOS updates 9/26/19 – Mojave 10.14.6 #3 – 10.13 & 10.12 (2019-005)

MrMacintosh.com - macOS updates 9/26/19 – Mojave 10.14.6 Supplemental Update #3 – 10.13 & 10.12 (2019-005)
macOS updates 9/26/19 – Mojave 10.14.6 Supplemental Update #3 – 10.13 & 10.12 (2019-005)

Today Apple released macOS Mojave 10.14.6 Supplemental Update #3 and Security Updates 2019-005 for High Sierra 10.13 and Sierra 10.12. If Apple’s previous update release history is any guide, 2019-005 will be the final Security Update for Sierra. Once macOS 10.15 Catalina is released in October, Mojave will be security patched for two more years. High Sierra will be supported for one year and Sierra will be dropped.

10.14.6 Supplemental Update #3 ??? Wait.. What? Apple is calling it the 2nd Supplemental Update.

Not sure where Apple got out of order here, but this is the 10.14.6 Build Version release schedule.

  • 1. 10.14.6 Mojave First Release (18G84) – 7/22/19
  • 2. 10.14.6 Mojave Supplemental Update #1 (18G87) – 8/05/19
  • 3. 10.14.6 Mojave Supplemental Update #2 (18G95) – 8/26/19
  • 4. 10.14.6 Mojave Supplemental Update #3 (18G103) – 9/26/19

Which version of the 10.14.6 update does my Mac need?

Software Update will always point you to the right update.

  1. Any Build Version of 10.14.6 = Supplemental Update #3
  2. 10.14.0-10.14.4 = Combo Update
  3. 10.14.5 = Delta Update
  4. 10.8 – 10.14.6 Upgrade = Updated 10.14.6 (18G103) Full Installer.app

How do you keep track of all the macOS Build Versions?

I document all of all macOS versions along with most Apple Applications, XProtect, Gatekeeper and MRT updates in one database. You can check out the link below.

mrmacintosh.com/macos-system-status-version-info-for-macadmins/

MacOS Mojave 10.14.6 Supplemental Update #3 (18G103)

Information on new features and fixes included in the Mojave 10.14.6 Supplemental Update #3 (Note this was only listed as a security update)

Security information for macOS Mojave 10.14.6 Supplemental Update #3, High Sierra 10.13 2019-005 & Sierra 10.12 2019-005

Enterprise Content

  • None

Security Information

Foundation

Available for: macOS Sierra 10.12.6, macOS High Sierra 10.13.6, and macOS Mojave 10.14.6

Impact: A remote attacker may be able to cause unexpected application termination or arbitrary code execution

Description: An out-of-bounds read was addressed with improved input validation.

CVE-2019-8641: Samuel Groß and Natalie Silvanovich of Google Project Zero

Update Notes

  • None

High Sierra 10.13 – 2019-005 (17G8037)

Sierra 10.12 – 2019-005 (16G2136)

Safari 13.0.1 for High Sierra & Sierra

  • 10.13 – Safari13.0.1HighSierraAuto-13.0.1 (software update only)
  • 10.12 – Safari13.0.1SierraAuto-13.0.1 (software update only)

Full 10.14.6 Installer Safari Note!

The 10.14.6 Full installer (18G103) still includes the OLD version of Safari Version 12.1.2. HT to MacAdmins Slack User macbm.

Other New Updates Released

  • EDIT: HT @howardnoakley for pointing out that this is the same BridgeOS version that was released with the previous 10.14.6 Supplemental Update #2!
  • BridgeOS – BridgeOS Update 16.16.6571 Build Version 4

Previous Releases

macOS 10.14.6 (18G103) 2019-005

What’s New in macOS Catalina 10.15 Beta 9 (19A573a)

MrMacintosh.com - What's New in macOS Catalina 10.15 Beta 9 (19A573a)

UPDATE: 10/03/19Catalina 10.15 GM Seed #1 is now live! What’s New ? mrmacintosh.com/whats-new-in-macos-catalina-10-15-gm-seed-1-beta-11-19a582a/

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.

Link to Apple’s Public Developer Documentation

developer.apple.com/documentation/macos_release_notes

Previous 10.15 Beta Releases

  • 9th Catalina 10.15 Beta 9 (19A573a) – 09/23/19 – Current Release
  • 8th Catalina 10.15 Beta 8 (19A558d) – 09/10/19 – Release Notes
  • 7th Catalina 10.15 Beta 7 (19A546d) – 08/28/19 – Release Notes
  • 6th Catalina 10.15 Beta 6 (19A536g) – 08/19/19 – Release Notes
  • 5th Catalina 10.15 Beta 5 (19A526h) – 07/31/19 – Release Notes
  • 4th Catalina 10.15 Beta 4 (19A512f) – 07/17/19 – Release Notes
  • 3rd Catalina 10.15 Beta 3 (19A501i) – 07/02/19 – Release Notes
  • 2nd Catalina 10.15 Beta 2 (19A487l) – 06/17/19 – Release Notes
  • 1st Catalina 10.15 Beta 1 (19A471t) – 06/03/19 – Release Notes

How to Download macOS 10.15 Catalina Beta

AppleSeed Patch Notes & Some Fixes not listed?

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)

4. New Deprecations

10.14.6 Update Causes Kernel Panic When Using FaceTime Camera (UPDATE!)

MrMacintosh.com - 10.14.6 Update Causes a Kernel Panic When Using the Built-In FaceTime Camera.
10.14.6 Update Causes a Kernel Panic When Using the Built-In FaceTime Camera.

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. 🙁

UPDATE: 9/27/19Apple just released 10.14.6 Supplemental Update #3, but this does NOT fix the FaceTime Camera bug.mrmacintosh.com/macos-updates-9-26-19-mojave-10-14-6-3-10-13-10-12-2019-005/

UPDATE: 9/18/19Added additional workarounds.

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.

mrmacintosh.com/apple-pulls-2019-004-high-sierra-and-sierra-security-updates-after-kernel-panics/

Let’s dive right in and see what’s going on here.

Who, What, When, Where & Why Index

  • 1. Affected macOS 10.14.6 Build Versions
  • 2. Affected Mac Hardware
  • 3. This issue does NOT affect most 10.14.6 users.
  • 4. Kernel Panic Reports
  • 5. Why rolling back will NOT work.
  • 6 Built-In FaceTime Camera
  • 7. Camera Software that causes the KP’s
  • 8. Workarounds
  • 9. Will Apple fix this issue? 10.14.6 Supplemental Update #3 ?
  • 10. 10.14.6 FaceTime Camera Kernel Panic Links
  • 11. 3rd Party Vendor Responses

1. Affected macOS 10.14.6 Build Versions

This issue affects all macOS Mojave 10.14.6 Build Versions.

  • (18G84) Update Released July 22nd, 2019
  • (18G87) Supplemental Update #1 Released August 5th, 2019
  • (18G95) Supplemental Update #2 Released August 26th, 2019

2. Affected Mac Hardware

I have looked over many reports on the Apple Discussion Forums and MacAdmins Slack Chat. It looks like the only affected Mac Hardware is…

  • MacBookPro15,1
  • 2018 15″ MacBook Pro
  • 2019 15″ MacBook Pro

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.

10. 10.14.6 FaceTime Camera Kernel Panic Links

6 Page Apple Discussions Forum Post https://discussions.apple.com/thread/250524925

15 Page Apple Discussions Forum Post https://discussions.apple.com/thread/250546239

11. 3rd Party Vendor Responses

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.

What’s New in macOS Catalina 10.15 Beta 8 (19A558d)

MrMacintosh.com - What's New in macOS Catalina 10.15 Beta 8 (19A558d)
What’s New in macOS Catalina 10.15 Beta 8 (19A558d)

UPDATE: 9/23/19 10.15 Catalina Beta 9 is out! Find out what’s new here – mrmacintosh.com/whats-new-in-macos-catalina-10-15-beta-9-19a573a/

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.

Link to Apple’s Public Developer Documentation

developer.apple.com/documentation/macos_release_notes

Previous 10.15 Beta Releases

  • 8th Catalina 10.15 Beta 8 (19A558d) – 09/10/19 – Current Release
  • 7th Catalina 10.15 Beta 7 (19A546d) – 08/28/19 – Release Notes
  • 6th Catalina 10.15 Beta 6 (19A536g) – 08/19/19 – Release Notes
  • 5th Catalina 10.15 Beta 5 (19A526h) – 07/31/19 – Release Notes
  • 4th Catalina 10.15 Beta 4 (19A512f) – 07/17/19 – Release Notes
  • 3rd Catalina 10.15 Beta 3 (19A501i) – 07/02/19 – Release Notes
  • 2nd Catalina 10.15 Beta 2 (19A487l) – 06/17/19 – Release Notes
  • 1st Catalina 10.15 Beta 1 (19A471t) – 06/03/19 – Release Notes

How to Download macOS 10.15 Catalina Beta Releases

AppleSeed Patch Notes & Some Fixes not listed?

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.

How to Restore BridgeOS on a T2 Mac + Boot a Mac to DFU Mode

MrMacintosh.com - How to Restore BridgeOS on a 2018+ T2 Mac using Apple Configurator 2. How to Boot your Mac into DFU Mode
How to Restore BridgeOS on a 2018+ T2 Mac using Apple Configurator 2. How to Boot your Mac into DFU Mode

Did a macOS Update Brick your T2 Mac? I will Show you how to Boot your Mac into DFU Mode so you can Restore BridgeOS.

This article will go over how to restore BridgeOS on your T2 Mac. This is not something that you will ever normally have to do. Restoring or reinstalling BridgeOS firmware would only be needed in the following situations.

  • 1. Failed macOS Upgrade
  • 2. Failed macOS Combo or Delta Update
  • 3. Failed macOS Security Update
  • 4. Failed macOS Reinstall
  • 5. Failed BridgeOS or Failed Firmware Update
  • 6. “Command Option R” fails to boot your T2 Mac to the newest version of macOS Internet Recovery. (Example: 10.14 is out but the Mac boots to 10.13)

This link shows the different ways you can boot to the Recovery Partition or Internet Recovery support.apple.com/en-us/HT204904

Typical symptoms that you might see that would indicate a failed or bricked update.

  • Mac Seems dead
  • Will not turn on
  • Black Screen
  • No Fan Noise
  • Power on LED Light does not turn on (Mac Mini or 2020 iMac)

If you find yourself in one of these situations you can follow the instructions below.

My quick 4 min video on how to boot your into DFU mode + restore / revive BridgeOS.
Deep Dive explanation on how to boot your Mac into DFU Mode + How to Reinstall BridgeOS with Apple Configurator 2 – Mr. Macintosh YouTube live demo.

Table of Contents

  • 1. Updates
  • 2. Warning!
  • 3. List of T2 Compatible Macs
  • 4. How do I find my T2 Mac BridgeOS Version?
  • 5. Setup and Cable Requirements before you begin
  • 6. Download Apple Configurator 2 app
  • 7. How to Boot your T2 Mac into DFU Mode
  • 8. Instructions for the MacBook Pro & Air (2018-2020)
  • 9. Instructions for the iMac & iMac Pro (2017 & 2020)
  • 10. Instructions for the Mac Mini (2018-2020)
  • 11. Instructions for the Mac Pro (2019)
  • 12. You made it! Apple Configurator 2 Steps
  • 13. Begin BridgeOS Revive / Restore
  • 14. Finishing Up
  • 15. Can I Downgrade from a Beta Version of BridgeOS to a Production version?
  • 16. Troubleshooting DFU Mode & BridgeOS Update Problems

1. Updates

2. Warning about “Restore” Full Erase! Please Read

The new version of Apple Configurator 2 (2.12.1+) and newer has different options!

  • Actions > Advanced > Revive Device = Reinstall BridgeOS Only – Revive should be the first option to try. If a Revive does not work, move to the second option Restore.
  • Actions > Restore = Reinstall BridgeOS & ERASE OS AND USER DATA! – This option will reinstall BridgeOS and erase the SSD. This option is for more serious issues where the Mac does not respond after installing an update.

3. List of T2 Compatible Macs

This is a list of T2 Mac that you can can have BridgeOS restored.

  • 2019-2020 16″ MacBook Pro
  • 2018-2019 13″ & 15″ Macbook Pro
  • 2018-2020 MacBook Air
  • 2018 Mac Mini
  • 2020 iMac
  • 2017 iMac Pro
  • 2019 Mac Pro

4. How do I find the BridgeOS Version on my T2 Mac?

From support.apple.com/en-us/HT203001 – “Choose Apple menu  > About This Mac. This opens an overview of your Mac, including your Mac model, processor, memory, serial number, and version of macOS. To see the greater detail provided by the System Information app, click the System Report button.”

MrMacintosh.com - About my Mac > System Report > BridgeOS version = 17.16.10525
About my Mac > System Report > BridgeOS version = 17.16.10525

5. Setup and Cable Requirements before you begin.

You will need to meet the following requirements –

(The Host Mac will do the work and the Target Mac is the Mac you need to Restore)

  • 1. USB-C Mac as the Host Machine.
  • 2. The Host Mac must have at least macOS 10.13.5 and Apple Configurator 2.6 or newer installed. (Version 2.12.1 is the latest)
  • 3. The Host Mac Must be on the same OS version as the Target Mac that you want to Restore. (Example – If the Target Mac is on 10.15 you will need the Host Mac to be on 10.15. If the Host Mac is on 10.14 you will get an error 10)
  • 3. Internet access on the Host Mac“You may need to configure your web proxy or firewall ports to allow all network traffic from Apple”
  • 4. USB-C to USB-C Cable – The white Apple USB-C Charge will work fine.(USB-C Cable MUST Support Power & Data). Apple notes that a Thunderbolt 3 to Thunderbolt 3 cable is not supported but I’ve tested it and it works fine.
  • 5. The Host Mac can have the cable plugged in anywhere.
  • 6. The Target Mac MUST have the USB-C Cable Plugged in to the Left Hand side USB-C port. This is First port in line (Port closest to the front of the Mac or trackpad) If you are still confused look at the picture below.
  • If you don’t meet all the prerequisites booting to DFU Mode or BridgeOS Upgrade might fail.

6. Download Apple Configurator 2

MrMacintosh.com - Download Apple Configurator 2 app from the Mac App Store. Version 2.6 or higher is required.
Download Apple Configurator 2 app. Version 2.6 or higher is required.

If you do not have Apple Configurator 2, you can download it now from the Mac App Store with this link.

https://apps.apple.com/us/app/apple-configurator-2/id1037126344?mt=12

7. How to Boot your T2 Mac into DFU Mode

With all the startup keyboard commands you can issue a Mac, booting into DFU Mode should be pretty simple right?

NOPE!

You have to follow a very particular sequence to get this to work. I have attempted to find the exact way to get this to work every time. Even then sometimes the system will refuse to Boot into DFU mode.

MrMacintosh.com - Me trying to get my T2 Mac into DFU mode without turning it off or booting into macOS.
Me trying to get my T2 Mac into DFU mode without turning it off or booting into macOS.

Apple’s Instructions

You can find Apple’s instructions for booting into DFU mode here.

help.apple.com/configurator/mac/2.7.1/#/apd0020c3dc2

UPDATE 4/13/20: New Apple Support Document

support.apple.com/guide/apple-configurator-2/revive-or-restore-mac-firmware-apdebea5be51/mac

MrMacintosh.com - Apple's instructions for booting your T2 MacBook Pro into DFU mode.
Apple’s instructions for booting your T2 MacBook Pro into DFU mode. Image: Apple Inc

8. My Instructions for the MacBook Pro & Air

Bottom line, it’s hard to get your T2 Mac into DFU mode. You could try Apple’s instructions 10 times and STILL not get into DFU mode.

Once you have meet all of the pre requisites above, follow the instructions below to get into DFU Mode every time.

  • 1. The Target Mac must be OFF to begin.
  • 2. Press the Power button and hold for 1 second.
  • 3. While STILL holding power immediately hold down Right Shift, Left Control and Left Option.
  • Hold down all 4 keys for 8 Seconds (count 1 one thousand) then let go of all keys.
  • You will not see anything on the Target Mac screen.
  • Keep an eye on the Host Mac’s Apple Configurator 2 Application. The App should say “Connect Devices”
  • When the Target Mac is booted into DFU mode correctly, the host will show a big DFU icon in Apple Configurator 2.
  • After you see the DFU picture pop up on the Host Mac you can let go of the keys.
MrMacintosh.com - DFU T2 Booting Instructions - Make sure the Mac is OFF. Hold down power for 1 second then also hold Right Shift, Left Control and Left Option for 8 total seconds then let go.
DFU T2 Booting Instructions – Make sure the Mac is OFF. Hold down power for 1 second then also hold Right Shift, Left Control and Left Option for 8 total seconds then let go.

9. Instructions for the iMac (2020) & iMac Pro (2017)

The iMac 2020 & iMac Pro 2017 are a little different yet are super simple to get into DFU Mode.

  • 1. Disconnect the power cord from the iMac Pro or Mac Mini.
  • 2. Plug USB-C/Thunderbolt cable into the USB-C port next to the Ethernet Port.
  • 3. Plug the other end into the Host Mac.
  • 4. While holding down the power button, connect the iMac Pro or Mac Mini to power and continue to hold the power button for about 3-5 seconds
  • 5. You should now see the DFU logo on the Host Mac.

10. Instructions for the Mac Mini (2018)

The Mac Mini 2018 instructions are close to the iMac Pro but the USB-C port that you need is next to the HDMI port instead of the Ethernet port like the iMac Pro.

MrMacintosh.com - How to boot a Mac Mini 2018 into DFU mode to restore BridgeOS - Image: Apple Inc
How to boot a Mac Mini 2018 into DFU mode to restore BridgeOS – Image: Apple Inc
  • 1. Disconnect the power cord from the Mac Mini.
  • 2. Plug USB-C/Thunderbolt cable into the USB-C port next to the HDMI Port.
  • 3. Plug the other end into the Host Mac.
  • 4. While holding down the power button, connect the Mac Mini to power and continue to hold the power button for about 3-5 seconds
  • 5. You should now see the DFU logo on the Host Mac.

11. Instructions for the Mac Pro (2019)

The Mac Pro 2019 instructions were just added to the DFU instruction guide.

MrMacintosh.com - How to boot a Mac Pro 2019 into DFU mode to restore BridgeOS - Image: Apple Inc
How to boot a Mac Pro 2019 into DFU mode to restore BridgeOS – Image: Apple Inc
  • 1. Disconnect the power cord from the Mac Pro.
  • 2. Plug USB-C/Thunderbolt cable into the USB-C port farthest from the power button.
  • 3. Plug the other end into the Host Mac.
  • 4. While holding down the power button, connect the Mac Pro to power and continue to hold the power button for about 3-5 seconds.
  • 5. You should now see the DFU logo on the Host Mac.

12. You made it! Apple Configurator 2 Steps

The hard part is now over. Now we can restore BridgeOS on the Target Mac. When you first open Apple Configurator 2 the screen will look like this.

MrMacintosh.com - This is what you will see if the Mac is NOT booted to DFU mode.
This is what you will see if the Mac is NOT booted to DFU mode.

Once your Mac is booted to DFU mode, you will see this screen on Apple Configurator 2. You are now ready for the next step.

MrMacintosh.com - When you see a big DFU icon when your Mac is properly booted into DFU Mode.
When you see a big DFU icon when your Mac is properly booted into DFU Mode.

13. Begin BridgeOS Revive

You are now ready to restore BridgeOS on the Target Mac. Click Actions > Advanced > Revive Device.

(DO NOT CLICK RESTORE YET) Only run Restore if Revive does not work. (Restore Erases your Hard drive!!!!!!!)

MrMacintosh.com - Apple Configurator 2. Actions > Restore.
OLD PICTURE – Select Actions > Advanced > Revive Device (NOT Restore) 1st

You will now see a warning message. Do you want update “iBridge” to the latest firmware version? You cannot undo this action. This means that once you update BridgeOS/iBridge you cannot go back to the previous version.

An updated Apple support document shows that we now have 2 different options.

  • Actions > Advanced > Revive Device = Reinstall BridgeOS Only
  • Actions > Restore = Reinstall BridgeOS & ERASE OS AND USER DATA!
MrMacintosh.com - Apple Configurator 2 version 2.12.1 - New Message that warns that the BridgeOS Restore will ERASE ALL OS AND USER DATA!
AC2 version 2.11 – 2.12.1 ??? New Message that warns that the BridgeOS Restore will ERASE ALL OS AND USER DATA!

The message below is what you will see on at least AC2 version 2.10 and below. OR if you click Revive instead of restore.

AC2 Version 2.10 and below – Do you want to restore and update “iBridge” to the latest firmware version?

Click the Restore Button to begin. Step one will download the latest BridgeOS update from Apple.

MrMacintosh.com - Step 1. Downloading the latest BridgeOS from Apple.
Step 1. Downloading the latest BridgeOS from Apple.

Step 2. Unzipping BridgeOS

MrMacintosh.com - Step 2. Unzipping the BridgeOS Update.
Step 2. Unzipping the BridgeOS Update.

Step 3. Installing BridgeOS Update.

MrMacintosh.com - Step 3. Installing BridgeOS
Step 3. Installing BridgeOS

14. Finishing Up

If you would like to see more information you can click View and see a new activity window.

MrMacintosh.com - Apple Configurator 2 Activity window.
Apple Configurator 2 Activity window.

The entire process will only take about 4-10 Minutes. Most of the time is spent downloading the 400-600MB BridgeOS Update. The Unzip and Install parts only take about 1 minute each. When complete the Mac will automatically Boot up.

NOTE: with version 2.12.1, the entire process may never finish correctly and get stuck at the final part (probably a bug). Once your Target Mac is at the login window the restore is complete. The error that you might see is 0xFA5 (4005)

15. Can I Downgrade from a Beta Version of BridgeOS to a Production version? i.e Bug Sur BridgeOS to Catalina Version?

Let’s say that you installed Big Sur Beta 6, and are now having a ton of problems. You probably want to downgrade to Catalina so you can work again. The only problem is, you are still on Big Sur Beta 6 BridgeOS version 18.16.12370. Keep in mind, your Mac SHOULD still work fine with this version. An example of this is if you have Catalina 10.15.6 installed on your Mac, your BridgeOS version is 17.16.16610. Let’s say that you need to test something on version 10.15.3. After installing Catalina 10.15.3, your BridgeOS version will NOT be downgraded to the period correct version of 17.16.13050. It will run just fine on the 10.15.6 version of 17.16.16610 BridgeOS. The same is the case if you have a Big Sur Beta version of BridgeOS and you downgrade to Catalina.

The answer is YES, follow the link below for an explanation.

mrmacintosh.com/how-to-downgrade-t2-bridgeos-beta-to-a-production-version/

16. Troubleshooting DFU Mode & BridgeOS Update Problems

  • I can’t get my Mac to boot into DFU mode. This is the toughest part of the whole process as I mentioned above. Keep trying the steps I listed above. Sometimes it takes multiple attempts to get his to work.
  • You can use System Information to see if the USB-C port lists your Mac in DFU Mode.
MrMacintosh.com - System Information showing a Mac plugged in booted to DFU Mode.
System Information showing a Mac plugged in booted to DFU Mode.
  • BridgeOS Restore Error 79- The OS Cannot be restored on this device. The Operation couldn’t be completed. (AMRestoreErrorDomain error 79 – Failed to handle message type StatusMsg) [AMRestoreErrorDomain – 0x4F (79)] – If you get this error it means that the BridgeOS update has failed and is unable to complete. The system will be unable to boot. When powered on the screen will be black. The Mac will have to be brought to an Apple Store for Service.
MrMacintosh.com - BridgeOS Restore Error - The OS Cannot be restored on this device. The Operation couldn't be completed.
BridgeOS Restore Error – The OS Cannot be restored on this device. The Operation couldn’t be completed.

BridgeOS Restore Error 10 – The BridgeOS Restore failed! This is most likely because the host Mac was 1 or 2 OS Versions behind the Target Mac. The Host and Target Mac need to be on the same OS Version.

If your Target Mac is on 10.15, then your Host Mac needs to be on 10.15.

The OS Cannot be restored on this device.

The operation couldn’t be completed. (AMRestoreErrorDomain error 10 – Failed to handle message type StatusMsg) [AMRestoreErrorDomain – 0xA (10)]

MrMacintosh.com - BridgeOS Restore Error 10 - The Host and Target Mac need to be on the same OS Version.
BridgeOS Restore Error 10 – The Host and Target Mac need to be on the same OS Version.

Host Mac and Target Mac Disconnected during restore. – Error 4005

The OS Cannot be restored on this device.

Gave up waiting for device to transition from RestoreOS state to BootedOS State. [com.apple.MobileDevice.MobileRestore – 0xFA5 (4005)]

MrMacintosh.com - BridgeOS Restore Error 4005
BridgeOS Restore Error 0xFA5 (4005)

This error will come up when the restore process has been interrupted.

Or, you might get this using Apple Configurator 2 version 2.12.1, as the process never seems to complete properly. If the Target Mac awakes to the login window the process is complete even though the progress bar is at 100%. After unplugging the USB-C cable you will get the error above.

Apple Configurator 2 Reports RECOVERY instead of DFU Status.

MrMacintosh.com - Apple Configurator 2 Reports RECOVERY instead of DFU Status.
Apple Configurator 2 Reports RECOVERY instead of DFU Status.
  • If you see RECOVERY this means that BridgeOS is unable to boot and is the default status when you power on the Mac.
  • Failed BridgeOS Restore due to OS Version Mismatch! The Target Mac is a previous OS i.e 10.14 trying to restore a 10.15 Mac, the update will fail with an Error 10
  • If the Mac already failed the Upgrade, it could already be in this status. If so, you can attempt a BridgeOS restore.

Configurator could not perform the requested action. Apple Controller devices do not support this action.

This means that you selected Actions > Update, which is not supported. You need to select Actions > Advanced > Revive Device

Apple Configurator 2 BridgeOS Firmware Download Location.

Thanks MrMacintosh Reader Max C for letting me know the location of the BridgeOS Firmware files.

~/Library/Group Containers/Group.com.apple.configurator/Library/Caches/Firmware

Apple Configurator 2 Log Location

~/Library/Group Containers/xxxxxxx.group.com.apple.configurator/Library/Logs

Note that for version 2.12.1 the log does not seem to be working.

If you have any additional information or questions Contact Me!

What’s New in Xcode 11 Beta 7 (11M392r)

MrMacintosh.com - What's New in Xcode 11 Beta 7 (11M392r)
What’s new in Xcode 11 Beta 7 (11M392r)

UPDATE: 9/27/19Apple just released Xcode 11.1 GM Seed (11A1027) to Developers mrmacintosh.com/whats-new-in-xcode-11-1-gm-seed-11a1027/

UPDATE: 9/20/19 – Xcode 11 is now available in the Mac App Store! Check out what’s new heremrmacintosh.com/xcode-11-11a420a-is-now-available-in-the-mac-app-store-whats-new/

UPDATE: 9/18/19 Apple released both Xcode 11 Seed 1 and 2.

mrmacintosh.com/whats-new-in-xcode-11-gm-seed-1-11a419c/

mrmacintosh.com/whats-new-in-xcode-11-gm-seed-2-11a420a/

Yesterday Apple released Xcode 11 Beta 7 to Developers.

I report mainly on macOS, but maybe I could expand a bit. Michael Tsai@mjtsai (Follow him) took a look at my latest article “What’s new in macOS Catalina 10.15 Beta 7” and said this.

MrMacintosh.com - Per-Build Release Notes https://mjtsai.com/blog/2019/08/28/per-build-release-notes/
Michael Tsai – Per-Build Release Notes – https://mjtsai.com/blog/2019/08/28/per-build-release-notes/

I am going to try documenting Xcode patch change notes, maybe this will end up being useful to 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 Beta 6 and the new New Xcode 11 Beta 7 (11M392r) release notes to find all the changes. I also included the entire patch notes list as an archive. When Apple releases the Beta 8 patch notes the previous patch notes are overwritten and taken down.

Summary of New Xcode 11 Beta 7 Patch Notes

  • 1 New Warning
  • 8 New Features
  • 7 New Resolved issues
  • 7 New Known Issues
  • 0 New Deprecations

A Full List of changes is listed below, along with the full patch notes list.

Link to Apple’s Xcode 11 Developer Documentation

https://developer.apple.com/documentation/xcode_release_notes

How to Download Xcode 11 Beta

Xcode 11 Beta 7 Patch Notes Changes

Xcode General – Known Issues Xcode 11 beta 7 incorrectly reports as beta 6 on the welcome screen. (54795525)

1. New Warnings in Xcode 11 Beta 7

Xcode Previews in Xcode 11 beta 7 have a known incompatibility with macOS Catalina beta 6. Upgrade to macOS Catalina beta 7 or later. (54621598)

2. New Features in Xcode 11 Beta 7

General – Xcode 11 beta 7 and later supports development for devices running iOS 13.1.

Build System – Custom build rules can now specify additional, static input files that are used during execution. These resolved input file paths are supplied to rule scripts using the SCRIPT_INPUT_FILE_# environment variables. (49645853)

Instruments – NSView and UIView have a layout mode option in the Size inspector to explicitly opt into “translates autoresizing mask into constraints”. The default setting is “Automatic”, which is the existing behavior. “Automatic” implies that “translate autoresizing mask into constraints” is off when a view affect by constraints in the storyboard or .xib file, but on if unconstrained. (37352354)

Swift – You can now use the Self expression to refer to the innermost nominal type inside structure, enumeration and class declarations. For example, the two method declarations inside this structure are equivalent:struct Box { func transform1() -> Self { return self } func transform2() -> Box { return self } } In classes, Self is the dynamic type of the self value, as before. Existing restrictions on Self in declaration types still apply; that is, Self can only appear as the return type of a method. However, Self can now be used inside the body of a method without limitation. (SE-0068, 17892696)

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() }() }

Testing – xccov now supports being passed result bundles directly, in addition to raw report and archive files. For example, to view the coverage report within a result bundle, invoke xccovas follows: xccov view –report /path/to/result_bundle.xcresult. (50500789)

Testing – The format of result bundles changed in Xcode 11. A result bundle is an asset produced by Xcode 11 with the xcresult file extension that contains information about the build, tests, code coverage, and more. Any xcresult files produced with Xcode 10 or earlier cannot be read by Xcode 11. A result bundle can be produced by passing -resultBundlePath ./Example.xcresult to an xcodebuild invocation and the Example.xcresult can then be opened in Xcode. Xcode also creates result bundles in Derived Data. The current result bundle version number is 3, which can be specified by passing the xcodebuild flag -resultBundleVersion 3. Version 3 is the default in Xcode 11, but it is still recommended for automation to explicitly pass the flag, so that any potential future versions that become the default do not cause issues to existing tools. Result bundles can be inspected using xcresulttool. A JSON representation of the root object of the result bundle can be exported using xcrun xcresulttool get –format json –path ./Example.xcresult and any nested object, identified by its reference found in the JSON output, can be exported by adding the flag –id REF. xcresulttool also provides the description of its format using xcrun xcresulttool formatDescription. (41633595)

Testing – xcodebuild is enhanced with new options supporting Test Plans. Use the new -showTestPlans option to list all test plans associated with a scheme. Use the new -testPlan option to specify which test plans associated with a scheme to use for testing or building tests. If -testPlan is not specified, xcodebuild test will use the scheme’s default test plan. (46346197)

3. New Resolved Issues in Xcode 11 Beta 7

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 ALLOW_RECURSIVE_SCRIPT_INPUTS 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)

Library – The Swift REPL and LLDB’s python scripting work properly when the python binary in PATH isn’t the system one. (40961425)

Library – Multiple issues that prevented LLDB from accessing variables while debugging XCTesttests are resolved. (41471338)

Source Control – Source control status in the file navigator will reflect the same information as git status from the terminal. (14986450)

Source Editor – Added dedicated syntax coloring for // MARK: comments and #pragma markdirectives, which you can customize in Preferences > Fonts & Colors > Mark. (22114159)

Swift – weak and unowned stored properties no longer inhibit the automatic synthesis of Equatable or Hashable conformance. (SR-9827, 50566123)

Swift Packages – Adding a new file in a C-family target of a Swift package doesn’t create the file with the .swift extension. (31395814)

4. New Known Issues in Xcode 11 Beta 7

General – Xcode 11 beta 7 incorrectly reports as beta 6 on the welcome screen. (54795525)

Build System – Incremental builds to may fail to codesign properly for non-source related changes to your project, such as resource file modifications, which can result in the app failing to launch. (41254808)Workaround: Change a source file within the same target to trigger the codesignprocess, or perform a clean build.

Source Control – When using xcodebuild, resolving packages may fail to verify SSH fingerprints unless that fingerprint is already in the ~/.ssh/known_hosts file. (50686014)Workaround: SSH into the host and verify the fingerprint from the command line before using xcodebuild, or manually add the host fingerprint to the ~/.ssh/known_hostsfile.

SwiftUI – Drag and drop operations that result in insertions of containers around an existing view and a new sibling in the container don’t work if the existing view is at the top level of a conditional statement in a view builder. For example, you can’t drop an HStack or VStackaround the Text. (50300406):var body: some View { VStack { if true { Text(“Hello World”) } } } Workaround: Embed the existing view into a container — either in the canvas or the source editor — then drop the new view into that container.

SwiftUI – Dragging a Text modifier onto text in the canvas that already has a View modifier such as frame(width:height:alignment:) results in a compilation error. (50712235)Workaround: Reorder the modifiers so that modifiers specific to Text appear before any View modifiers.

SwiftUI Tutorials – The scheme that’s autogenerated for a Swift package isn’t automatically updated when the package adds or removes targets. (50586754)Workaround: Delete the scheme from the swiftpm/xcode/xcshareddata/xcschemes directory inside the package directory, then reopen the package to automatically generate a new scheme.

Swift Packages – The scheme that’s autogenerated for a Swift package isn’t automatically updated when the package adds or removes targets. (50586754)Workaround: Delete the scheme from the swiftpm/xcode/xcshareddata/xcschemes directory inside the package directory, then reopen the package to automatically generate a new scheme.

5. New Deprecations in Xcode 11 Beta 7

None

General

New Features

  • Xcode 11 beta 7 and later supports development for devices running iOS 13.1.
  • Xcode 11 beta supports development with SwiftUI.NoteTools for SwiftUI development are only available when running on macOS Catalina 10.15 beta.
  • You can now change the appearance of Xcode independently of the system appearance setting. (41165587)
  • Xcode supports uploading apps from the Organizer window or from the command line with xcodebuild or xcrun altool. Application Loader is no longer included with Xcode. (29008875)
  • LaunchServices on macOS now respects the selected Xcode when launching Instruments, Simulator, and other developer tools embedded within Xcode. For example, when you double-click an Instruments trace in Finder, the version of Instruments for the selected Xcode launches. Change which Xcode is used with xcode-select from the command line. (6757601)
  • Editors can be added to any window without needing the Assistant Editor. Editors are added using the “Add Editor” button in the jump bar or the File > New > Editor command. Each editor can now be in one of three modes: “Editor Only”, “Editor and Assistant” or “Editor and Canvas”. The latter two modes automatically show relevant content when available. When using multiple editors, the View > Editor > Focus command can be used to temporarily expand the active editor to fill the entire window, hiding other editors. For source control support, the Code Review button in the Toolbar replaces the Comparison Editor. The “Show Authors” command is now available from the Source Editor’s Editor menu. The SCM Log is now in the Inspector Area. (43806898)

Known Issues

  • Xcode 11 beta 7 incorrectly reports as beta 6 on the welcome screen. (54795525)
  • Xcode 11 doesn’t support working with SwiftUI in a Mac Catalyst app. (41416222, 51201699)

Resolved Issues

  • The required packages installer no longer unnecessarily appears on macOS 10.15. (51080815)
  • The Foundation integration for the Combine framework is now available. The following Foundation and Grand Central Dispatch integrations with Combine are available: KeyValueObservingNotificationCenterRunLoopOperationQueueTimerURLSessionDispatchQueueJSONEncoderJSONDecoderPropertyListEncoderPropertyListDecoder, and the @Published property wrapper. (51241500)
  • Issue text is no longer light when using a light theme with a dark system appearance. (48230278)

Apple Clang Compiler

New Features

  • Clang now provides a mechanism for controlling exit-time destructor registration. You can disable these globally with the flag -fno-c++-static-destructors, or apply the attribute [[clang::no_destroy]] to disable the destructors of specific variables. The attribute [[clang::always_destroy]] was also added to enable destructors of specific variables when -fno-c++-static-destructors is used. (21734598)
  • As an extension, C++11 enums with fixed underlying types are now supported in all language modes. (43831380)
  • Deprecation warnings will be issued when standard library facilities that were deprecated in the active Standard version are used. (46881474)
  • Stack checking is on by default on all platforms to prevent memory corruptions. (25859140)
  • The machine code outliner is on by default under -Oz. It reduces code size by identifying identical code sequences across functions. Such sequences are encapsulated (“outlined”) in a single compiler generated function. Each original code sequence is replaced with a call to that outlined function. (46385499)
  • In order to improve performance and security the static linker (ld) now moves globals that are marked as constant into a new segment: __DATA_CONST. These globals may consist of compiler generated pointers that the dynamic linker (dyld) needs to fix up during load, but are otherwise constant such as vtables and explicitly declared constant pointers. Once dyld has finished loading the image it makes __DATA_CONST readonly. This change doesn’t impact well behaved code, but may break code that depends on undefined behavior such as using a type pun to write to a pointer that’s declared as const. (50898833)static int value1 = 0; // Stored in __DATA static int value2 = 0; // Stored in __DATA const int * const valuePtr = &value1; // Stored in __DATA_CONST // ERROR: Attempting to store a value to a constant pointer (int *)valuePtr = &value2;
  • Clang now supports the C++17 <filesystem> library for iOS 13, macOS 10.15, watchOS 6, and tvOS 13. (50988273)

Resolved Issues

  • When using manual retain-release, exceptions thrown from the following methods or any functions or methods they transitively call will properly be caught: releaseautoreleaseretainalloc, or allocWithZone. (50253394)
  • An if (@available( … )) check works properly when linked by Xcode into an app or framework that’s running on iOS 13, macOS 10.15, watchOS 6, or tvOS 13. (51109405)
  • The <experimental/optional> and <experimental/variant> headers are removed. Use <optional> and <variant> from C++17 instead. (50175894)
  • Resolved a long compile-time issue in the loop-invariant code motion pass of the optimizer. (39648918)

Asset Catalog

New Features

  • Assets can now be cut, copied, pasted, and duplicated using the menu or keyboard shortcuts. (27107912)

Known Issues

  • Localized assets in an asset catalog aren’t matched to the user-preferred languages and locales. (49565973)

Resolved Issues

  • Fixed crash that could occur when loading recent colors. (53027898)
  • Xcode no longer crashes if you press Command-U or select an asset catalog in the navigator area. (52211868)
  • Fixed a crash that could occur when using Interface Builder’s image inspector if the asset catalog contained a symbol and bitmap image assets with the same name. (51279661)
  • New user-defined images added to the asset catalog show up in the image view image combo box. (51090225, 51120715)
  • Corrected an issue that caused the NSDataAsset asset variation for Mac Catalyst to return nil at runtime. (50022757)
  • Resolved an issue that caused NSDataAsset asset lookup to return the wrong data when an asset had variants specified for iPad and Mac Catalyst. (49990047, 51278348, 51288447)

Build System

New Features

  • If tests are run using a test plan, it’s now possible to configure which targets should be included in code coverage results using the test plan’s code coverage setting. (50502861)
  • 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.
  • You can use an unlimited number of Swift files in a target. (35879960)
  • Run script phases and custom build rules may declare and emit a dependencies file, in the Makefile-style .d format output used by some compilers and build tools. The build system checks the files listed for changes during subsequent builds when determining if the rule or phase should be executed. (49226986)
  • Projects may now use custom build rules to process header files (APPLY_RULES_IN_COPY_HEADERS). (48185100)
  • Custom build rules can now specify additional, static input files that are used during execution. These resolved input file paths are supplied to rule scripts using the SCRIPT_INPUT_FILE_# environment variables. (49645853)
  • Xcode removes some entries from the Info.plist file of a product at build time if the entries are not appropriate for the platform being built for, which is useful for targets which are configured to build for multiple platforms. This behavior can be disabled by setting the build setting DISABLE_INFOPLIST_PLATFORM_PROCESSING to YES, in which case the target must assume the responsibility of managing these entries appropriately. (47797497)
  • Custom build rules can now declare that they should run once per architecture (the default), or run only once across all architectures. This is useful for custom rules which are architecture-neutral, for example, code generation tools that generate files that don’t differ per architecture. (47716990)
  • XCFramework make 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)

Known Issues

  • Incremental builds to may fail to codesign properly for non-source related changes to your project, such as resource file modifications, which can result in the app failing to launch. (41254808)Workaround: Change a source file within the same target to trigger the codesignprocess, or perform a clean build.
  • Updating your iOS app for Mac Catalyst might show new error diagnostics stating that certain frameworks or functionality is not available on the Mac. If one of these diagnostics is shown erroneously, you can disable it by setting the VALIDATE_WORKSPACE build setting to NO. (50607174)
  • The new build system doesn’t evaluate a leading tilde (~) in paths in build settings to the user’s home directory. (41339901)Workaround: Use $(HOME) instead.
  • If a target enables RUN_CLANG_STATIC_ANALYZER, then single file processing commands — such as Compile, Preprocess, Show Assembly — won’t work correctly because they generate the static analyzer output file rather than the appropriate output. (43340227)Workaround: Disable RUN_CLANG_STATIC_ANALYZER in the target.
  • If the build of an app-hosted test target — where TEST_HOST is defined — fails, subsequent builds may fail when signing the app product because the test target is incomplete and unsigned when the initial signing of the app occurs. (43402096)Workaround: Perform a clean build. Or, manually delete the unsigned test bundle from inside the app target’s product and rebuild.
  • Targets which override the Architectures and Valid Architectures build settings for iOS may need to remove or conditionalize the overrides to build correctly for Mac Catalyst. (51074742)
  • When using Xcode on macOS 10.15, some files — especially .xib files and storyboard files — might be copied rather than compiled, resulting in an incorrect build product. (49351105)Workaround: In the File Inspector for the file which is being copied, toggle the Type popup away from Default – <some type> then back to Default. This resets the file type in the project file to the correct type and enables the build system to match it to the correct tool to process it.
  • When building for the first time users may get a popup stating that SimulatorTrampoline would like access to Desktop Files because ibtool running in simulator needs access to these files to compile storyboards. (51114450)Workaround: Allow access to the files in the prompt.

Resolved Issues

  • When tests are run under multiple configurations using a test plan in Xcode Server, the integration report now properly displays the name of each configuration that a test ran under. (53402104)
  • If changes are made to the active test plan document while the test navigator is visible — such as the addition or removal of a test target, or enabling or disabling an individual test or test class — the navigator now updates immediately in response to the changes instead of becoming out of sync with the test plan. (52065983)
  • If the settings in the active test plan document are modified, and the Test Again action is subsequently invoked to rerun the tests that were last run, the modified settings will now take effect instead of the previous settings being used. (51145300)
  • On-Demand Resources (ODR) are now supported on macOS. (50358184)
  • Use of legacy build system features such as build rule or script phase discovered dependency files, input declarations for custom build rules, or the APPLY_RULES_IN_COPY_HEADERS build setting produces an error instead of silently being ignored. (51318274)
  • Overriding the Architectures build setting to just armv7k in a Watch targets doesn’t prevent deployment to TestFlight or Xcode’s enterprise distribution workflow. (51104990)
  • The indexer doesn’t wait for a build to be performed before indexing Swift response files. (52110336)
  • After closing and reopening a project, or when performing incremental builds using xcodebuild, diagnostics from prior builds regarding incompatible frameworks, app extensions, and code signing settings now are displayed with a description in the Issue Navigator and Build Log. (51131884)
  • 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 ALLOW_RECURSIVE_SCRIPT_INPUTS 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)
  • The build system no longer crashes when building some targets that use On Demand Resources. (49072702)

Command Line Tools

Resolved Issues

  • The python3 and pip3 commands no longer incorrectly fail with an error that claims they require Xcode when only the Command Line Tools are installed. (53284703)
  • pip3 is available using the default shell PATH when using macOS Catalina 10.15 beta 4. (50877974)
  • Python 3 is available in the Command Line Tools package. (51727440)

Known Issues

  • When using the Command Line Tools for beta 4 or later, some users may experience random crashes in the Swift compiler. (53582696)Workaround: In Terminal, execute the command sudo rm -f /Library/Developer/CommandLineTools/usr/lib/swift/macosx/libswift*.dylib.

Deprecations

  • Xcode’s built-in usdz_converter tool is deprecated and will be removed. Use the updated tool suite located under Resources in Augmented Reality. (52922369)

Core Data

New Features

  • There is now a checkbox that makes it possible for you to distinguish whether the default value of a string attribute should be nil or the empty string. When set, the default value is the empty string if no other default is specified. (26534406)
  • The Xcode 11 data model file format no longer writes out or preserves deprecated Sync Services information for entities or properties. (32524648)
  • The Core Data data model editor has added support for derived attributes when using the Xcode 11 data model file format and an appropriate deployment target. (45567066)
  • When creating an application using Core Data, there is a new checkbox to also enable CloudKit support for the data model’s default configuration. This can also be enabled for an existing data model using the new configuration inspector. When a data model configuration supports CloudKit, the data model editor performs additional validation to ensure the model conforms to the requirements for Core Data CloudKit support. (51126024)

Resolved Issues

  • When used with CloudKit, an attribute in a Core Data model must either be optional or have a default value. Xcode 11 beta 3 and earlier incorrectly required that such an attribute be both optional and have a default value. (51593507)
  • Using the UUID attribute type, the URI attribute type, or the persistent history feature properly generates an error when used with a data model file format prior to the format used in Xcode 9. (50188371)

Create ML

New Features

  • Activity classification, tabular classification, tabular regressor, and word tagger templates are available in Create ML. (53405469)
  • Object detection and text classification templates are available in Create ML, joining the image classification and sound classification templates. Use these templates starting with macOS 10.15 beta 3. (52009035)
  • You can now classify sounds live directly from the microphone using Sound Classification preview. (52131594)

Known Issues

  • Non-ASCII characters cannot be used as training labels for Image Classification and Sound Classification. (53594243)
  • 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.

Resolved Issues

  • Resolved a crash that could occur when using Live listen devices without a microphone. (53472928)
  • The progress graph in the sound classifier updates appropriately. (52911042)

Debugging

New Features

  • The view debugger now shows the names of NSImage instances in the inspector. (35516797)
  • The graphical filter in the Size inspector for debugging view hierarchies identifies which attributes on the selected view are constrained. Selecting attributes in the filter narrows the displayed constraints to ones matching that attribute. Standard modifier keys such as Shift and Command can be used to expand the selection showing the union of constraints matching those attributes. (44864394)
  • You can now debug the view hierarchies of watchOS apps. (45173634)
  • You can now simulate network conditions and thermal states for a connected device from the Devices and Simulators window. (44608479)
  • The view debugger shows UIWindowScene instances in the debug navigator and canvas. (45378799)
  • View debugging can be disabled in the scheme options. (45928299)
  • The Size inspector for debugging view hierarchies has more details about constraints including a filter, hover highlighting in the editor, and better descriptions. (16153188)
  • The view debugger supports debugging Mac Catalyst apps. (37507479)
  • The view debugger inspector shows contentTintColor for NSImageView and NSButton. (49506123)
  • The view debugger now shows the names of iOS named and system colors. (45162028)
  • The view debugger shows trait collection information. (45161975)
  • The view debugger shows the names of UIImage instances. (45327089)
  • The view debugger now shows symbol information, like baseline and midline. (49508874)
  • The debug bar appearance switcher supports changing between dark and light modes on iOS. (45161907)
  • The “Pause on issues” checkboxes in the Diagnostics tab of the Scheme Editor are replaced by regular breakpoints. You can use the Breakpoints Navigator to create a Runtime Issue Breakpoint. (31409112)
  • Override system settings like appearance, dynamic type, and accessibility options for the debugged process using Environment overrides, accessible from the debug bar. (45848655)
  • The debugger supports working with crash logs (.crash files). (48408310)
  • The debugger can debug tvOS Top Shelf extensions. (48869701)
  • Xcode can prefer using Wi-Fi to connect to a Watch when installing or debugging an app. (50313856)
  • The VoiceOver actions menu for breakpoints includes an action to jump to the corresponding line of code. (44941178)
  • When debugging views with constraints, double clicking a constraint in the size inspector selects that constraint in the editor and show information for the constraint in the inspector. (18842905)

Known Issues

  • When trying to run a Watch App from Xcode that has the ‘Supports Running Without iOS App Installation’ setting on a pre-watchOS 6.0 device or simulator the Watch App doesn’t launch. (54104164)Workaround: Build and Run the containing iOS App once to the paired iPhone device or simulator. Then you can switch back to the Watch App scheme and it will work normally.
  • Console output for Previews is only shown when debugging Live Previews in the Simulator. (49891045)
  • In watchOS 6, an apns-push-type key is required in the APNs request header. Specify alert or background for the type of notification being sent. The template APNs files in Xcode don’t contain this header by default. (50709418)
  • Debugging symbols might be unavailable for Apple Watch. (26995636)Workaround: Verify that you have a working internet connection and that you’re signed into your Apple ID in Preferences > Accounts.
  • Debugging a watch app in a watchOS simulator might fail the first time the simulator boots. (50263836)Workaround: Wait until the watch simulator finishes booting, then start debugging it again.
  • App and thermal state tracks in the Energy Impact gauge might stop updating. (50968828)Workaround: Stop and rerun the app.

Resolved Issues

  • Fixed an Xcode crash on macOS 10.15 when dragging the process item in the Debug Navigator. (48453949)
  • You can debug an interactive preview on a device. (51183159)
  • When working with devices running the current beta operating system release, the Energy Report shows the thermal conditions of the device. (52349364)
  • Debugging is available for on-device previews. (47668840, 51139546)
  • The Environment Overrides button appears in the debug bar for watchOS and iOS app extension targets without you needing to pause the process first. (51203640)
  • A preview debug session no longer ends when the preview isn’t visible. (50593619)
  • Runtime issue breakpoints added to running processes behave correctly. (49433870)
  • Items in the view debugger can be revealed in the Debug navigator from the context menu. (18598643)
  • Improved the formatting of Swift class names when debugging the view hierarchy. (39679411)
  • Fixed an issue where the debug console would display a page column guide. (49693398)
  • Breakpoints support the VoiceOver command to open the shortcut menu. (44940944)


Deprecations

  • The WatchKit framework is no longer included in the iOS SDK. If you’re using WatchKit APIs from iOS, you need to remove this use. The WatchKit framework remains available on watchOS. If you’re using WatchKit APIs from iOS to infer availability of features on the paired Apple Watch, include information about your use case when you submit feedback to Feedback Assistant. (49707950)
  • Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. In future versions of macOS, scripting language runtimes won’t be available by default, and may require you to install an additional package. If your software depends on scripting languages, it’s recommended that you bundle the runtime within the app. (49764202)
  • Use of Python 2.7 isn’t recommended. This version is included in macOS for compatibility with legacy software. Future versions of macOS won’t include Python 2.7. Instead, it’s recommended that you run python3 in Terminal. (51097165)
  • The Quartz Composer framework is deprecated. Starting in macOS 10.15, the Quartz Composer framework will be marked as deprecated and remain present for compatibility purposes. Transition to frameworks such as Core Image, SceneKit, or Metal if your app is using Quartz Composer. (50911608)
  • Command line tool support for Subversion — including svngit-svn, and related commands — is no longer provided by Xcode. If you need Subversion or related command line tools, install the Command Line Tools package by running xcode-select --install. (50266910)

Devices

Known Issues

  • Testing using xcodebuild might cause a crash when running to multiple destinations concurrently. (52962341)Workaround: Disable concurrent destination testing by passing the -disable-concurrent-destination-testing flag to xcodebuild.
  • Specifying a run destination using a device or simulator name from xcodebuild doesn’t resolve correctly. (52081230)Workaround: Specify the destination by platform and ID instead of the name.
  • Building and running a watchOS app on a device might show a system spinner indefinitely. (51726238)Workaround: Reboot the device.

Resolved Issues

  • Resolved an issue that prevented running a watch app built with the thread sanitizer enabled on older versions of watchOS. (49288795)
  • Resolved an issue with half point frame differences caused by switching between Retina and non-Retina monitors. (20175879)

DriverKit

Resolved Issues

  • DriverKit drivers build properly. (52858797)

Instruments

New Features

  • Tracks in Instruments can now be formed in hierarchies. They can now represent any engineering type and are created using Custom Instruments. (28615789)
  • Instruments now allows for copying multiple rows from a table at one time. (39326522)
  • Instruments allows for creating scopes for easier navigation within the trace document. (49022012)
  • <os-signpost-point-schema> is available in the Custom Instruments to match point events coming from os_signpost(_:dso:log:name:signpostID:). (50586708)

Known Issues

  • When profiling a standalone watchOS app, an iOS simulator is launched. (49788679)

Resolved Issues

  • The selected track is rendered in the Touch Bar area of Instruments. (50186374)
  • When profiling on a device running iOS, iPadOS, watchOS, or tvOS, Instruments uses the correct category for os_log(_:dso:log:_:_:) and os_signpost(_:dso:log:name:signpostID:) messages received from it. Points of interest now receive events properly and custom instrument category matching behaves correctly. (52193505)

Interface Builder

New Features

  • Interface Builder supports iOS 13 UIVisualEffectView blur and vibrancy visual effects. (48023286)
  • Interface Builder supports iOS 13 UIActivityIndicatorView styles. (48573772)
  • The iOS home indicator color now adapts to light and dark canvas appearances. (48610782)
  • Interface Builder supports customizing UIButton symbol configurations. (51323174)
  • Interface Builder supports the new layout TVCollectionViewFullScreenLayout on Apple TV. (47598895)
  • UIViewController instances now default to the Automatic modal presentation mode. Modal presentation segues can override this setting. (48129590)
  • Interface Builder supports Dark Mode on iOS. (45314199)
  • Interface Builder’s device bar lets you switch between the light and dark appearance for iOS apps. (45282451)
  • You can add SwiftUI hosting controllers, such as UIHostingController, to connect a storyboard controller flow to a hosting controller that manages a SwiftUI view hierarchy. You can populate the contents of a hosting controller in Interface Builder by providing a custom subclass that programmatically sets the rootView of the controller. (46039344)You can also set the root view of a UIHostingController or NSHostingControllerusing a Segue Action.
  • The object library now matches the selected system-wide appearance. (50874168)
  • The NSStackView inspector now allows configuring negative spacing. (49012055)
  • NSSwitch is available when running on macOS 10.15. (47566686)
  • Cells in a UITableView can now self size with Auto Layout constrained views in the canvas. To opt into the behavior for existing table views, enable “Automatic” for the table view estimated item size, and “Automatic” for cell’s height in the Size inspector. (35735970)
  • NSView and UIView have a layout mode option in the Size inspector to explicitly opt into “translates autoresizing mask into constraints”. The default setting is “Automatic”, which is the existing behavior. “Automatic” implies that “translate autoresizing mask into constraints” is off when a view affect by constraints in the storyboard or .xib file, but on if unconstrained. (37352354)
  • Improved the reliability of Auto Layout constraint generation with “Add Missing Constraints”. (43694622)
  • The contents of a UIScrollView are scrollable within the canvas, once its subviews are fully constrained with Auto Layout constraints. (44727961)
  • Cells in a UICollectionView can now self size with Auto Layout constrained views in the canvas. To opt into the behavior for existing collection views, enable “Automatic” for the collection view’s estimated size, and “Automatic” for cell’s size from the Size inspector.
If deploying before iOS 13, you can activate self sizing collection view cells by calling performBatchUpdates(_:completion:) during viewDidLoad(). (45617083)
  • In inspector font popovers, the Family popup now renders menu items as a preview of the applicable font. (31484154)
  • Update Frames can now be performed document-wide for misplaced frames, without selecting a view. (22076710)
  • Content and Frame Layout guides are supported for UIScrollView and can be enabled in the Size inspector for more control over your scrollable content. (29711618)
  • Interface Builder supports the new Apple TV tab bar style. (47598643)
  • The new WKInterfaceTextField interface element is available for watchOS. (45754186)
  • The canvas supports customizing interfaces for Mac Catalyst apps. (37797710)
  • SF Symbols are available in image inspector properties. (47532055)
  • The UIImageView inspector includes support for configuring symbols. (47797500)
  • A view controller method annotated with the new @IBSegueAction attribute can be used to create a segue’s destination view controller in code, using a custom initializer with any required values. This makes it possible to use view controllers with non-optional initialization requirements in storyboards. Create a connection from a segue to an @IBSegueAction method on its source view controller. On new OS versions that support Segue Actions, that method will be called and the value it returns will be the destinationViewController of the segue object passed to prepare(for:sender:). Multiple @IBSegueAction methods may be defined on a single source view controller, which can alleviate the need to check segue identifier strings in prepare(for:sender:). (47091566)An IBSegueAction method takes up to three parameters: a coder, the sender, and the segue’s identifier. The first parameter is required, and the other parameters can be omitted from your method’s signature if desired. The NSCoder must be passed through to the destination view controller’s initializer, to ensure it’s customized with values configured in storyboard. The method returns a view controller that matches the destination controller type defined in the storyboard, or nil to cause a destination controller to be initialized with the standard init(coder:) method. If you know you don’t need to return nil, the return type can be non-optional.In Swift, add the @IBSegueAction attribute:@IBSegueAction func makeDogController(coder: NSCoder, sender: Any?, segueIdentifier: String?) -> ViewController? { PetController( coder: coder, petName: self.selectedPetName, type: .dog ) } In Objective-C, add IBSegueAction in front of the return type:- (IBSegueAction ViewController *)makeDogController:(NSCoder *)coder sender:(id)sender segueIdentifier:(NSString *)segueIdentifier { return [PetController initWithCoder:coder petName:self.selectedPetName type:@"dog"]; }

Known Issues

  • A Segue Action on a relationship segue between a NSWindowController and a View Controller is currently not supported and ignored. (48252727)
  • Older IB3 documents strings won’t be extracted during localization export, and won’t be included in the XLIFF. (47650747)
  • When viewing an iPad storyboard with the Mac device selected in the device bar, custom fonts added by the project don’t render. (48528374)
  • If a glyph has a light and dark mode representation, the dark mode representation won’t be picked up in the storyboard. (50354204)
  • UIKit menus configured in Interface Builder are available at runtime on macOS, but not on iOS. (51077651)
  • The iOS status bar is not displayed in the Interface Builder canvas. (48639919)
  • Projects created with Xcode versions prior to Xcode 11 beta retain their default custom color when opened in Xcode 11 beta. (50828300)

Resolved Issues

  • Connect-to-source popover fields support cut, copy, paste, and select all. (40899355)
  • Fixed an issue that prevented connect-to-source from connecting actions to methods. (53441991)
  • Device bar icons draw correctly with “Use Trait Variations” unchecked. (52848149)
  • TVCardView’s background color inspector menu will list colors other than just Mac system colors. (53122711)
  • Changing global tint color will show in canvas, without needing to reload the document. (53278707)
  • View controller scenes that contain menu commands created with Xcode 11 no longer cause the app to crash when running on iOS 12. (50871098)
  • ARView objects in Apple TV storyboards no longer crash Interface Builder rendering. (50971800)
  • Fixed a compilation issue for storyboards that have a NSCollectionView flow layout item size of NSZeroSize. Xcode will reinterpret the value as the default item size. (53448850)
  • Storyboards and .xib files in iOS or tvOS template projects created with Xcode 11 can now be opened in previous Xcode versions. (51230799)
  • Storyboards and .xib files created with Xcode 11 containing Quaternary System Fill Color, Secondary System Fill Color, Tertiary System Fill Color, or System Fill Color can be opened on older Xcode versions without causing a crash. (51233884, 51236844)
  • Fixed collection view cell self-sizing layout issues coming from storyboards and .xib files when compiling and deploying to iOS 12.4 and later (49537998)
  • Resolved an issue that prevented the light or dark interface style group in the Interface Builder device bar from taking effect when viewing a storyboard for a Mac Catalyst app. (50929581)
  • Corrected the alignment of UILabelUITextField, and UITextView instances with alignment set to “center” or “right” in Interface Builder when designing for or running on macOS. (50062524)
  • Xcode doesn’t crash when opening a .xib file or storyboard file with a custom view that’s marked as IBDesignable if that project contains Swift packages. (50551974)
  • Dragging out a new iOS Main Menu no longer causes a crash if you drag across an existing menu in the canvas. (51237295)
  • Resolved a performance regression associated with opening storyboards and .xib files. (51282755)
  • The inspector for UIDatePicker now shows only the properties applicable to the selected mode. (26726319)
  • The preview editor’s menu for adding iOS devices now matches the current canvas orientation. (48818470)
  • Preview editor items now preserve the configured locale or pseudo-locale. (48303753)
  • UIDatePicker objects configured as Count Down in Interface Builder now use the specified duration at runtime. (23426425)
  • The Embed In bar button is also visible in documents not using Auto Layout. (46855203)
  • Subclasses of NSControl now have unique icons in the library and document outline. (24231920)

Library

Known Issues

  • Fixed an issue where child view controllers had incorrect background colors when dragged from the library. (50388578)
  • All UI controls from the library correctly switch to dark mode. (49830961)

Linking

Resolved Issues

  • Targets containing Swift code with the Enable Bitcode build setting set to Yes link correctly when built with the Archive action. (52804818)

LLDB

New Features

  • 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)
  • Swift Decimal values have a data formatter in LLDB, making them display in a readable way. (38983073)
  • LLDB now supports examining Swift types that are compiled with support for library evolution. (48018240)

Resolved Issues

  • Redeclaring self in Swift code works properly with LLDB. (39611934)
  • The Swift REPL and LLDB’s python scripting work properly when the python binary in PATH isn’t the system one. (40961425)
  • Multiple issues that prevented LLDB from accessing variables while debugging XCTesttests are resolved. (41471338)

Localization

New Features

  • You can now localize assets in asset catalogs. Localization is enabled in the attribute inspector. (12948139)
  • The settings bundle is now included in Xcode Localization Catalogs. (12495197)
  • The manual page for genstrings has documents its behavior in more detail. (19709369)
  • The genstrings tool is enhanced and merged with the extractLocStrings tool. The previous version is deprecated, has been renamed to ogenstrings, and must now be invoked with xcrun. Any scripts that invoked xcrun extractLocStrings should be changed to use genstrings, but a compatibility symbolic link is currently provided that invokes genstrings. (19709395)
  • The genstrings tool now takes an -encoding argument that allows specification of the file encoding for input files. (48224455)
  • The updated version of genstrings has improved error reporting, and may report errors in scenarios that were previously silently accepted. As an example, genstrings MyApp/* will fail if the MyApp directory contains a subdirectory, because genstrings file arguments are required to be source files. (48304658)
  • The genstrings tool can now take any number of -s arguments to specify additional macros similar to NSLocalizedString or functions from which to extract strings. For example, genstrings -s MyErrorSring -s MyUIString myfile.swift treats both MyErrorString and MyUIString as equivalent to NSLocalizedString. (48734596)NoteUsing -s arguments doesn’t suppress support for NSLocalizedString or CFCopyLocalizedString.
  • The Export for Localization command and genstrings tool now support multiline Swift and Objective-C strings, and have relaxed whitespace requirements when recognizing arguments to NSLocalizedString. (50516442)
  • The performance of the Export for Localization command is substantially improved. (40548416)

Resolved Issues

  • The Export for Localization command and genstrings tool no longer crash on escaped, high Unicode code points such as \U0001F603. (18898240)
  • Importing a localized string that contains embedded newlines now produces strings files with escaped \n sequences. (44649979)
  • XLIFF files produced by Xcode localization export now add xml:space="preserve" to <trans-unit /> elements to ensure that whitespace is preserved. (44928807)

Mac Catalyst

Known Issues

  • The color asset variant for Mac Catalyst isn’t passed at runtime. (51113192)
  • The NSDataAsset asset variation for Mac Catalyst returns nil at runtime. (50022757)

Organizer

New Features

  • 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

Known Issues

  • Playgrounds don’t work on machines running macOS 10.14, and playgrounds that use SwiftUI may not work on machines running macOS earlier than 10.15 beta 5. (54054895)
  • Playgrounds in a workspace can’t import targets from a Swift package. (47668990)

Resolved Issues

  • SwiftUI live views and inline results in playgrounds are supported. (42226387)
  • Quick looks and inline result previews of views in UIKit no longer display as blank rectangles. (50787870)
  • The top few lines of a playground no longer become stuck under the top of the window. (47529397)
  • Fixed a delay that could occur when running a playground on macOS 10.15 with a slow or unreliable internet connection. (48995467)
  • Playgrounds no longer crash if your code references a view off of the main thread. (46579594)

Project Navigator

New Features

  • Xcode can find assets in your workspace or project using the Find navigator. The Asset catalog Editor also supports find and replace, and you can rename assets using Replace. (14279237)

Reality Composer

New Features

  • Added support for object anchors in AR scenes. (48774003)

Known Issues

  • A new project that contains a USDz file and was never manually saved will have missing USDz objects when opened after an autosave. (53565602)Workaround: Manually save and re-open the project.
  • Reality Files created by previously released beta versions of Reality Composer or Xcode are no longer supported. (53180175)Workaround: Re-export your Reality Files using the latest version of Reality Composer or Xcode.
  • Objects added from the content library in Reality Composer on macOS are incompatible with build 1A68 of Reality Composer on iOS and iPadOS.
  • The RealityKit ARView class isn’t found at runtime when loading a storyboard if its module isn’t specified in Interface Builder. The following error message displays in the Xcode console: “Unknown class ARView in Interface Builder file.” (50840767)Workaround: ARView is a Swift view class, and requires both its class name (ARView) and module (RealityKit) to be specified in the Interface Builder inspector.
  • RealityKit’s ARView class is not found at runtime when loading a storyboard if RealityKit isn’t otherwise used within the Xcode project. The following error message displays in the Xcode console: “Unknown class _TtC10RealityKit6ARView in Interface Builder file.” (50900969)Workaround: This issue occurs if you import RealityKit and define an @IBOutlet with a type of ARView, but don’t otherwise use RealityKit symbols in your project. To ensure that RealityKit is loaded at runtime with this configuration, manually add RealityKit to your target’s Link Binary with Libraries build phase.

Resolved Issues

  • Improved support for imported USDZ files. (49630946)
  • Improved support for manipulating objects. (50036512)
  • Notification triggers and notify actions from other scenes no longer appear in scenes in which they weren’t authored. (51008577)
  • The .reality file generated automatically by Xcode from a Reality Composer project contains all scenes in the project. (51048599, 51868814)
  • RealityKit is available in iOS simulators. (48603396)

Server

Known Issues

  • When editing bots for a project that authenticates with SSH, Xcode Server may disable some project-specific settings. (51009722)Workaround: Either replace repositories in the Repositories tab when editing the bot or use HTTPS-based authentication with your Xcode Server integrations.
  • Xcode Server can cause a crash when a bot is created from the context menu of any integration. (51082255)Workaround: Create bots from the context menu of the server or from the Product menu in Xcode.
  • Build issues occurring in a source file built by multiple targets may be marked resolved and reintroduced on every integration. (46523551)

Resolved Issues

  • Xcode Server now supports Mac Catalyst apps. (50602873)
  • Swift packages consistently appear in the Xcode Server bot configuration Repositories pane. (50058808)
  • Resolved an issue where Xcode Server failed to automatically sign projects that use the iCloud, Application Groups, Apple Pay, or Wallet capabilities. (41008156, 44704694)

Signing and Distribution

New Features

  • Xcode 11 beta 4 supports the new maccatalyst. bundle identifier prefix. As a result, provisioning profiles used by Mac Catalyst apps must be regenerated to reflect the new prefix. If you’re using automatic signing, a new provisioning profile is generated automatically. If you’re using manual signing, log into your developer account and regenerate the provisioning profiles used by your Mac Catalyst apps. (52535178)If you’re using a previous Xcode 11 beta and already have a provisioning profile for your app, it continues to work until you update to Xcode 11 beta 4. If you don’t already have a provisioning profile for your app, you need to update to Xcode 11 beta 4 in order to generate one with the correct app ID prefix.If your code contains references to your bundle identifier, you will need to update those references.
  • Signing and capabilities settings are now combined within a new Signing & Capabilities tab in the Project Editor. The new tab enables using different app capabilities across multiple build configurations. The new capabilities library makes it possible to search for available capabilities. (35254597)
  • Xcode 11 supports the new Apple Development and Apple Distribution certificate types. These certificates support building, running, and distributing apps on any Apple platform. Preexisting iOS and macOS development and distribution certificates continue to work, however, new certificates you create in Xcode 11 use the new types. Previous versions of Xcode don’t support these certificates. (45527608)

Known Issues

  • If your iPad app uses private entitlements, those entitlements may not be available for use in your Mac Catalyst app. (51599125)Workaround: Generate a new entitlements file for your Mac Catalyst app and exclude the unavailable entitlements by following these steps:1. Select your entitlements file in the project navigator then select File > Duplicate.2. Give your Mac Catalyst entitlements file a unique name and save it.3. Remove any unavailable private entitlements from your new Mac Catalyst entitlements file.4. Navigate to your Mac Catalyst app’s build settings in the project editor and locate the Code Signing Entitlements build setting.5. Expand the build setting so that you can view its value for all build configurations. For each of your build configurations, click the plus (+) button to add a conditional setting.6. From the popup button in each conditional setting, select Any macOS, then edit the conditional setting’s value to refer to the name of your new Mac Catalyst entitlements file.
  • Automatic signing may fail with the error “This request is forbidden for security reasons” when creating a development certificate. (50964225)Workaround: You may have hit a certificate limit for your account. View your Apple Developer account in Safari and revoke any development certificates that you aren’t using, then try again in Xcode.
  • The archive action does not code sign command-line executable products from Swift packages. (48717735)Workaround: Manually sign archived executables using the codesign tool before distributing them.
  • Mac provisioning profiles that you have manually installed using the bot editor’s Signing tab will be installed using the wrong file extension, causing integrations to fail. (47636041)Workaround: Sign into your bot user’s account and rename the affected profiles in the ~/Library/MobileDevice/Provisioning Profiles directory.

Resolved Issues

  • Fixed a code signing issue that caused In-App purchase content bundles to fail to build. (50736776)
  • Resolved an issue where Xcode threw an error when creating new signing certificates for members of the iOS Developer University Program. (50640287)
  • Resolved an issue where Xcode incorrectly reported: “No iTunes Connect access for the team” when uploading to the App Store. (39292849)

Simulator

New Features

  • Simulator can automatically select the macOS GPU based on the current power source. When your Mac is connected to AC power the discrete GPU is used. When your Mac is running on battery power the integrated GPU is used. You can change the policy in Simulator by navigating to File > GPU Selection. (53032365)
  • simctl can now override status bar values for iOS devices. For example, to set the time and battery, use:xcrun simctl status_bar <device> override --time "9:41" --batteryState charged --batteryLevel 100 See xcrun simctl help status_bar for the full range of options. (51697821)
  • 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.
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)
  • 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. (49428617)
  • CAMetalLayer is available in iOS 13 and tvOS 13 simulators. (45101325)
  • 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)
  • simctl now accepts short aliases for runtime names. This means you can create a new iPhone X simulator with a command like simctl create 'iPhone X' iOS13. (41089607)
  • For headless and continuous integration scenarios, you can configure CoreSimulator to skip compositing operations in the virtual frame buffer by setting defaults write com.apple.CoreSimulator FramebufferServerRendererPolicy to none. In this mode simulators can’t be viewed and simctl io is unable to take screenshots or record videos. (48264341)
  • Bundles without a CFBundleVersion are invalid and can’t be properly installed on devices or simulators. CoreSimulator now checks and rejects such bundles earlier in the process with a clearer error message. (49892531)
  • The Simulator dock icon now includes a menu to quickly boot a simulator. (43067512)
  • Simulator’s File menu now includes a GPU selection menu to control which GPU is used by Metal support in simulators and for compositing by Simulator’s virtual frame buffer. If the Use External GPU When Available item is checked, any simulators booted after an external GPU is connected use the external GPU. If the external GPU is disconnected, any simulators using it automatically shut down. Changes to these settings only take effect when a simulator is booted. Simulators already booted when this setting is changed continue using the previously selected GPU until they’re restarted. (46134036)
  • Game controller input is available in iOS simulators. (50082777)

Known Issues

  • Some clipboard-related actions in other applications may occasionally cause Simulator to crash or become unresponsive when automatic pasteboard synchronization is enabled. (54011137)Workaround: Disable “Automatically Sync Pasteboard” in Simulator’s Edit menu. Restart Simulator to recover from an unresponsive state.
  • Changing the audio in a simulated device while a video is playing in Safari will mute the audio of the video. (51207286)
  • Simulator doesn’t distribute the load if multiple GPUs in a system match the chosen GPU policy. Only the first matching GPU, as returned by MTLCopyAllDevices(), is used. (50608554)Workaround: You may see higher performance by locating the simulator window on the display directly connected to the GPU the simulator is using, which avoids copying across GPUs.NoteAs with any app that leverages the GPU, the performance behavior for an externally connected display varies depending on workload.
  • Video recording of the iOS 13, tvOS 13, and watchOS 6 simulator through xcrun simctl io <UDID> recordVideo returns an error instead of recording video. (50625716)
  • watchOS simulators don’t honor a breakpoint on a cold boot. (51148192)Workaround: Completely boot the simulator before launching the app you’re debugging.

Resolved Issues

  • Automatic pasteboard synchronization now functions correctly for all Simulators running iOS 11.1 and newer. (53231481)
  • Invoking Send Pasteboard immediately after Get Pasteboard in Simulator no longer causes devices to become unusable. (52866417)
  • Fixed the ability to override cellular bars with simctl. (51698044)
  • The Rotate Device Automatically option in Simulator works with iOS 13 simulators. (51147050)
  • Simulator delivers game controller events to simulated devices when Simulator isn’t the foreground app on macOS Catalina 10.15. (51759699)
  • Fixed an issue that caused simulators to stop presenting frame updates to the screen. (51993678)
  • Simulator correctly displays the checkmark for Touch ID > Enrolled when it’s enrolled. (50553667)
  • Automatic synchronization of pasteboards between a host and simulated devices behaves correctly. (46686100)
  • Safari’s Share to Simulator behaves correctly. (49331693, 49416352)
  • Resolved a leak of IOSurface instances in processes in Simulator on macOS 10.14.5 and earlier. (50880827)
  • iCloud sync is available in iOS simulators. (50924245)
  • iOS 13 simulators don’t have a simulated display connected when TVOut is configured as “disconnected”. (50829453)
  • iOS simulators color match Metal content to the display’s color space. (50625671)
  • Resolved an issue that caused Core Image shaders using Metal to fail to run on iOS 13 simulators, with the error “Metal DAG compiler disabled.” (51521248)
  • Game controllers work properly with iPad simulators. (51034639)
  • Resolved an issue that prevented simulator devices running versions of iOS prior to iOS 13 from rendering the display correctly. (50963987)
  • IOSurface is now functional in iOS 13, watchOS 6, and tvOS 13 simulators. (11051639)
  • Apps in a simulator that plays audio no longer automatically also open the microphone for input. (32406954)
  • The previously deprecated availability field in simctl list’s JSON output is removed. Use the isAvailable Boolean field to determine availability. (45142676)
  • ATSC texture formats are supported by transparently decompressing them on the CPU prior to uploading them to the macOS GPU. (51347811)

Source Control

New Features

  • You can now cherry-pick changes from one branch to another. (18285039)
  • When cloning a new repository, you can now select the branch to check out from the list of available branches. (41122122)
  • Using the new source control file inspector, you can browse the full history of a file for the current branch. The log inspector is available for all file types, including Interface Builder documents. (45109443)
  • You can now stash changes and manage stashes from the source control navigator. Additionally, Xcode offers to automatically stash and restore changes for source control operations like pulling from a repository. (8797804)
  • Source control authors are now available on a per-editor basis. (45108927)

Known Issues

  • When performing a Pull in Xcode on a branch that’s already up to date when rebase is enabled, the sheet doesn’t dismiss automatically. (50377240)
  • Viewing the changes for a revision of a file from the source control log inspector may fail if that file has since been renamed. (49673170)
  • Filtering packages in the Add Package assistant isn’t supported for Bitbucket Cloud or Bitbucket Server hosted accounts. (47290085)
  • Filtering packages in the Add Package assistant isn’t supported for GitLab or GitLab Self-Managed hosted accounts. (47290125)
  • When using xcodebuild, resolving packages may fail to verify SSH fingerprints unless that fingerprint is already in the ~/.ssh/known_hosts file. (50686014)Workaround: SSH into the host and verify the fingerprint from the command line before using xcodebuild, or manually add the host fingerprint to the ~/.ssh/known_hostsfile.

Resolved Issues

  • Source control status in the file navigator will reflect the same information as git statusfrom the terminal. (14986450)
  • Improved the display of source control information when the Package.swift file is selected in the project navigator. (50696823)
  • Pulling with rebase no longer fails if author information isn’t yet configured for Git in Preferences > Source Control. (48680076)
  • Resolved issues where hosted account providers like GitHub and BitBucket were unavailable in the add account sheet, and previously added accounts would be disabled. (47645098)
  • Addresses an issue where source control operations in Xcode presented a “Couldn’t communicate with helper application” dialog. (47227781)
  • Fixes a performance issue where Personal, organizational and Starred repositories took a long time to load. (48620126)
  • Addresses an issue where user avatars from GitHub didn’t always load after adding a GitHub account. (48698029)
  • Fixes a bug where some source editor menu options were unavailable in the Code Review Editor. (48774008)

Source Editor

New Features

  • Semantic highlighting, code completion, live issues, symbol search, and jump-to-definition are now supported for the Metal shading language. (45144204)
  • Introduces the ability to view inline code diffs for changes in the Source Editor by clicking on the Source Control Change Bar and choosing Show or Hide Change. (49073551)
  • Added new High Contrast (Dark) theme and High Contrast (Light) theme. Also added new settings for Marks, Type Declarations and Other Declarations. (50036007)
  • Added dedicated syntax coloring for declarations in Swift files, which can be customized in Preferences > Fonts & Colors under Type Declarations and Other Declarations.
Declaration coloring for C-family languages isn’t supported. (10342935)
  • Xcode’s source editor now supports spell checking. (32062963)
  • 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)
  • Added syntax highlighting for markup in documentation comments and playground markup. You can customize the prose font in Preferences > Fonts & Colors under Documentation Markup, and customize delimiter appearance in Preferences > Text Editing > Display. (42941263)
  • Toggle Comments supports multiple cursors. (44319433)
  • When dragging and dropping text, space is opened up between lines to make it easier to see where text will be dropped. When dragging full lines, Xcode only allows drops to occur between other lines. (44735912)
  • The editor allows hierarchical code folding. (47502128)
  • Code folding supports square brackets, and parentheses. (50460404)
  • // MARK: comments and #pragma mark directives now draw a separator line in the editor. The preference for showing mark separators is in Preferences > Text Editing > Display > Show Mark Separators. (7299224)

Resolved Issues

  • NSProgressIndicator objects now preserve the current value configured in the inspector when built and run. (43257511)
  • C++ operator overloads are shown in the Jump Bar. (50841460)
  • Resolved an issue where Xcode erroneously opened an assistant editor when you ran Fix All Issues using a keyboard shortcut. (37995114)
  • Added dedicated syntax coloring for // MARK: comments and #pragma markdirectives, which you can customize in Preferences > Fonts & Colors > Mark. (22114159)
  • You can command-click on Swift operators to use Quick Help and Jump to Definition. (32695862)
  • Resolved an issue that could occur when editing an unclosed block in Objective-C. (48201424)
  • Resolved an issue where code completion sorted deprecated symbols ahead of their nondeprecated counterparts. (38422586)
  • Resolved an issue where code completion rows appeared empty when deleting text. (48621410)
  • Resolved an issue where C++ functions weren’t parsed correctly when using throw or noexcept clauses. (37682611)
  • Accessibility Zoom focus now follows the insertion point in the source editor while typing. (32775118)
  • VoiceOver doesn’t repeat the previous line when moving by line in the source editor. (34334763)
  • VoiceOver has rotors in the source editor for methods, errors, warnings, breakpoints, and marks which makes it easy to search for and move to the line of code corresponding to an error or other rotor item. (34493080)
  • VoiceOver text attributes now include the number of spaces, number of tabs, indent level and line number for a line of code in the source editor. (34607795)
  • VoiceOver no longer speaks extra characters around placeholder tokens when reading in the source editor, and says that they are placeholders. (44941610)
  • Resolved an issue where C++ raw strings didn’t highlight correctly. (10770485)
  • Resolved an issue of issues where C++ class declarations didn’t parse correctly when using qualified names, templates, or multiple inheritance. (11286215)
  • Resolved an issue where local classes nested inside functions or methods weren’t shown in the jump bar. (13337638)
  • Resolved an issue where C++11 trailing return types weren’t properly recognized. (13634062)
  • Resolved an issue where C++ typed enums were not parsed correctly. (13693443)
  • Improved the parsing of declarations that use availability macros and attributes. (14569168)
  • Resolved an issue where C++ numeric literals with single quotes were not recognized. (18121031)
  • Resolved an issue where struct member functions were not parsed correctly. (27946356)
  • Resolved an issue where enum declarations were not displayed in the Jump Bar correctly. (32518576)
  • Improved the recognition of classes and functions in JavaScript. (42537831)
  • Resolved an issue where functions returning enum types were not parsed correctly. (46164630)
  • Resolved an issue where unsigned and long integer literals were not syntax colored correctly. (47138177)
  • Updated JavaScript syntax highlighting to include ECMAScript 6 keywords. (47354463)
  • Fixed an issue where double clicking on a C++ destructor name would also select the tilde (~). (6368356)


Static Analyzer

New Features

  • The static analyzer checks for violations of the MIG calling convention in mach server routines. These violations can lead to use-after-free vulnerabilities. (35380337)
  • The static analyzer checks for violations of IOKit and libkern reference counting rules with respect to out-parameters. (46357478)
  • The static analyzer checks for violations of DriverKit reference counting rules. These violations can lead to leaks and use-after-free issues. (50349513)

Swift

New Features

  • The @frozen attribute for structures and enumerations is now available. (36597490)
  • The memberwise initializer for structures now provides default values for variables that hold default expressions. (SE-0242, 47130624)struct Dog { var name = "Generic dog name" var age = 0 // The synthesized memberwise initializer init(name: String = "Generic dog name", age: Int = 0) } let sparky = Dog(name: "Sparky") // Dog(name: "Sparky", age: 0)
  • An @autoclosure parameter can now be declared using a type alias. (SR-2688, 50560849)class Foo { typealias FooClosure = () -> String func fooFunction(closure: @autoclosure FooClosure) {} }
  • Methods declared using the @objc attribute inside a class can now return Self. (SR-7601, 50560991)class MyClass: NSObject { @objc func clone() -> Self { return self } }
  • Key path expressions can now include references to tuple elements. (50562288)
  • Single-parameter functions that accept values of type Any are no longer preferred over other functions. (50562333)
  • Conversions between tuple types are now fully implemented. Previously, the following would diagnose an error. (SR-2672, 12340004)let values: (Int, Int) = (10, 15) let converted: (Int?, Any) = values
  • You can now declare and use type subscripts, just like type properties and type methods. Declare one by applying the static or, in classes, class modifier to the subscript declaration. (SE-0254, 16555559)// Declare a type with a static subscript: enum ProcessEnvironment { static subscript(name: String) -> String? { get { getenv(name) } set { setenv(name, to: newValue) } } } // Use it with any of these syntaxes: ProcessEnvironment["PATH"]! += ":/usr/local/bin" ProcessEnvironment["PATH"]! += ":/usr/local/bin" someVarOfProcessEnvironmentDotType["PATH"]! += ":/usr/local/bin" Type subscripts can also be used with dynamic member lookup to create dynamic type properties.// Declare a type with a static subscript: @dynamicMemberLookup enum ProcessEnvironment { // …As above… static subscript(dynamicMember name: String) -> String? { get { self[name] } set { self[name] = newValue } } } // Now you can use property syntax with ProcessEnvironment: ProcessEnvironment.PATH! += ":/usr/local/bin" ProcessEnvironment.self.PATH! += ":/usr/local/bin" someVarOfProcessEnvironmentDotType.PATH! += ":/usr/local/bin"
  • Assigning Optional.none to an enumeration that also has a none case, or comparing such an enumeration with Optional.none now produces a warning. Such expressions create an ambiguity because the compiler chooses Optional.none over the none case defined by your own enumeration. (SR-2176, 26126801)enum Foo { case none } // Assigned Optional.none instead of Foo.none. let foo: Foo? = .none // Comparing with Optional.none instead of Foo.none. let isEqual = foo == .none The compiler provides a warning along with a fix-it to replace .none with Optional.none or Foo.none to resolve the ambiguity.
  • Functions can now hide their concrete return type by declaring what protocols it conforms to, instead of specifying the exact return type:func makeACollection() -> some Collection { return [1, 2, 3] } Code that calls the function can use the interface of the protocol, but doesn’t have visibility into the underlying type. (SE-0244, 40538331)
  • Enum cases can now be matched against an optional enum without requiring a ‘?’ at the end of the pattern. (SR-7799, 41494702)enum Foo { case zero, one } let foo: Foo? = .zero switch foo { case .zero: break case .one: break case .none: break }
  • The existing @dynamicMemberLookup attribute now supports typed key path implementations. (SE-0252, 49069813)struct Point { var x, y: Int } @dynamicMemberLookup struct Box<T> { var v: T init(_ v: T) { self.v = v } subscript<U>(dynamicMember member: KeyPath<T, U>) -> U { get { return v[keyPath: member] } } } var box = Box(Point(x: 0, y: 0)) _ = box.x
  • You can now use the Self expression to refer to the innermost nominal type inside structure, enumeration and class declarations. For example, the two method declarations inside this structure are equivalent:struct Box<Value> { func transform1() -> Self { return self } func transform2() -> Box<Value> { return self } } In classes, Self is the dynamic type of the self value, as before. Existing restrictions on Self in declaration types still apply; that is, Self can only appear as the return type of a method. However, Self can now be used inside the body of a method without limitation. (SE-0068, 17892696)
  • Array and ContiguousArray now have the init(unsafeUninitializedCapacity:initializingWith:) initializer, which provides access to the array’s uninitialized storage. (21880692)
  • 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-8546SR-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() }() }

Known Issues

  • If a type has the same name as its containing module, importing that module from a module interface might fail. (19481048, 48445154)Workaround: Rename the type so it no longer conflicts with the module name.

Resolved Issues

  • The Swift compiler properly accepts an optional stored property with a property wrapper and no initializer expression. (53504653)
  • Duplicate tuple element labels are no longer allowed, because it leads to incorrect behavior. (SR-8974, 45218256)The following is now diagnosed as an error:let dupLabels: (foo: Int, foo: Int) = (foo: 1, foo: 2) enum Foo { case bar(x: Int, x: Int) } let f: Foo = .bar(x: 0, x: 1) You can still use duplicate labels when declaring functions and subscripts, as long as the internal labels are different. For example:func foo(bar x: Int, bar y: Int) {} subscript(a x: Int, a y: Int) -> Int {}
  • Declarations with opaque return types that require the Swift 5.1 runtime in iOS 13, macOS 10.15, watchOS 6, or tvOS 13 are enforced by the Swift compiler. (50731151)
  • APIs deprecated before macOS 10.9 show up properly as unavailable when compiling with Require Only App-Extension-Safe API build setting. (51417764)
  • The Swift REPL works properly when launched from Terminal. (51374106)
  • The compiler no longer crashes if a type uses an opaque return type to satisfy an associated type requirement of a protocol and that associated type is referred to by name inside another generic declaration. (50509030)
  • Static libraries are now always force-loaded in their entirety during linking, fixing runtime errors related to demangling failures. (47598583)
  • weak and unowned stored properties no longer inhibit the automatic synthesis of Equatable or Hashable conformance. (SR-9827, 50566123)
  • If symbols in a crash log aren’t properly demangled, run the swift-demangle command and pass in the content of the crash log. (34920390)

SwiftUI

Known Issues

  • Switching the run destination when using Xcode previews will continue to show the old device in the canvas until another preview update is made. (54006837)Workaround: After switching the run destination, make a simple change to your code to refresh the preview with the newly selected device.
  • Deploying SwiftUI previews to a device in a project with a deployment prior to iOS 10 will fail, even if the device is running iOS 13. SwiftUI previews can only be deployed to devices when the deployment target of the project is iOS 10+, and the device is running iOS 13. (52121546)
  • Opening the same file in a new window and then closing that window causes previews in the first window to error. (47619828)Workaround: Click “Try Again” in the first window when the error appears.
  • Preview providers that are defined in projects which don’t have -DDEBUG set for OTHER_SWIFT_FLAGS and wrapped in #if DEBUG don’t display in the canvas. That happens, for example, in Objective-C apps which that never had occasion to specify OTHER_SWIFT_FLAGS. (51138834)Workaround: Remove the #if DEBUG and #endif from around the PreviewProviderdeclaration.
  • With Xcode 11 beta 6, previews are only available on macOS Catalina 10.15 beta 5 or later. (52059562)
  • The software keyboard doesn’t appear in previews. (35615536)
  • Code changes you make while running an on-device preview might display the Home screen briefly while the app relaunches. (48208765)
  • Pinching to zoom is unavailable in live previews. (51183125)Workaround: Exit live mode or use the zoom controls in the canvas or editor menu.
  • Static previews for iOS, tvOS, and watchOS don’t support SceneKit, MapKit, and Metal views, and experience a delay when rendering updates. (50965310)
  • Drag and drop operations that result in insertions of containers around an existing view and a new sibling in the container don’t work if the existing view is at the top level of a conditional statement in a view builder. For example, you can’t drop an HStack or VStackaround the Text. (50300406):var body: some View { VStack { if true { Text("Hello World") } } } Workaround: Embed the existing view into a container — either in the canvas or the source editor — then drop the new view into that container.
  • Previews in packages always perform a full build of the active scheme. (51030302)
  • Dragging a Text modifier onto text in the canvas that already has a View modifier such as frame(width:height:alignment:) results in a compilation error. (50712235)Workaround: Reorder the modifiers so that modifiers specific to Text appear before any View modifiers.
  • HStack and VStack inspectors don’t support custom layout guides. (49710501)Workaround: Use the source editor for custom layout guides.
  • The attribute inspector doesn’t allow specifying flexible frames. (51310989)
  • Entering live preview mode in the canvas might take several seconds the first time. (46505269)
  • Previews may fail or update incorrectly when switching between files. (50841287)Workaround: Add a newline to the end of the active file, then click Resume in the banner that appears.
  • The attributes inspector stays visible after the canvas closes, gets stuck on the last selected item, and doesn’t function. (50958316)Workaround: Reopen the canvas or switch to a different file.
  • Previews don’t work for macOS apps with App Sandbox enabled. (51088926)
  • Previews don’t appear in the canvas for private and fileprivate structures that conform to PreviewProvider. (47011316)Workaround: Remove the private or fileprivate access control from your conforming type.
  • Previews might take several seconds to update when switching devices in the run destination selector the first time. (47562171)
  • Previews might temporarily show the incorrect device chrome when switching devices using the run destination from the Scheme pop-up menu. (49496647)
  • The canvas doesn’t support focus. (50275735)
  • Undo is unavailable in the canvas. (49651153)Workaround: Bring the source editor into focus and perform the undo there.

Resolved Issues

  • Previews now automatically stay pinned when debugging a preview and switching files. (53464810, 53206649)
  • Previews can now be used when the custom view is defined in a watchOS framework. (51683662)
  • Fixed an issue where default UITextField text colors weren’t migrated to “Label Color”. (52262491)
  • Improved handling of types with the same name as a system type. (51531683)
  • Preview inspectors render with the system font. (52473187)
  • Fixed a crash that could occur when trying to show a preview on-device with multiple devices plugged into your Mac. (52545102)
  • Fixed a crash that could occur when inspecting a view hierarchy containing SwiftUI views. (52857304)
  • Fixed a crash that could occur when enabling or disabling a live preview. (52083572)
  • Resolved an issue where Apple Watch previews displayed black text on a black background. (51676439)
  • Previews continue working after changing filenames without needing to switch to a different file and switch back. (51708183)
  • Previews respect conditional compilation blocks surrounding imports. For example, you can conditionally import UIKit guarded on #if canImport(UIKit). (51545182)
  • The availability attributes that you apply to types and methods are respected by previews. When the deployment target doesn’t include SwiftUI — that is, the deployment target is before iOS 13, macOS 10.15, watchOS 6, or tvOS 13 — you can now view previews for views and view controllers using UIViewRepresentable instances and UIViewControllerRepresentable instances. To do so, add the appropriate availability attributes to your view representable types and PreviewProvider conformances, such as @available(iOS 13.0, *). (51493428)
  • Named colors are editable in the Attributes inspector. (51287606)
  • Using withAnimation(_:_:) to change state in a root view displays properly in live previews. (51164838)
  • Animations stay in their context in live previews, and live previews match on-device previews. (50708417)
  • Resolved an issue that prevented watchOS previews from working if a device paired with Apple Watch was selected in the run destination chooser. (50861269)
  • Fixed a crash that could occur when selecting and then re-selecting a named color in the Color inspector. (51304163)
  • When running on Apple Watch Series 3, apps built using SwiftUI no longer behave as if they are running on Apple Watch Series 4. (50678109)

SwiftUI Tutorials

Known Issues

  • Using the Path structure may cause your app to crash if you’re using the SDKs included in Xcode 11 beta 5. As a result, you may be unable to successfully follow the steps in the Drawing Paths and Shapes tutorial. (53523206)

Swift Packages

Known Issues

  • There is no explicit command-line option to build a Swift Package using xcodebuild. (45575820)Workaround: Run xcodebuild -workspace . in the directory containing the Package.swift file.
  • Previews aren’t supported for standalone packages. (51072409)
  • Swift packages don’t support adding resource files — such as images, storyboards, or audio — in a target. (SR-2866, 33389529)
  • Swift packages don’t support processing localized strings files. (48190792)
  • Moving a local package in a project will convert it into a folder reference. (50320585)
  • A package product that is linked into both app and its test target results in duplicated symbols. (50348625)Workaround: Link a package product only in the app or test target.
  • The scheme that’s autogenerated for a Swift package isn’t automatically updated when the package adds or removes targets. (50586754)Workaround: Delete the scheme from the swiftpm/xcode/xcshareddata/xcschemes directory inside the package directory, then reopen the package to automatically generate a new scheme.
  • Targets of a Swift package build with debug-conditional settings if the build configuration selected in the scheme is not named Debug or Release. (50696202)
  • Removing a local package reference from a workspace removes its package products from all Xcode targets in the workspace, even when other references to that local package remain in the workspace. (50706448)Workaround: Add package product references back to the relevant targets.
  • Previewing code in Swift packages which are not referenced by the active scheme and not being linked into an app target is not supported and shows an incorrect error message. (50909384)
  • Test targets of newly-created Swift packages fail to build for watchOS because XCTest is unavailable on watchOS. (51054894)Workaround: Surround any code in watchOS test targets which references the XCTest framework or its APIs with conditional compilation statements. For example:#if !os(watchOS) // XCTest code #endif
  • WatchOS apps which are embedded in an iOS app will not build successfully if they depend on any system library targets from Swift packages. (54579347)Workaround: Add the watchOS app explicitly to the scheme being built, clean the build folder and build again.

Resolved Issues

  • Searching for package repositories in the Add Package Dependency sheet complete when there are no search results. (51223367)
  • Code completion works for Swift package targets regardless if the name of the target declared in the Package.swift manifest file differs in casing with the directory name for that target. (49648458)
  • Adding a new file in a C-family target of a Swift package doesn’t create the file with the .swift extension. (31395814)
  • Swift packages that use unsafeFlags build settings can’t be used as a dependency. (50354068)
  • The XCTUnwrap API is available when building Swift package tests using the Swift Package Manager. (51115369)
  • Xcode no longer crashes if a local package overrides a remote package in a project and the local package has an unsatisfiable package dependency. (51183216)

Templates

Known Issues

  • The code in the iOS File Provider application extension template that is included in Xcode 11 beta 6 is incompatible with the APIs in the SDK. This causes newly created File Provider application extension targets to fail to build. (53715509)Workaround: Use Xcode 10.3 to create new File Provider application extensions.

Testing

New Features

  • The test plan editor now supports selecting a target to use when expanding build setting variables in command-line arguments and environment variable entries. (51841050)
  • Support for writing XCTest UI tests that interact with SwiftUI views. (35224680)
  • Test Plans are a new way to manage which tests run, and how those tests run. Schemes can reference multiple test plans, and define a default test plan for automation. A new Test Plan editor supports defining test configurations, which can inherit shared settings from the plan itself. Running tests in Xcode now runs tests across all test configurations. The Source Editor test diamonds are updated to support running a test in a single configuration, and the Test Navigator is updated to allow choosing the active test plan. Test reports are updated to support displaying results generated by a test plan. (16138582)
  • 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 XCTClockMetricXCTOSSignpostMetricXCTCPUMetricXCTMemoryMetric, 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) } }
  • Added an assertion function, XCTUnwrap, for use in Swift tests. XCTUnwrap asserts that an Optional variable’s value is not nil, returning its value if the assertion succeeds. This removes the need to combine XCTAssertNotNil(_:_:file:line:) with either unwrapping the value or dealing with conditional chaining for the rest of the test. For example:func testFirstNameNotEmpty() throws { let forenames: [String] = customer.forenames let firstName = try XCTUnwrap(forenames.first) XCTAssertFalse(firstName.isEmpty) } XCTUnwrap is a throwing assertion, and is best used in a throwing test method as in the above example. (30667432)
  • xccov now supports being passed result bundles directly, in addition to raw report and archive files. For example, to view the coverage report within a result bundle, invoke xccovas follows: xccov view --report /path/to/result_bundle.xcresult. (50500789)
  • The format of result bundles changed in Xcode 11. A result bundle is an asset produced by Xcode 11 with the xcresult file extension that contains information about the build, tests, code coverage, and more. Any xcresult files produced with Xcode 10 or earlier cannot be read by Xcode 11. A result bundle can be produced by passing -resultBundlePath ./Example.xcresult to an xcodebuild invocation and the Example.xcresult can then be opened in Xcode. Xcode also creates result bundles in Derived Data. The current result bundle version number is 3, which can be specified by passing the xcodebuild flag -resultBundleVersion 3. Version 3 is the default in Xcode 11, but it is still recommended for automation to explicitly pass the flag, so that any potential future versions that become the default do not cause issues to existing tools. Result bundles can be inspected using xcresulttool. A JSON representation of the root object of the result bundle can be exported using xcrun xcresulttool get --format json --path ./Example.xcresult and any nested object, identified by its reference found in the JSON output, can be exported by adding the flag --id REFxcresulttool also provides the description of its format using xcrun xcresulttool formatDescription. (41633595)
  • If a test runs on multiple destinations and fails on some but not others, the test report displays a summary describing the destinations on which the test failed, e.g. “Failed on iPad destinations running iOS 12.0”. (49164968)
  • When running a test or test class via a source editor test diamond, option-clicking the diamond presents a popover that allows the test to be run under a specific configuration in the active test plan (if the test plan has multiple configurations). (46348663)
  • When viewing a test report for tests that ran on multiple destinations (such as an Xcode Server integration, or a result bundle generated by an xcodebuild invocation with multiple destination specifiers), it’s now possible to filter the displayed results by destination. Clicking on the devices button in the scope bar will present a list of the destinations on which the tests ran, including the ability to hide or show only the destinations of interest. In addition, it’s now possible to filter to only those tests that failed on one destination but succeeded on another, via the “Mixed” button in the scope bar. (48981032)
  • Result bundles produced by xcodebuild can now be shared, double-clicked, and opened in Xcode directly. (38620469)
  • Introduces support for writing XCTest-based tests for Mac Catalyst apps. (41530313)
  • Code Coverage is now enabled by default for newly created test plans. (48749597)
  • In UI testing on macOS, mouse moves, including calls to the hover API as well as calls to click, scroll, and other APIs will move the cursor progressively across the screen, just as a user would in real interactions, rather than instantly moving the cursor to the final location. This may cause problems for tests involving UI that is heavily dependent on mouseover behavior. (49430331)
  • The .xctestrun file format is modified for Test Plans to include information about how to perform each test configuration in the plan. When running xcodebuild build-for-testing for a scheme that uses test plans, the generated .xctestrun files use FormatVersion 2 and have a revised property list structure. .xctestrun files generated for schemes which don’t use test plans continue to use FormatVersion 1, and xcodebuild test-without-building accepts either version. (46346053)
  • The Code Coverage setting in the test plan editor doesn’t support selecting individual targets to gather code coverage for. If the test plan was created by converting a scheme to use test plans, and that scheme had individual code coverage targets selected at the time of conversion, those targets are preserved in the resulting test plan but aren’t editable within the plan. (50502861)
  • xcodebuild is enhanced with new options supporting Test Plans. Use the new -showTestPlans option to list all test plans associated with a scheme. Use the new -testPlan <name> option to specify which test plans associated with a scheme to use for testing or building tests. If -testPlan <name> is not specified, xcodebuild test will use the scheme’s default test plan. (46346197)
  • Xcode 11 introduces the option to automatically include screenshots from XCTest in Xcode Localization Catalogs. Enable Localization Screenshots in your test plan or in the scheme editor, then check “include screenshots” when exporting for localization. (28656175)

Known Issues

  • The XCTUnwrap API is only available in primary test bundle targets and not in other libraries or frameworks. (51117167)Workaround: Move any library code that makes use of XCTUnwrap to your primary test bundle target or manually modify the following build settings in affected targets:SYSTEM_FRAMEWORK_SEARCH_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/Library/Frameworks" LIBRARY_SEARCH_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/usr/lib" SWIFT_INCLUDE_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/usr/lib"
  • The test plan editor allows enabling certain combinations of sanitizers and memory diagnostics which are incompatible and should not be simultaneously enabled. For example, Address Sanitizer and Guard Malloc, or Address Sanitizer and Thread Sanitizer. (49739613)Workaround: Don’t configure a test plan with a combination of sanitizers and memory diagnostic settings which are incompatible. If an incompatible setting is inherited in a test configuration by the test plan’s Shared Settings, manually override the setting to disable it for the affected test configuration.

Resolved Issues

  • Schemes which have been converted to use test plans – and have test plan entries in the Build action enabled for actions other than Test (such as Run) – no longer crash with versions of Xcode before 11.0. (53645359)
  • The structured build log in Xcode, and in standalone Result Bundles, shows durations for each step again. (48126238)
  • Fixed an issue that prevented UI test runners from making arbitrary network requests. (52856418)
  • Fixed an issue that prevented launching UI test targets with a name that contained a hyphen directly followed by a digit. (51857798)
  • Editing a test plan that references test targets in a different project than the project that contains the active scheme no longer causes those test targets to be labeled as missing. (50148373)
  • You can run tests in a workspace that contains Swift packages during package resolution. (48719922)
  • Running tests with code coverage enabled correctly produces a coverage report for iOS apps in the simulator and on a Mac. (51091751)
  • Fixed an issue with UI tests for iPad apps on Mac where attempting to interact with elements inside of a table view cell could fail with an error about hit testing. (50745246)
  • The Execute in Parallel checkbox in the test action of a scheme is now enabled for test targets of a Swift package. (47564543)
  • Resolved a crash that could occur while checking for device availability when starting a testing operation. (51245770)
  • Resolved an issue that prevented code coverage reports from being generated for Mac Catalyst apps or iOS apps in Simulator. (51241460)
  • The exists property on XCUIElement now produces test failures in situations where XCTest is unable to inspect the application’s UI — for example, due to the app’s main thread being unresponsive — instead of returning false in those situations. (37359653)
  • The unit test discovery mechanism is more efficient for large projects. The test navigator gets populated faster after reopening a project. (32567980)

TestFlight

Known Issues

  • TestFlight app distribution to Apple TV 4K running tvOS 12.3 or earlier works properly for tvOS apps with a deployment target earlier than tvOS 13. (53017497)
Mastodon