Apple Release Notes
120 release notes curated from 96 sources by the Releasebot Team. Last updated: May 15, 2026
Apple Products
- May 12, 2026
- Date parsed from source:May 12, 2026
- First seen by Releasebot:May 15, 2026
May 12, 2026
App Store Connect updates payments for multiple invoices.
App Store Connect update
Updates made regarding making payments for multiple invoices.
Original source - May 5, 2026
- Date parsed from source:May 5, 2026
- First seen by Releasebot:Apr 15, 2026
- Modified by Releasebot:May 6, 2026
May 5, 2026
App Store Connect now supports uploads built with Xcode 26.5 RC and 26.5 RC SDKs for App Store and TestFlight testing.
App Store Connect update
You can now upload apps built with Xcode 26.5 RC using the SDK for iOS 26.5 RC, iPadOS 26.5 RC macOS 26.5 RC, visionOS 26.5 RC, tvOS 26.5 RC, and watchOS 26.5 RC for the App Store, and for internal and external testing through TestFlight.
Original source All of your release notes in one feed
Join Releasebot and get updates from Apple and hundreds of other software products.
- Apr 30, 2026
- Date parsed from source:Apr 30, 2026
- First seen by Releasebot:May 1, 2026
April 30, 2026
App Store Connect adds TestFlight language, accessibility, and stability improvements.
TestFlight update
TestFlight 4.2 is now available on the App Store for iPhone, iPad, Mac, and Apple Vision Pro. This update includes:
- Added support for 11 new languages for TestFlight on iPhone and iPad: Bangla, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Slovenian, Tamil, Telugu, and Urdu.
- Improvements and bug fixes for accessibility features, including VoiceOver, Voice Control, and Larger Text.
- Stability improvements and bug fixes.
- Apr 28, 2026
- Date parsed from source:Apr 28, 2026
- First seen by Releasebot:Apr 15, 2026
- Modified by Releasebot:Apr 30, 2026
April 28, 2026
App Store Connect now supports TestFlight uploads built with Xcode 26.5 beta 3 for beta 4 SDK testing.
TestFlight update
You can now upload apps built with Xcode 26.5 beta 3 using the SDK for iOS 26.5 beta 4, iPadOS 26.5 beta 4, macOS 26.5 beta 4, tvOS 26.5 beta 4, visionOS 26.5 beta 4, and watchOS 26.5 beta 4 for internal and external testing through TestFlight.
Original source - April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 27, 2026
iOS & iPadOS 16.4 Release Notes
iOS 16.4 adds new developer beta settings, Matter accessory software updates, expanded keyboard support, passkeys and authentication improvements, Apple Pencil hover tilt and azimuth, and richer SwiftUI sheet controls, while also fixing several app and navigation issues.
Update your apps to use new features, and test your apps against API changes.
The iOS & iPadOS 16.4 SDK provides support to develop apps for iPhone and iPad running iOS & iPadOS 16.4. The SDK comes bundled with Xcode 14.3, available from the Mac App Store. For information on the compatibility requirements for Xcode 14.3, see Xcode 14.3 Release Notes.
Backup and Restore
Known Issues
- Watch migration might fail when restoring a backup to a new phone. (105416351)
Workaround: Unpair the watch from the source phone, then pair it to the destination phone.
Beta enrollment for iPhone and iPad
New Features
- Beginning with iOS & iPadOS 16.4 beta, members of the Apple Developer Program will see a new option to enable developer betas directly from Software Update in Settings. This new option will be automatically enabled on devices already enrolled in the program that update to the latest beta release. Your iPhone or iPad must be signed in with the same Apple ID you used to enroll in the Apple Developer Program in order to see this option in Settings. In future iOS and iPadOS releases, this new setting will be the way to enable developer betas and configuration profiles will no longer grant access. (101692915)
Core ML
Deprecations
- Core ML Model Deployment is being deprecated. Consider using Background Assets or NSURLSession instead. (102993813)
Core Telephony
Deprecations
- CTCarrier, a deprecated API, returns static values for apps that are built with the iOS 16.4 SDK or later. (76283818)
Developer Settings
New Features
- Hang Detection stays enabled after rebooting. (105618983)
Home
New Features
- Both manual and automatic Software Update support is now available for Matter Accessories. (102727759)
Known Issues
- The iOS device that initiates the pairing needs to be on the same iCloud account with the home hub. Only the owner of a home, not an invited user, can pair Matter accessories. (76012945)
- You might receive an error when pairing a Matter accessory using the 11 digit setup code. (101554366)
Workaround: Pair the accessory using the QR code instead. - When a manual software update is attempted on a Matter accessory with an available update, Home might not indicate that the update has been requested and continue to indicate an update is available. (104902918)
Workaround: Check the Software Update pane in Home Settings at a later time, as the update might be taking place in the background. - The software update screen for Matter accessories might display the incorrect version number while an update is in progress. (105031569)
- Right after pairing, an available firmware update is not offered in the Home app. (105757029)
Workaround: Reboot all residents. - When there are multiple of the same accessory type updating to the same firmware or if there are back-to-back firmware versions for one accessory (during an incremental update), the new firmware update might not be offered. (105787380)
Workaround: Reboot all residents or unpair the accessory and re-pair by clicking the “More options…” link to pair the accessory from there. - Software updates for Matter accessories might be offered again, even though the update already completed successfully. (106073031)
Workaround: Restart your HomePod and Apple TV devices.
iCloud Drive
Known Issues
- Filesystem APIs such as NSFileManager might trigger materialization of dataless files and/or directory structures in iCloud Drive, leading to hangs or performance problems for the calling application. (105009536)
Workaround: Avoid calling anything which performs I/O on the main thread. Adopt UICollectionViewDataSourcePrefetching and load cells asynchronously. I/O should be wrapped under -[NSFileCoordinator coordinateAccessWithIntents:queue:byAccessor:] to avoid blocking a thread on a synchronous call. Alternatively, opt out of this behavior by setting your IO policy to IOPOL_MATERIALIZE_DATALESS_FILES_OFF but expect that I/O might fail with EDEADLK, if any component of the path is dataless (SF_DATALESS). - iCloud Drive might become unresponsive when opened from the Files app. (105438692)
Workaround: Restart your device. - A loading indicator might appear, and the contents of iCloud Drive might be inaccessible within the Files app. (106232492)
Keyboards
New Features
Updates to Keyboards include:
- Support for new Unicode 15.0 Emoji.
- Autocorrect for the Korean keyboard is enabled by default for testing and feedback.
- Ukrainian keyboard now supports predictive text.
- Gujarati, Punjabi, and Urdu keyboards add support for transliteration layouts.
- New keyboard layouts are available for Choctaw and Chickasaw. (105243233)
MapKit
Resolved Issues
- Fixed: Improved performance of MKOverlay objects. (102187262)
Pages, Numbers, and Keynote
Known Issues
- When Advanced Data Protection for iCloud is turned on, Pages, Numbers, and Keynote might unexpectedly require collaborative documents to be closed. (103463223)
Workaround: Close the affected document, spreadsheet, or presentation and reopen it after a few minutes.
Passkeys and Authentication Services
New Features
- Web browsers on iOS with the com.apple.developer.web-browser entitlement now have passkey AutoFill within their WKWebView. This capability works without requiring any code changes or needing to rebuild. (97576198)
- A new AuthorizationController API allows you to perform passkey and other types of authorization requests from SwiftUI views. (97576703)
- A new WebAuthenticationSession API allows you to perform OAuth and other types of web-based authentication flows from SwiftUI views. (101259868)
Resolved Issues
- Fixed: Conditional mediation requests (passkey AutoFill) in web content don’t abort when their Abort Signal is fired. (99535627)
- Fixed: AutoFill, including AutoFill for passkeys and passwords, now works with input elements contained in a Shadow DOM in web content. (103859657)
- Fixed: Calling PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() or PublicKeyCredential.isConditionalMediationAvailable() from a web page in a WKWebView now correctly returns whether passkeys can be used, based on the Associated Domains of the calling app. (104094169)
Pencil
New Features
- Apple Pencil hover now provides Tilt and Azimuth support. (105412781)
Safari Web Extensions
New Features
- Added support for modifyHeaders action type for declarativeNetRequest rules. (71867709)
- Added support for browser.storage.session to store up to 10MB of data in-memory. (79283961)
- Added support for persistent content scripts via browser.scripting.registerContentScript, browser.scripting.getRegisteredContentScripts, browser.scripting.unregisterContentScripts, and scripting.updateContentScripts. (91261369)
Resolved Issues
- Fixed browser.webNavigation events firing for hosts where the extension didn’t have access. Extensions should request host permissions for sites to receive events. (100204850)
SKAdNetwork
Resolved Issues
- Fixed an issue where SKAdNetwork for Web Ads didn’t accept ad impressions. (104839712)
StoreKit
New Features
- New StoreKit 2 APIs are available for promoted in-app purchases. Apps can receive promoted product purchase data from the App Store with PurchaseIntent.intents and can manage promoted order and visibility with Product.PromotionInfo. (85321849)
SwiftUI
New Features
A family of new view modifiers lets you build even richer resizable sheet experience with SwiftUI. Use these new modifiers to make the view behind a sheet interactive, provide a translucent background, control scrolling and expansion behavior, and even adjust the corner radius of the sheet.
To let people interact with the content behind a sheet, use the .presentationBackgroundInteraction(_:) modifier. The following example enables people to interact with the view behind the sheet when the sheet is at the smallest detent, but not at the other detents:
[Code example omitted for brevity]Give your sheet a translucent background with the new presentationBackground(_:) modifier. The following example uses the thick material as the sheet background:
[Code example omitted for brevity]Add a custom view as the background of your sheet with the presentationBackground(alignment:content:) modifier.
By default, when a person swipes up on a scroll view in a resizable presentation, the presentation grows to the next detent. A scroll view embedded in the presentation only scrolls after the presentation reaches its largest size. Use the new presentationContentInteraction(_:) modifier to control which action takes precedence.
For example, you can request that swipe gestures scroll content first, resizing the sheet only after hitting the end of the scroll view, by passing the .scrolls value to this modifier:
[Code example omitted for brevity]Apply the new .presentationCompactAdaptation(_:) modifier to the content of a modal presentation to control how it adapts to compact size classes on iPad and iPhone.
For example, the popover modifier presents a popover on iPad. By default, a popover adapts to the narrow horizontal size class on iPhone by showing as a sheet. In the example below, the .presentationCompactAdaptation(.none) modifier asks SwiftUI to show this as a popover on iPhone as well.
[Code example omitted for brevity]Use .presentationCompactAdaptation(horizontal:vertical:) to adapt differently in horizontally and vertically compact size classes. (103257577)
Resolved Issues
- Fixed: ScrollView has improved support for right to left languages by default. If you have a ScrollView that shouldn’t change its behavior in right to left languages, use the .environment(.layoutDirection, .leftToRight) modifier to ensure the ScrollView always sees a left to right layout direction. (65108729)
- Fixed: Presentations in SwiftUI using the ‘sheet’ or ‘fullScreenCover’ modifier can now be dynamically presented again while a dismiss animation is in progress. Previously, attempting to present again in this case would do nothing.
Note: A data race in app code that was previously ignored might cause a sheet to be presented again with this change. If this happens, check that your state isn’t triggering a new presentation. (101487810) - Fixed: Refreshable modifiers applied to lists will no longer also apply to lists or scroll views within the content of that list. Re-apply a refreshable modifier to the content of the list if this is desired behavior. (102052575)
- Fixed: The no-argument presentationBackground() modifier has been removed. Use one of the overloads taking an explicit ShapeStyle or View instead. (105598868)
Deprecations
- TimelineView initializers that pass an instance of TimelineView<_, _>.Context into its content closure have been deprecated in this release, and replaced with equivalent versions that pass an instance of TimelineViewDefaultContext instead.
In TimelineView code that does not generate a warning, no action is needed: code that does not explicitly annotate the context type will use the new API when recompiled, without any change in functionality.
In TimelineView code that does show this new deprecation warning, changing type annotations from TimelineView<_, _>.Context to TimelineViewDefaultContext will resolve the warning.
This change improves the performance of compiling Swift and SwiftUI code. The new initializer uncouples the generic type of the TimelineView being instantiated from the generic type of the context passed into its content closure, avoiding the need for the compiler to reconcile those types during compilation. (100641618) - Several table initializers that were previously deprecated and replaced in iOS 16.2 and macOS 13.1 have now been removed from the API. Using these initializers will now generate a build error, with a Fix-It to switch to the replacement initializer API. For code that doesn’t generate this error, no action is needed.
This change, along with other improvements in the Swift compiler, improve the performance of compiling Swift and SwiftUI code.
The new, replacement API adds a parameter, of:, that identifies the type of the Table’s row values separately from the initializer’s row and column content closure parameters. This improves compilation performance in two ways. First, by knowing the row value type up-front, the compiler doesn’t need to infer that type from the body implementations of each closure. Second, the compiler can immediately enforce that each closure uses the same row value type in its body implementation, instead of needing to verify that the inferred types are equal after evaluating each closure.
[Code example omitted for brevity]SwiftUI Navigation
Resolved Issues
- Fixed: Navigation destinations nested within NavigationStack and NavigationSplitView are detected more performantly and reliably, no longer logging update cycles. (97597634)
- Fixed: Navigation destinations that present a new view on top of a NavigationSplitView Column (rather than pushing a view onto a stack in that column) no longer cause an assertion failure on iOS or infinite loop on macOS when the destination view is itself a NavigationStack.
For example, the below construction is functional
[Code example omitted for brevity](103278180)
- Fixed: Navigation destinations with data dependencies captured from ancestor views update more reliably.
[Code example omitted for brevity](103429535)
Wallet
Known Issues
- An error might occur when adding or presenting an ID card. (105302759)
- April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 27, 2026
iOS & iPadOS 16.3 Release Notes
iOS adds iOS and iPadOS 16.2 SDK support for developing apps on iOS and iPadOS 16.3 with Xcode 14.2.
Update your apps to use new features, and test your apps against API changes.
The iOS & iPadOS 16.2 SDK provides support to develop apps for iPhone and iPad running iOS & iPadOS 16.3. The SDK comes bundled with Xcode 14.2, available from the Mac App Store. For information on the compatibility requirements for Xcode 14.2, see Xcode 14.2 Release Notes.
There are no new release notes for this software update.
Original source - Apr 27, 2026
- Date parsed from source:Apr 27, 2026
- First seen by Releasebot:Apr 28, 2026
April 27, 2026
App Store Connect adds monthly subscriptions with 12 month commitment outside the United States and Singapore.
App Store Connect update
You can now offer monthly subscriptions with 12 month commitment outside the United States and Singapore.
Original source - Apr 22, 2026
- Date parsed from source:Apr 22, 2026
- First seen by Releasebot:Apr 23, 2026
April 22, 2026
App Store Connect adds details on tax-related reporting requirements and makes minor editorial fixes.
App Store Connect update
Details on how to provide information for the Provisions on the Reporting of Tax-related Information by Internet Platform Enterprises (State Council Decree No. 810) are now available.
Minor editorial fixes were also made.
Original source - April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 17, 2026
Xcode 26.4.1 Release Notes
Xcode ships 26.4.1 with Swift 6.3 and updated SDKs for iOS, iPadOS, tvOS, macOS, and visionOS. It adds broader on-device debugging support and fixes MetricKit crashes plus Swift compiler stack-allocation bugs in async functions.
Update your apps to use new features, and test your apps against API changes.
Overview
Xcode 26.4.1 includes Swift 6.3 and SDKs for iOS 26.4, iPadOS 26.4, tvOS 26.4, macOS 26.4, and visionOS 26.4. Xcode 26.4.1 supports on-device debugging in iOS 15 and later, tvOS 15 and later, watchOS 8 and later, and visionOS. Xcode 26.4.1 requires a Mac running macOS Tahoe 26.2 or later.
MetricKit
Resolved Issues
- Fixed crash for MetricKit apps built with Xcode 26.4 due to missing symbols when running on iOS, macOS, and visionOS versions below 26.4. Please rebuild your app with the updated Xcode to resolve the issue. (173827073) (FB22384135)
Swift Compiler
Resolved Issues
- Fixed stack-allocation bugs in async functions that caused “freed pointer was not the last allocation” crashes, particularly in swift_asyncLet_finish. These long-standing issues became more frequent in Swift 6.2 and 6.3 due to optimizer improvements. (173974857)
- Apr 16, 2026
- Date parsed from source:Apr 16, 2026
- First seen by Releasebot:Apr 15, 2026
- Modified by Releasebot:Apr 17, 2026
April 16, 2026
App Store Connect now supports uploads built with Xcode 26.4.1 for App Store and TestFlight testing.
App Store Connect update
You can now upload apps built with Xcode 26.4.1 using the SDK for iOS 26.4.1, iPadOS 26.4.1, macOS 26.4.1, visionOS 26.4, tvOS 26.4, and watchOS 26.4 for the App Store, and for internal and external testing through TestFlight.
Original source - April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 15, 2026
Xcode 14.3 Release Notes
Xcode 14.3 adds Swift 5.8, new SDKs, and broader debugging support, while improving module verification, build reliability, SwiftUI previews, testing, source control, and Instruments. It also brings updated compiler features, package tooling, and fixes across the editor and distribution workflow.
Update your apps to use new features, and test your apps against API changes.
Overview
Xcode 14.3 includes Swift 5.8 and SDKs for iOS 16.4, iPadOS 16.4, tvOS 16.4, watchOS 9.4, and macOS Ventura 13.3. The Xcode 14.3 release supports on-device debugging in iOS 11 and later, tvOS 11 and later, and watchOS 4 and later. Xcode 14.3 requires a Mac running macOS Ventura 13.0 or later.
General
New Features
- Xcode 14.3 includes a new module verifier that generates diagnostics for issues in a framework’s modules. (97345247)
Resolved Issues
- Fixed: Crash logs from App Extensions and extension-based Watch apps weren’t being delivered to the Xcode Organizer. This issue is resolved in iOS 16.4, macOS 13.3, watchOS 9.4 and tvOS 16.4. (90882288)
- Fixed: You can now use Xcode’s documentation viewer to view Xcode documentation or view it on the web at https://developer.apple.com/documentation/Xcode. (102522035)
Deprecations
- Xcode isn’t supported under Rosetta. See Developer Technote “Resolving architecture build errors on Apple silicon“ for more information. (92772361)
Apple Clang Compiler
New Features
- Clang and the build system support a new mode for building module dependencies called explicit modules which improves build performance, reliability, and correctness. The new mode is opt-in, and can be enabled by setting _EXPERIMENTAL_CLANG_EXPLICIT_MODULES as a user-defined build setting in C and Objective-C projects which build with modules enabled. (104438594)
- The following C++23 features have been implemented:
- New support for multidimensional subscript operator. (P2128R6)
- Relaxed restrictions on the presence of non-literal variables (and labels and gotos) in constexpr functions (P2242R3).
- Introduce auto(x) for decay-copy in the language (P0849R8). (104887755)
- The -ffp-model=strict is fully supported for the ARM architecture. The generated code adheres to the IEEE-754 standard. Specifically, floating point exceptions and rounding modes are handled according to the standard. #pragma STDC FENV ACCESS is supported. By default, -ffp-contract=ON is set. This option enables shorter and faster floating-point code by fusing floating point operations like multiplies and adds, but it may impact the accuracy of numerically sensitive applications. (105573336)
Resolved Issues
- Fixed: The compiler no longer emits erroneous warnings for images included into Objective-C documentation comments using the tag. (91464292)
- Fixed: Standard C++ modules are disabled in ObjectiveC++ with the C++ language mode set to C++20. This doesn’t impact Clang modules. (104670658)
Build System
New Features
- Xcode now prompts a user prior to performing a clean action. This prompt can be bypassed by holding the option key while performing a clean, or by permanently hiding the prompt by enabling the “Don’t Ask Me” setting within the prompt. (98914489)
Resolved Issues
- Fixed: UI test targets no longer force SWIFT_SERIALIZE_DEBUGGING_OPTIONS to YES at build time, and respect that setting being overridden in the project. (94845934)
- Fixed: Run scripts in a scheme’s pre-actions and post-actions for the Build section now cause the build to fail if any run script exits with a non-zero exit code, instead of reporting a false-positive successful build. (102896200)
Known Issues
- Previews in packages can fail when previewing inside of a package that is both the dependent of a package and the dependency of a package when used by an app. (103716225)
Workaround: Create and select a scheme targeting just that package when using SwiftUI previews for a file in that package. - When a pre-build scheme action (such as compiling a package plugin) encounters an error, the status message at the top of Xcode’s workspace window sometimes doesn’t update. This leaves the previous status showing, possibly causing confusion if the previous status was “Build Succeeded.” (104306342)
- Previews in packages can fail when previewing inside of a package that is both the dependent of a package and the dependency of a package when used by an app. (104683595)
Workaround: Create and select a scheme targeting just that package when using SwiftUI previews for a file in that package.
C++ Standard Library
New Features
- The following new features have been implemented:
- P0896R4 - The One Ranges Proposal
- P1004R2 - Making std::vector constexpr
- P0627R6 - Function to mark unreachable code
- P1165R1 - Make stateful allocator propagation more consistent for operator+(basic_string)
- P0674R1 - Support arrays in make_shared and allocate_shared
- P0980R1 - Making std::string constexpr
- LWG3659 - Consider ATOMIC_FLAG_INIT undeprecation
- P1423R3 - char8_t backward compatibility remediation
- std::pop_heap now uses an algorithm known as “bottom-up heapsort” or “heapsort with bounce” to reduce the number of comparisons, and rearranges elements using move-assignment instead of std::swap.
- std::boyer_moore_searcher and std::boyer_moore_horspool_searcher have been implemented. (104702784)
Deprecations
- The following items have been deprecated:
- The <experimental/filesystem> header has been removed. Instead, use the header. The associated macro _LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM has been removed too.
- The C++14 function std::quoted(const char*) is no longer supported in C++03 or C++11 modes.
- std::function has been removed in C++03. If you are using it, please remove usages or upgrade to C++11 or later.
- std::unary_function and std::binary_function are no longer available in C++17 and C++20. They can be re-enabled by defining _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION. They are also marked as [[deprecated]] in C++11 and later. To disable deprecation warnings you have to define _LIBCPP_DISABLE_DEPRECATION_WARNINGS. Note that this disables all deprecation warnings.
- The contents of , std::wstring_convert and std::wbuffer_convert have been marked as deprecated. To disable deprecation warnings you have to define _LIBCPP_DISABLE_DEPRECATION_WARNINGS. Note that this disables all deprecation warnings.
- The integer distributions std::binomial_distribution, std::discrete_distribution, std::geometric_distribution, std::negative_binomial_distribution, std::poisson_distribution, and std::uniform_int_distribution now conform to the Standard by rejecting template parameter types other than short, int, long, long long, and the unsigned versions thereof. As an extension, int8_t, __int128_t and their unsigned versions are supported too. In particular, instantiating these distributions with non-integer types like bool and char won’t compile anymore. (105097623)
Debugging
Resolved Issues
- Fixed: When stopped in a C++11 lambda body in an enclosing class method, LLDB now supports evaluating expressions containing members of the captured ‘this’ pointer. (50140179)
- Fixed: LLDB is now more resilient against Swift module deserialization failures that previously would have ended the the debug session. (64511878)
Documentation
New Features
- The documentation toolchain for Objective-C has migrated to the open-source Clang extract-api tool. (101761719)
DriverKit
New Features
- Clang now automatically initializes uninitialized local variables on the stack to zero for DriverKit extensions. (99166509)
Instruments
New Features
- When attempting to launch an application using Instruments on a locked target device, Instruments now prompts the user and waits for the unlock to happen instead of presenting an error. (41464216)
- xctrace export now supports requesting binary image load information for processes in a trace file. Each image includes a path, UUID, name, load address and architecture. (76676504)
- Stores Inspector located in the Instruments Inspector now allows for copying example xctrace export command after invoking the shortcut menu on a listed store. (89078433)
- xctrace export now includes parsable description of backtraces recorded in an Instruments trace. Each frame inside the backtrace includes a VM address and a symbol name (if present). (95850764)
- The “File → Symbols” UI has been updated to make symbolication workflows more streamlined:
- Better display/filtering of process and image lists
- More information about each loaded image, including UUIS, version, load address and load time.
- Easier resymbolication with an ‘Add Symbols’ button, allowing selection of multiple dSYMs at once. (97920704)
- Heaviest Stack Trace UI in the Extended Detail now allows for copying mangled names of symbols using shortcut menu. (98017107)
- Graph and Detail elements specified in the Instruments Package can now be disabled based on the value of a trace parameter. (101357705)
- The Heaviest Stack Trace UI has a new contextual menu for showing frames as a load address and binary offset. (102116922)
- os-signpost-interval-schema now exposes a way to bind a CLIPS variable to a duration field of a signpost interval and use it as part of other column definitions. (102447071)
Resolved Issues
- Fixed: Instruments’ launch time performance is now improved. Launching the application should be up to 3 times faster. (12219587)
- Fixed: Selecting ‘Open in Xcode’ from an Instruments Source Viewer now opens the selected file in an existing workspace. (76846286)
- Fixed: ‘Open in Xcode’ action of a Source Viewer now preserves line and text range selection when transitioning between Instruments and Xcode. (91005085)
- Fixed: Improved reliability of interaction with the find field when invoked on the detail view. (94526531)
- Fixed an issue where entering multiple filter tokens in a Call Tree view and selecting ‘All’ matching would still result in matching any of the specified tokens. (97454950)
- Fixed an issue where scrolling horizontally in a Call Tree view using trackpad wasn’t possible. (97752177)
- Fixed: Source View now automatically opens Disassembly View when no source code is available for a selected symbol. (99206757)
- Fixed: Performance of adding a new Instrument from the library to an existing trace document has been significantly improved. (100873173)
- Fixed an issue in the CPU Counters Instrument where RETIRE_UOP events wouldn’t be counted on Apple Silicon machines. (101330117)
Interface Builder
New Features
- The “Introduced Variations Based On:” inspector popup will now remember the last picked size class and variation settings. (98647372)
- The enabled property is configurable on UISearchBar through the attribute inspector. (101423711)
Resolved Issues
- Fixed: The Line Break Strategy can now be configured on a NS/UITextView paragraph style popup inspector and UILabel’s attributes inspector. (70369164)
- Fixed: The SF Symbol library search results have improved to include search terms besides the name of the symbol. For example, searching for “writing” will also show related “pencil” SF symbols. (94857888)
- Fixed an issue that prevented the Reveal in Editor button, in the custom class inspector, from revealing the class in the source code editor. (100136260)
- Fixed an issue that prevented XIBs containing only User Defined Runtime Attributes from loading at runtime. (100357502)
- Fixed: Xcodebuild supports a -downloadPlatform <watchOS|tvOS> argument to request downloading a single platform. (100869261)
- Fixed: Safe Area dimensions in landscape mode are now positioned correctly in the canvas. (101164646)
- Fixed an issue where frames sometimes shift when a storyboard is opened. (102221237)
- Fixed an issue with the resizing cursor not showing when attempting to resize a NSViewController. (102609072)
Localization
New Features
- You can now specify the default localization of an Xcode project. Configure it from the language list in the project editor’s Info tab. (4886288)
Resolved Issues
- Fixed an issue when exporting a project for localization, where referenced projects might not be exported. (91126400)
Playgrounds
Known Issues
- Manual execution mode for Xcode Playgrounds may fail. (104976410)
Signing and Distribution
Resolved Issues
- Fixed: Xcode automatic signing now creates managed provisioning profiles for Developer ID. This resolves an issue that caused Xcode to throw an error when cloud signing with a Developer ID certificate during the app distribution workflow. (90026719)
- Fixed: Resolved an issue when distributing apps that use Game Center. If necessary, Xcode automatic signing can now enable the Game Center feature on your app ID during distribution. (103426363)
Simulator
Resolved Issues
- Fixed: When simulating a user gesture in the iOS simulator, loading a WebView may cause a black box to appear on the entire screen. (107143140)
Known Issues
- Repeated Build & Run targeting iOS 16.1 and later simulator runtimes may sometimes result in a hung launch. (101990080)
Workaround: Reboot the simulator device and reattempt the launch.
Source Control
Resolved Issues
- Fixed: Xcode’s Git integration now supports mailmap. Users who have changed their names or email addresses can set up a .mailmap file in their repository and Xcode now displays the correct canonical name on commits and branch history. (62682973)
- Fixed: Re-added support for perl compatible regular expressions to git grep. (101318680)
- Fixed: Addressed security vulnerabilities CVE-2022-23521 and CVE-2022-41903. (102376850)
Known Issues
- The branch history view may display an incomplete branch history in rare cases. (96024292)
Workaround: Select a different branch, then, once again, select the desired branch.
Source Editor
New Features
- Improved code completion ranking for Swift. (98687334)
StoreKit
New Features
- The Store Kit Test framework now supports testing SKAdNetwork 4.0. (91782868)
Swift
New Features
- The @backDeployed(before:) attribute may now be used to extend the availability of a function to OS releases prior to the introduction of that function as ABI. For example, suppose that struct Temperature was introduced in a macOS SDK framework in macOS 12. Later in macOS 13 the framework authors decided to add a degreesFahrenheit property as a convenience:
@available(macOS 12, *) public struct Temperature { public var degreesCelsius: Double // ... } extension Temperature { @available(macOS 12, *) @backDeployed(before: macOS 13) public var degreesFahrenheit: Double { return (degreesCelsius * 9 / 5) + 32 } }Adding the @backDeployed attribute to degreesFahrenheit enables the framework author to make this new declaration available to apps with a minimum deployment target of macOS 12, even though the ABI entry point for degreesFahrenheit is only present in macOS 13 and up. When a function with @backDeployed is called, the compiler wraps the invocation of the function in a thunk. The thunk checks whether the library entry point for the declaration is available at runtime, and invokes it if it is. Otherwise, a copy of the function that was emitted into the client is called instead. SE-0376 (105198323)
- Сollection downcasts in cast patterns are now supported. For example:
func collectionDowncast(_ arr: [Any]) { switch arr { case let ints as [Int]: // ... case is [Bool]: // ... } }(105198506)
- The API of UnsafeMutableRawPointer, UnsafeMutableBufferPointer, UnsafeMutableRawBufferPointer were improved, adding previously missing initialization (and deinitialization) methods, including more performant initialization from Collection types. For UnsafeMutablePointer and UnsafeMutableBufferPointer, method names containing the word “assign” were renamed to use the word “update”, and many more were added. Every multi-element initialization method of UnsafeMutablePointer and UnsafeMutableBufferPointer now has a corresponding “update” method. Slices of UnsafeBufferPointer, UnsafeRawBufferPointer, UnsafeMutableBufferPointer and UnsafeMutableRawBufferPointer now share the collection-like API of their base type. For example, given an initialized b: UnsafeMutableBufferPointer, the following lines are synonymous:
b.update(repeating: 0) b[b.startIndex..<b.endIndex].update(repeating: 0)SE-0370 (105198642)
- Implicit self is now permitted for weak self captures, after self is unwrapped. For example, the usage of implicit self below is permitted:
class ViewController { let button: Button func setup() { button.tapHandler = { [weak self] in guard let self else { return } dismiss() // refers to `self.dismiss()` } } func dismiss() { ... } }In Swift 5 language modes, implicit self is permitted for weak self captures in non-escaping closures even before self is unwrapped. For example, this code compiles successfully in Swift 5 language mode:
class ExampleClass { func makeArray() -> [String] { // `Array.map` takes a non-escaping closure: ["foo", "bar", "baaz"].map { [weak self] string in double(string) // implicitly refers to `self!.double(string)` } } func double(_ string: String) -> String { string + string } }In Swift 6, the above code will no longer compile. weak self captures in non-escaping closures now have the same behavior as captures in escaping closures (as described in SE-0365). Code relying on the previous behavior will need to be updated to either unwrap self (e.g. by adding a guard let self else return statement), or to use a different capture method (e.g. using [self] or [unowned self] instead of [weak self]). SE-0365 (105198849)
- The compiler flag -enable-upcoming-feature X can now be used to enable a specific feature X that has been accepted by the evolution process, but whose introduction into the language is waiting for the next major version (e.g., version 6). The X is specified by any proposal that falls into this category:
- Concise Magic File enables the new #file semantics in SE-0274.
- Forward Trailing Closures disables the “backward” scanning behavior of SE-0286.
- Bare Slash Regex Literals enables the regex literal syntax of SE-0354.
Features can be detected in source code with #if hasFeature(X). SE-0362 (105198978)
Resolved Issues
- Fixed an occasional crash when suspending at an await in apps using Swift concurrency running on macOS 12.3 and earlier, on iOS 15.4 and earlier, watchOS 8.5 and earlier, and tvOS 15.4 and earlier. (101299662)
- Fixed: The Swift compiler may fail to build modules for XCFramework dependencies that were built with BUILD_LIBRARY_FOR_DISTRIBUTION enabled. These failures will occur when the XCFramework contains public Swift declarations that have @MainActor constraints implicitly added, such as subclasses of UIView or NSView. The Swift compiler expects those declarations to be marked @available for an operating system version where Swift concurrency is available. (105610970)
Swift Packages
New Features
- A proper diagnostic is shown instead of an ambiguous error when a tool needed by a plugin isn’t supported on the target platform. (91000836)
- Packages with duplicate product names are now allowed. Note this only applies to the command-line builds. (94744134)
- Implemented SE-0378, which adds support for token authentication for package registry requests. (99716571)
- Binary targets can now directly be vended as products without requiring the declaration of an additional source target. (101096803)
- SwiftPM now supports piecemeal adoption of upcoming Swift language improvements per SE-0362. (104718540)
Resolved Issues
- Fixed: Conditional target dependencies (SE-0273) in packages are now correctly applied to binary targets and leads to top-level targets being filtered out from builds of root packages. (85762201)
- Fixed: Removed implicit availability of Foundation from package manifests using tools-version 5.8 or later. An explicit import of Foundation is now required if APIs from Foundation are used in a manifest. (92879696)
- Fixed: When a pre-build command depends on tools that aren’t prebuilt binaries, it showed an ambiguous error message. The fix was added to show proper diagnostics. (94712361)
- Fixed: A proper diagnostic is shown instead of an ambiguous error when a plugin has a dependency on non-supported products or targets. (95117424)
- Fixed: Resolved an error that sometimes caused package resolution to fail with a message similar to: An unknown error occurred. reference 'refs/remotes/origin/main' not found (-1). (100387832)
- Fixed: When package graph resolution fails, Xcode now shows a build failure rather than letting the build start and then fail with errors about missing build products. (101835157)
- Fixed: Warnings and errors associated with packages are now shown under the packages to which they apply in the package resolution log. (102879707)
- Fixed multiple bugs that could cause a “Unable to resolve build file: XCBCore.BuildFile” build error when using packages. (102912126)
Known Issues
- When a package build tool plugin generates a build command for a particular input file, that file is considered to have been handled by the plugin and isn’t passed to the build system. If the input file is a source code file (such as a Swift or Objective-C source file), it won’t be compiled into the product being built. (102789077)
SwiftUI Previews
New Features
- print output now appears in the console for SwiftUI Previews by selecting “Preview” tab in the console. Currently output is limited to Swift’s print function. (96569171)
Resolved Issues
- Fixed: Previews can fail when previewing a file inside of a Swift package target that is the dependency of an executable target. (97630721)
- Fixed: Previews may fail in the Xcode canvas when previewing two files side-by-side when only one of them is in a Swift Package. (99296071)
- Fixed: Previews can fail when previewing inside of a target that is the dependency of a target where previewing is not supported such as an XPC service or static library. (99707713)
- Fixed: Previews could fail in Swift Packages with binary dependencies. (99936678)
- Fixed: Previews can fail when using Swift Concurrency in an app with a minimum deployment target of <= iOS 14.0. (99969698)
- Fixed: Some kinds of crashes of previews don’t appear in the canvas. (100586176)
- Fixed: Previewing files that exist both in a widget target and an application target can fail. (101221314)
- Fixed: Previews can fail when using opaque types as the generic parameter of another type in the return type of body. (101832285)
- Fixed: Previews can fail when previewing inside of apps that have an app identifier that differs from the bundle identifier. (102753115)
Testing
New Features
- Xcode now defaults to using a test plan for new projects. The test plan is marked as “Auto-created” and can be viewed and modified in the Test Plan Editor. To change an Auto-created Test Plan, a user will need to first save it to disk. This can be done by making a change in the Test Plan Editor, and then migrating the file to an on-disk representation with the on-screen prompts, or by explicitly saving the Auto-created Test Plan from within the Test Plan Editor. (97048381)
- The timeout argument of XCTestCase.wait(for: timeout: enforceOrder:) and related methods is now optional—if you don’t specify it, the function waits indefinitely (until the overall test times out.) To ensure reasonable execution time, set an appropriate value for the execution Time Allowance property of the running XCTestCase instance (self). (100811826)
Resolved Issues
- Fixed: Errors thrown by async Swift test methods, as well as async setUp or tearDown methods, now show the source location where they were thrown when symbol information is present, and include a higher-fidelity description. (72813349)
- Fixed: If test timeouts are enabled in the test plan and a test observer is registered with the shared XCTestObservationCenter, the observer’s -testCaseWillStart: and -testCaseDidFinish: methods now count towards each test’s time allowance. This allows the harness to prevent hangs that could occur in the observer’s implementation of these methods. (78408785)
- Fixed: XCTestCase.wait(for: timeout: enforceOrder:) and related methods are now marked unavailable in concurrent Swift functions because they can cause a test to deadlock. Instead, you can use the new concurrency-safe XCTestCase.fulfillment(of: timeout: enforceOrder:) method. (91453026)
- Fixed: A test plan’s “Collect Diagnostics on Failure” setting now takes effect when tests are built using xcodebuild build-for-testing and run with xcodebuild test-without-building. (93053592)
- Fixed: Issues recorded in a later setUp or tearDown after an earlier setUp or tearDown used XCTSkip will no longer mark the test a failure. (93536791)
- Fixed: When an error is thrown during the execution of an async Swift test method or an async setUp or tearDown method, but is caught before returning from that method, XCTest avoids constructing a description of the error since doing so may be unsafe. (98847718)
- Fixed: Test targets contained in a test plan whose configurations have different sanitizers enabled (e.g. Address Sanitizer is enabled in one configuration, and Thread Sanitizer is enabled in another configuration) can now execute in parallel on macOS destinations (if the targets’ ‘Execute in Parallel’ checkboxes are checked). (99448030)
- Fixed: Result bundles downloaded from Xcode Cloud can now be linked back to their corresponding builds in the Xcode Test Report. Users on Xcode 14.3 and later should be able to navigate to the build by right-clicking on the result bundle in the navigation panel and using the “Open in Xcode Cloud” option. (100152213)
- Fixed: A number of Swift code coverage bugs have been fixed. Most notably, code coverage should now correctly work in -O builds. (100327359)
- Fixed: XCTKeyPathExpectation now emits a warning when an asynchronous predicate function is used with a non-Sendable observed object. (102092338)
Known Issues
- When attempting to launch an application in a watchOS UI test under Xcode Cloud, the test may fail with an error message that the application has not loaded accessibility. (90334748)
- Adding an auto-created test plan as part of a Run, Profile, Analyze, or Archive action leads to a crash when the project file is re-opened. (90378346)
Workaround: Delete the scheme that was modified within the xcshareddata directory. - Swift files aren’t displaying code coverage data after running tests in the coverage report. (104935416)
- Manually adding, then removing a test plan, to a project that has an auto-created test plan causes the Test Navigator to display “No Test Plan” even though an auto-created test plan is actually backing the project. (105433014)
Workaround: Close and re-open the project. - Sometimes adding a test plan to a scheme results in the test plan not being listed within the scheme or test navigator on a subsequent project opening. (105455341)
Workaround: Open and close the Scheme Editor to cause Xcode to persist changes to the Scheme’s contents to the .xcscheme file backing it.
UI Testing
New Features
- You can now set a simulated location for your device to use in real time, or retrieve the simulated location that was previously set. (18825683)
- You can now open a URL using a specified application, or tell the device to open a URL using the default application for it. (21387710)
- You can now get or set the light or dark appearance mode of your device. (81016755)
Resolved Issues
- Fixed: Ensured orientation lock is disabled if the user requests the orientation to change during a UI test. (98693525)
- Fixed: Improvements have been made in auto-dismissal of single-button alerts. (102036701)
Xcode Cloud
Resolved Issues
- Fixed: Xcode Cloud workflows using Xcode 14.3 now correctly report build warnings and static analyzer issues encountered while building Xcode projects. (99978366)
Known Issues
- Connecting Slack may not complete successfully when using Xcode’s UI to connect. (106153362)
Workaround: Connect Slack from Xcode Cloud’s web UI.
Xcode Previews
New Features
- When using Xcode Previews, any print() output will be logged to the debug console. (71080261)
- April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 15, 2026
Xcode 14.3.1 Release Notes
Xcode 14.3.1 ships Swift 5.8.1 and updated SDKs for iOS, iPadOS, tvOS, watchOS, and macOS Ventura, while improving on-device debugging support and fixing crashes, playground issues, asset catalog problems, Swift concurrency bugs, and package plugin commands.
Overview
Xcode 14.3.1 includes Swift 5.8.1 and SDKs for iOS 16.4, iPadOS 16.4, tvOS 16.4, watchOS 9.4, and macOS Ventura 13.3. The Xcode 14.3.1 release supports on-device debugging in iOS 11 and later, tvOS 11 and later, and watchOS 4 and later. Xcode 14.3.1 requires a Mac running macOS Ventura 13.0 or later.
General
Resolved Issues
- Fixed: When targeting devices running iOS 13, apps built with Xcode 14.3 and using Objective-C protocols from Swift, sometimes crash at launch. (108930834)
Asset Catalogs
Resolved Issues
- Fixed: iOS app icons, including alternate app icons, weren’t correctly populating Info.plist entries for iPad. This made alternate app icons specified using Single Size erroneously unavailable on iPad at runtime. (108955499)
Playgrounds
Resolved Issues
- Fixed: Playground live views weren’t updating correctly after making changes to the Playground code. (108413386)
- Fixed: Xcode could crash on macOS 13.3 when adding a new page to a playground. (108952884)
Swift
Resolved Issues
- Fixed: Applications using Swift Concurrency could crash when run on a specific OS version:
- macOS 12.0 up to (but not including) macOS 12.1
- iOS 15.0 up to (but not including) iOS 15.2
- tvOS 15.0 up to (but not including) tvOS 15.2
- watchOS 8.0 up to (but not including) watchOS 8.3
Earlier and later OS versions weren’t affected. (108837762)
Swift Packages
Resolved Issues
- Fixed: Custom commands implemented by package plugins aren’t being shown in the context menu for Xcode projects. (108953641)
- April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 15, 2026
Xcode 15 Release Notes
Xcode releases a major update with SDKs for iOS 17, iPadOS 17, tvOS 17, watchOS 10, and macOS Sonoma, plus faster builds, richer previews, new String Catalogs, improved source control, stronger debugging, and expanded Swift and C++ tooling.
Overview
Xcode 15 includes SDKs for iOS 17, iPadOS 17, tvOS 17, watchOS 10, and macOS Sonoma. The Xcode 15 release supports on-device debugging in iOS 12 and later, tvOS 12 and later, and watchOS 4 and later. Xcode 15 requires a Mac running macOS Ventura 13.5 or later.General
New Features
• When a structured text-based file such as a property list or storyboard fails to open due to a merge conflict, Xcode will offer to open the file as text. (9148845)
• The “View by Time” / “View by Group” selector in the Report navigator has moved into the navigator’s action menu. (73892015)
• The build log reports now show their sections in the jump bar, allowing for quicker navigation and showing the location of the current selection. (90320021)
• The xed tool has been rewritten for performance and reliability. Invoke it from the command line to edit an existing or new file in Xcode, optionally opening to a given line number, and waiting for the file to close. (105476406)
• The Find navigator now offers additional symbolic queries that act on types, such as Find Ancestor Types and Find Conforming Types. These find operations replace the functionality of the Symbol navigator, and provide a stable set of results that change only when the query is re-executed. (105622182)
• Xcode 15 validates the signing identity of XCFrameworks that are used in your project. The signature information for an XCFramework is displayed in the File inspector, and the last known identity is saved in the project file. During a build, the signature of XCFrameworks are validated and the signing identity is compared to the expected identity in the project file. (106036191)
• The new “Quick Actions” panel provides keyboard access to perform commands across Xcode. (108024215)Resolved Issues
• Fixed: macOS Previews can now be interacted with directly in the canvas. You can press and hold the Live preview mode button to switch between previewing in Xcode and previewing in the app-under-preview. (49271058)
• Fixed: For apps linked on or after iOS 17 and aligned OS versions, URL parsing has updated from the obsolete RFC 1738/1808 parsing to the same RFC 3986 parsing as URLComponents. This unifies the parsing behaviors of the URL and URLComponents APIs. Now, URL automatically percent- or IDNA-encodes invalid characters to help create a valid URL.
To check if a url String is strictly valid according to the RFC, use the new URL(string: urlString, encodingInvalidCharacters: false) initializer. This init leaves all characters as they are and will return nil if urlString is explicitly invalid. (93368104)
• Fixed: TypeScript (.ts) files are directly editable in Xcode. (93525048) (FB10021626)
• Fixed: Swift function declarations across multiple lines are now more reliably pinned by Xcode’s “Show Code Structure While Scrolling” feature. (94476783) (FB10047088)
• Fixed notifications not displaying for build and test status if the actions complete when Xcode is not the frontmost application. (105997391)
• Fixed: Console, Safari, and Accessibility Inspector are unable to wirelessly connect to devices running iOS and tvOS 16.4 and 16.5. (108032308)
• Fixed: Offline compilation targeting AMD hardware and macOS Ventura isn’t available using Xcode 15. (108372489)
• Fixed: Xcode Organizer window TestFlight Internal Only distribution support isn’t currently available. (111340185)Known Issues
• Devices running iOS 17 may prompt the user twice in rapid succession to trust a Mac when connected to the Mac with a USB cable. The second prompt for trust may obscure the first prompt and prevent the user from entering the passcode. (109539668)
Workaround: To configure the iOS device to trust the Mac, tap “Trust” and enter the device passcode on any passcode screen that isn’t occluded. Disconnect and reconnect the iOS device to the Mac. The iOS device may prompt once more to trust the Mac. To accept, tap “Trust” and enter the device passcode.
• Executing Unit/UI tests from Xcode on the iOS Simulator takes an extended time to launch on first run of the suite. (115187363) (110330776) (FB12237092)
• Xcode 15 may not be able to communicate with devices running iOS 17+ and tvOS 17+, and Apple Watch devices paired to an iPhone running iOS 17+ with certain VPNs active. (110337781) (FB12243540)
Workaround: Disable the VPN to interact with the device and reach out to the VPN vendor for resolution.
• On macOS Sonoma, when attempting to automatically install command line tools (such as after running xcode-select --install), you may receive an error that they aren’t currently available. (110346766)
Workaround: Install Command Line Tools manually or run the following commands in Terminal:
sudo mkdir -p /Library/Developer/CommandLineTools
sudo touch /Library/Developer/CommandLineTools/.beta
and try again.
• Swift macro definitions from the macOS/iOS/tvOS/watchOS SDKs are not available in Swift Playgrounds. (112122752) (FB12581131)
• The simulator may crash when opening Settings or Action Button settings on iPhone 15 Pro devices. (115388496)App Intents
Resolved Issues
• Fixed: Apps that implement App Intents may fail to compile with watchOS SDK if an App Entity with Entity Query is present. (111455662)App Shortcuts Preview
Known Issues
• If an app adds a new App Shortcuts trigger phrase string that already exists in an accompanying App Shortcuts .strings or App Shortcuts .xcstrings file, the App Shortcuts Preview may not refresh upon rebuild. (109494636)
Workaround: Cleaning prior to rebuilding the app causes App Shortcuts Preview to be in its most up-to-date state.Apple Clang Compiler
New Features
• There is a new reference page for C++ support on Apple platforms: https://developer.apple.com/xcode/cpp/. (100245338) (FB11563150)
• Clang and the build system support a new mode for building module dependencies called explicit modules which improves build performance, reliability, and correctness. The new mode is opt-in, and can be enabled by setting _EXPERIMENTAL_CLANG_EXPLICIT_MODULES as a user-defined build setting in C and Objective-C projects which build with modules enabled. (104438594)
• Wide multi-characters literals such as L’ab’ that would previously be interpreted as L’b’ are now ill-formed in all language modes in C and C++. The motivation for this change is outlined in character literals P2362.
The following C++20 language features have been implemented:
◦ Immediate functions [consteval] is fully implemented. (P1073R3)
The following C++23 language features have been implemented:
◦ De-deprecating volatile compound operations. (P2327R1)
◦ Support for #warning. (P2437R1)
◦ Delimited escape sequences. (P2290R3)
◦ Named universal character escapes. (P2071R2)
◦ Support for UTF-8 as a portable source file encoding. (P2295R6)
◦ Relax requirements on wchar_t to match existing practices. (P2460R2) (108334479)Resolved Issues
• Fixed: Improvements in the ARC optimizer allow Objective-C and Swift objects to be released earlier. This causes code to misbehave or crash when it relies on weak or unowned references to remain valid without a strong reference to the target object. For example this can happen inadvertently in code that unnecessarily uses a “weak self” capture in a one-shot asynchronous block callback. (108386578)
• Fixed: The x86 vectorizer uses saturated arithmetic instructions that can result in shorter and faster code. This may change program behavior for applications that implicitly rely on overflow behavior, e.g., by casting floating point values to integer types that can’t represent the original value. (108386879)Asset Catalogs
New Features
• Xcode now generates Swift and Objective-C symbols for each color and image in the asset catalog. These symbols provide a safer, more assistive way to reference assets that’s resilient to renames & typos, leverages compiler type checking, and integrates with code completion.
Swift asset symbols are generated in the module associated with a given asset catalog. They’re generated as static properties on the new Color Resource and Image Resource types. To instantiate colors and images with asset symbols, use the SwiftUI, UIKit, and AppKit initializers that take the resource types. For example:
Given an asset catalog with a color “spaceGray” and image “appleLogo,” instantiate the color symbol Color Resource .spaceGray with Color(.spaceGray), UIColor(resource: .spaceGray), and NSColor(resource: .spaceGray), and the image symbol Image Resource .appleLogo with Image(.appleLogo), UIImage(resource: .appleLogo), and NSImage(resource: .appleLogo).
With the opt-in build setting “Generate Swift Asset Symbol Extensions” (ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS) set to YES, asset catalog colors and images can be accessed directly on system color and image types, e.g. Color.spaceGray, UIColor.spaceGray, NSColor.spaceGray, UIImage.appleLogo, and NSImage.appleLogo.
Objective-C asset symbols are provided as string constants and can be accessed by importing the “GeneratedAssetSymbols.h” header.
Asset symbol generation is enabled by default but can be disabled by setting the build setting “Generate Asset Symbols” (ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS) to NO.
Symbols support is generated for SwiftUI, UIKit, and AppKit by default. This can be customized if required by setting the build setting “Generate Swift Asset Symbol Framework Support” (ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOL_FRAMEWORKS) to a smaller set of frameworks, e.g. “UIKit AppKit” or “AppKit.” (14758734)
• Asset Catalog automatically infers a single scale slot when adding PDF images. (32661471) (FB5752517)
• Asset catalog color inspectors remember the last used color configuration when creating new colors. (48965482) (FB5697990)Resolved Issues
• Fixed: Jump-to-definition on an asset symbol now jumps to the asset in the catalog. (102385742)
• Fixed: The “Add New Asset” menu now has a “Folder with Namespace” item for creating new folders with namespaces. (108468310)
• Fixed: Asset symbols are now generated for assets in Swift packages. (110083791)Build System
New Features
• Archive builds now support the same set of eager compilation optimizations as other build actions, improving build performance. (98526053)
• Xcode now automatically generates intermediate text-based dynamic library (TBD) files for dynamic libraries and frameworks in your project. These stubs allow linker dependencies to be tracked more accurately, meaning changes which don’t change the set of exported symbols no longer require all transitive dependencies to relink, speeding up incremental builds. (99972271)
• Xcode now supports building and consuming macros defined in Swift Packages. (101818756)
• XCFrameworks can be created from mergeable libraries and frameworks and will be merged or have mergeable metadata removed as appropriate when they are used. See the documentation Configuring your project to use mergeable libraries. (109124251)Resolved Issues
• Fixed: Embedding a static framework using a Copy Files build phase now removes the static archive from the framework when it is embedded in the target bundle. The REMOVE_STATIC_EXECUTABLES_FROM_EMBEDDED_BUNDLES build setting can be set to NO to opt out of this behavior. The COPY_RESOURCES_FROM_STATIC_FRAMEWORKS build setting, previously used in the legacy build system to extract and copy the resources from a static framework to the target bundle, no longer has any effect with the new build system as the entire framework is copied instead (minus the static archive as described above). (47164939)
• Fixed: Xcode now tracks dependencies on additional files specified by various linker flags specified in the OTHER_LDFLAGS build setting.
In some cases this may require build setting flags to be adjusted to become SDK-relative.
For example, instead of:
OTHER_LDFLAGS = $(inherited) -weak_library /usr/lib/swift/libswiftAppleArchive.dylib
You must use:
OTHER_LDFLAGS = $(inherited) -weak_library $(SDKROOT)/usr/lib/swift/libswiftAppleArchive.tbd
In other cases where the files referenced by linker flags may be produced by another build task, such as a build rule or shell script build phase, ensure that the file is explicitly listed as an output file of that build rule or shell script build phase. (92049062)
• Fixed an issue where build warnings in Swift files sometimes disappeared after an incremental build. (105421512)
• Fixed: If Xcode isn’t used to generate your content for App Store submission, the Signatures folder from your xcarchive will need to be added sidecar content. (106438176)
• Fixed: Using single-file build actions such as Preprocess or Assemble now works correctly when used on files with an overridden File Type. Previously, this may have produced a “missing input and no rule to build it” error. (107736241) (FB12102123)
• Fixed an issue where localization export of dependent frameworks could fail after running a regular build of the project. (108867135) (FB12165312)Deprecations
• Bitcode support has been removed, and the ENABLE_BITCODE build setting no longer has any effect. (105281961)C++ Standard Library
New Features
• The following new features have been implemented:
◦ Implemented the C++17 library
◦ P2499R0 - string_view range constructor should be explicit
◦ P2417R2 - A more constexpr bitset
◦ P2445R1 - std::forward_like
◦ P2273R3 - Making std::unique_ptr constexpr
◦ P0591R4 - Utility functions to implement uses-allocator construction
◦ P2291R3 - Add constexpr modifiers to functions to_chars and from_chars for integral types in header
◦ P0220R1 - Adopt Library Fundamentals V1 TS Components for C++17
◦ P0482R6 - char8_t : A type for UTF-8 characters and strings
◦ P2438R2 - std::string::substr() &&
◦ P0600R1 - nodiscard in the library
◦ P0339R6 - polymorphic_allocator<> as a vocabulary type
◦ P1169R4 - Implemented the library parts of static operator()
◦ P0415R1 - constexpr for std::complex
◦ P1208R6 - std::source_location
◦ P0323R12 - std::expected
◦ P1035R7 - Input Range Adaptors
◦ P2325R3 - Views shouldn’t be required to be default constructible
◦ P2446R2 - views::as_rvalue
◦ P1020R1 - Smart pointer creation with default initialization
◦ P2210R2 - Superior String Splitting
◦ The ranges versions of copy, move, copy_backward and move_backward are now also optimized for std::deque<>::iterator, which can lead to up to 20x performance improvements on certain algorithms.
◦ The std and ranges versions of copy, move, copy_backward and move_backward are now also optimized for join_view::iterator, which can lead to up to 20x performance improvements on certain combinations of iterators and algorithms. (108380402)Deprecations
• The following items have been deprecated or removed:
◦ unary_function and binary_function are no longer provided in C++17 and newer Standard modes. They can be re-enabled with _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION.
◦ Several incidental transitive includes have been removed from libc++. Those includes are removed based on the language version used. If you see errors related to missing std:: entities in your code after upgrading, ensure you have all required includes.
◦ The functions to_chars and from_chars for integral types are only available starting with C++17. Libc++ offered these functions in C++11 and C++14 as an undocumented extension. This extension makes it hard to implement the C++23 paper that makes these functions constexpr, therefore the extension has been removed.
◦ The _LIBCPP_ENABLE_CXX03_FUNCTION macro that allowed re-enabling the now-deprecated C++03 implementation of std::function has been removed. Users who need to use std::function should switch to C++11 and above.
◦ The contents of <experimental/memory_resource> are now deprecated since libc++ ships now. Please migrate to instead. Per libc++’s TS deprecation policy, <experimental/memory_resource> will be removed in the next release.
◦ The base template for std::char_traits has been marked as deprecated and will be removed in the next release. If you are using std::char_traits with types other than char, wchar_t, char8_t, char16_t, char32_t or a custom character type for which you specialized std::char_traits, your code will stop working when we remove the base template. The Standard doesn’t mandate that a base template is provided, and such a base template is bound to be incorrect for some types, which could currently cause unexpected behavior while going undetected.
◦ _LIBCPP_ENABLE_NODISCARD and _LIBCPP_DISABLE_NODISCARD_AFTER_CXX17 are no longer respected. Any standards-required [[nodiscard]] applications in C++20 are now always enabled. Any extended applications are now enabled by default and can be disabled by defining _LIBCPP_DISABLE_NODISCARD_EXT.
◦ In freestanding mode, atomic doesn’t contain a lock byte anymore if the platform can implement lockfree atomics for that size. This ABI break only affects users that compile with -ffreestanding, and only for atomic where T is a non-builtin type that could be lockfree on the platform. (108380359)Console
New Features
• By default, Xcode streams os_logs through the unified logging and activity tracing infrastructure. The output may be formatted differently compared to previous versions of Xcode, and its order relative to standard IO may also change. To customize the behavior of logging, edit the Run scheme action to set the environment variable IDELogRedirectionPolicy. The value “oslogToStdio” redirects os_log messages to standard IO and formats them in a style identical to previous versions of Xcode. The value stdioToOSLog redirects standard IO to the os_log messages, and presents them in the debug console with additional metadata. (109380695)Resolved Issues
• Fixed: The debug console’s action to jump from an os_log message to the line of source code which emitted it is only supported when debugging executables on the local Mac or Simulators. The menu item is disabled when debugging executables on connected devices. (109171925)
• The maximum permitted size of os_log messages shown in the debug console is smaller than in previous Xcode versions. This may cause long messages to more commonly appear truncated in the debug console. (109381234)Create ML
Resolved Issues
• Fixed: With the new macOS Seed 1 build of macOS Sonoma, users of the CreateML app from Developer Tools inside Xcode can’t train machine learning models using hand action classifier and hand pose classifier. The specific error message is Unexpected Error when Train button is clicked. (108227967)Debugging
New Features
• LLDB now omits defaulted template arguments in type summaries.
For example,
(lldb) frame variable
(std::vector<std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >, std::allocator<std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > > > >) nested = size=0 {}
will now display as:
(lldb) frame variable
(std::vector<std::vectorstd::string >) nested = size=0 {}
One can still see the default arguments by using the frame variable --raw-output option. (101329922)
• LLDB now supports referring to generic type parameters in expression evaluation. For example, given the following code:
func use(_ t: T) {
print(t) // Break here
}
use(5)
use("Hello!")
Running po T.self, when stopped in use, will print Int in the first call, and String in the second. This can be especially useful in combination with conditional breakpoints to stop only when a generic function is instantiated with a certain concrete type. For example, adding the following expression as the condition to a breakpoint inside use will only stop when the variable t is a String: T.self == String.self. (101976441)
• The p and po command aliases have been redefined to the new dwim-print command. The dwim-print command prints values using the most user friendly implementation. “DWIM” is an acronym for “Do What I Mean”. Specifically, when printing variables, dwim-print will use the same implementation as frame variable or v.
The output of p no longer includes a persistent result variable, such as $0, $R0, etc. Users who want persistent results on occasion, can use expression (or a unique prefix such as expr) directly instead of p. To enable persistent results every time, the p alias can be redefined in the ~/.lldbinit file:
command unalias p
command alias p dwim-print --persistent-result on --
The dwim-print also gives po new functionality. The po command can now print Swift objects by their address. When running po , the embedded Swift compiler will instead evaluate the expression unsafeBitCast(, to: AnyObject.self). (104348863)
• Xcode now shows AppKit runtime issues. Some examples are auto-layout constraint issues for constraints constructed in code. (105229806)
• When you create a watchpoint, you can see its ancestry path hierarchy. This gives you better context, especially in case of conflicts. (106777931)Resolved Issues
• Fixed: Xcode stops showing you zombie processes when you’re trying to attach from the menu. It was previously confusing and cumbersome to sieve through these non-debuggable processes for the actual process to debug. This works for all platforms. (11113209)
• Fixed: External Swift macros can’t be invoked from the LLDB expression evaluator. (109854291)DeviceDiscoveryUI
Resolved Issues
• Fixed: DeviceDiscoveryUI isn’t available when building for tvOS Simulator. (109224355)Devices
Resolved Issues
• Fixed: Devices running iOS 17 don’t support specifying a Routing App Coverage File for Apps launched from Xcode 15. (80105713)
• Fixed: Apple Watch simulators now appear as standalone simulators in the Devices and Simulators Window. (106664675)
• Fixed: Xcode requires an internet connection to prepare a device running iOS 17, watchOS 10, or tvOS 17 for development. When preparation for development fails due to the lack of an internet connection, Xcode doesn’t automatically retry preparing the device for development. (109511717)
• Fixed: Xcode 15 is unable to connect wirelessly for development with devices running iOS and tvOS versions older than 16.0. (113153131)Known Issues
• The Xcode Devices and Simulators Window doesn’t accurately reflect the color of devices connected to the Mac. (98003308)
• Xcode doesn’t automatically refresh the name of a device running iOS 17, watchOS 10, or tvOS 17 when the user renames the device from the Settings app. (98406919)
Workaround: Quit and restart Xcode.
• Xcode’s Devices and Simulators Window doesn’t display icons for applications installed on devices running iOS 17, watchOS 10, and tvOS 17. (108568165)
• When Xcode is wirelessly connected to a device running iOS 17, Xcode doesn’t automatically switch to using the fastest connection when the device is connected to the Mac using a USB cable. If the wireless connection is slower than the USB connection, Xcode may continue to communicate with the device using the wireless connection. (109466074)
Workaround: Disable and re-enable WiFi on the Mac to interrupt the wireless connection. Xcode automatically reconnects to the device over USB.
• The Xcode Devices and Simulators Window allows users to click on the “Take Screenshot” button when targeting devices that do not support the screenshot capability. When the button is clicked in this circumstance, Xcode hangs. (110086301)
• When an Apple TV is wirelessly paired to more than one device, Xcode’s Device and Simulator Window will show the status of the Apple TV go into a “Preparing for development” loop. (112046227)
Workaround: Pair the Apple TV to one device at a time to prevent seeing the status in a loop
• When plugging in a iPhone paired to an Apple Watch, the Apple Watch may not appear in Xcode’s Device and Simulator Window (114714784)
Workaround: Restart and replug the iPhoneDocumentation
New Features
• Xcode 15 now includes an assistant editor that provides a real-time preview of your Swift-DocC documentation as you type.
You can access Documentation Preview by first activating the assistant editor via Editor > Assistant, and then selecting “Documentation Preview” in the assistant editor’s jump bar.
The assistant editor is supported in Swift files, Objective-C header files, and documentation markup files. (56250383)
• Documentation built with Xcode 15 now includes pages for Swift extensions to external modules.
For example, you might extend SwiftUI’s Image struct to include an additional initializer:
public extension Image {
/// Create an image from the given sloth.
///
/// This initializer is useful for displaying static sloth
/// images. To create an interactive view containing a sloth,
/// useSlothView.
///
///
init(_ sloth: Sloth) {
self.init("(sloth.power)-sloth")
}
}
The documentation for this initializer will now be included alongside the rest of the documentation for your project.
If you would prefer to exclude these pages, set the DOCC_EXTRACT_EXTENSION_SYMBOLS build setting to NO. See the build settings reference for details. (63987302)
• To support easier migration from other documentation tools, some basic Doxygen-style commands like @param and @returns are now supported in Swift-DocC. (69835334)
• Diagnostics for documentation links now include details about why the link failed and offer suggestions for how to update the link to refer to a known symbol. (73903936)
• Swift-DocC now supports designing pages with fully custom layouts by utilizing new directives like @Row, @Tab Navigator, @Links, and @Metadata. To learn more, see the API Documentation. (97705029)
• Swift-DocC websites built with Xcode 15 now include a quick navigation feature that allows you to navigate directly to a page just by activating a keyboard shortcut and typing the page’s name. Press Shift+Cmd+O or Shift+/ while browsing a Swift-DocC website to activate the new quick navigation popover. (100346089)Resolved Issues
• Fixed: Swift-DocC now correctly allows you to customize the title of an API link using markdown’s link syntax.
SlothCreator includes a number of different sloth foods that you can feed to your virtual sloths.
(79992417)
• Fixed: Documentation links to symbols with unicode characters in the symbol name fail to resolve. (85531439) (FB9766665)
• Fixed: Documentation links to symbols from protocol requirements need to be disambiguated to distinguish them from a possible default implementation. (98781530) (FB11291552)
• Fixed: Xcode crashes on macOS Sonoma Beta 1 and Beta 2 when scrolling documentation in Quick Help, the documentation window, and the Swift Package dependency manager. (109810157)Known Issues
• Xcode documentation includes some sample code projects that require macOS Sonoma to run. (114836179)Indexing
Resolved Issues
• Fixed: Enabling “Build Libraries for Distribution” for a target no longer significantly slows down the indexing of its files (111703158)Instruments
New Features
• Instruments now allows for opening .memgraph files in the Allocations, Leaks and VM Tracker Instruments and visualizing timeline of live allocations if Malloc Stack Logging was enabled for the process. Xcode Memory Graph debugger features a new share button to view captured .memgraph file in Instruments. (53014738)
• Instruments 15 includes a new RealityKit Trace template. This template contains several new instruments for profiling apps and games on visionOS. The RealityKit Frames instrument will visualize the different stages of rendering a frame. RealityKit Metrics detects bottlenecks across the rendering stack and provides recommendations and key metrics to diagnose and eliminate rendering bottlenecks. These key metrics include CoreAnimation statistics, 3D Rendering Statistics, RealityKit Systems CPU time, System Power Impact, and much more. (104091516)
• Instruments 15 includes a new dyld Activity Instrument which visualizes dlopen, dlclose, static initializers and other dyld statistics relevant for application launch profiling. dyld Activity is included in the App Launch template and replaces Static Initializer Instrument. (106383871)
• Instruments 15 includes a new Audio System Trace template, providing a comprehensive view of the audio and operating systems. It visualizes how your application interacts with the audio server, giving you insight into Audio Thread I/O Cycles and other general performance metrics. (106843172)Resolved Issues
• Fixed: Significantly improved the performance of opening new documents with complex templates like Game Performance, System Trace and Metal System Trace. (72983621)
• Fixed an issue where an application would hang when selecting a HTTP transaction containing a large request or response body in the HTTP Traffic Instrument. (87893253) (FB9854651)Interface Builder
New Features
• The Cocoa storyboard Popover presentation segues support a full size content inspector property that allows the presented content to push beyond the safe area insets and past the arrow region of the popover. (102107829)
• NSView supports a Clips Bounds property inspector for finer control on whether the view’s contents should be clipped. (104581720)Resolved Issues
• Fixed: Text views, Text fields and Labels support additional text Content Types in the inspector to classify the data for birthdate, credit card, address, names, and more. (102866350)
• Fixed an issue so that the NSToolbar Item position centered inspector previews and persists to runtime correctly. (105597623)
• Fixed a compilation issue with some iOS storyboards that are marked with a target runtime of “iOS.CocoaTouch.iPad.” (111328594) (FB12453705)Known Issues
• Interface Builder documents using custom App fonts may load incorrect font at runtime. (113624207) (FB12903371)
Workaround: Set font manually in code.Linking
New Features
• A new linker has been written to significantly speed up static linking. It’s the default for all macOS, iOS, tvOS and visionOS binaries and anyone using the “Mergeable Libraries” feature. The classic linker can still be explicitly requested using -ld64, and will be removed in a future release. (108915312)Known Issues
• Binaries using symbols with a weak definition crash at runtime on iOS 14/macOS 12 or older. This impacts primarily C++ projects due to their extensive use of weak symbols. (114813650) (FB13097713)
Workaround: Bump the minimum deployment target to iOS 15, macOS 12, watchOS 8 or tvOS 15, or add -Wl,-ld_classic to the OTHER_LDFLAGS build setting.
• Weak symbol imports are linked as non-weak imports, when used from LTO object files. (115521975) (FB13171424)
Workaround: Add -Wl,-weak_reference_mismatches,weak or -Wl,-ld_classic options to the OTHER_LDFLAGS build setting.Localization
New Features
• String Catalogs (.xcstrings) are a new file type in Xcode that make it easy to localize your app by managing strings and keeping track of translation progress. Xcode automatically extracts localizable strings from source code to keep any String Catalogs in sync. String Catalogs can be viewed and edited in a native editor to preview and manage the localized strings in your project. To get started, add a new String Catalog via the File Chooser or migrate existing .strings and .stringsdict files by choosing Edit > Convert > To String Catalog… in the Menu Bar. (67254382)
• The Localization Catalog Editor now displays the translation status of strings when viewing and editing exported strings (for files where this information is available). (79101944)
• Xcode now gives you more flexibility when localizing App Intents phrases. You can now add or remove phrases in App Shortcuts .xcstrings independently in each locale using the String Catalog editor. (97283450)
• Exporting localizations from a Swift Package target will now prefer to generate string tables in the String Catalog format for targets that already contain at least one String Catalog. (106170507)Resolved Issues
• Fixed: Xcode now gives you the option to unlocalize a resource when removing all localizations from a localizable file in the File Inspector. (11795220)
• Fixed an issue where there was no way to add a new localization when exporting localizations in a Swift package. New localizations can now be added using the String Catalog editor. (92296781)
• Fixed: Xcode now builds multi-platform targets on all platforms when exporting localizations. (99457038)
• Fixed: Using the return and tab keys in the String Catalog editor will now move focus to the next text field. Use option (⌥) to enter newlines and tab characters. (107203366)
• Fixed: The build system will now consistently produce an error if a String Catalog coexists with .strings or .stringsdict files of the same name, within the same target. (108866595)
• Fixed an issue where importing a Localization Catalog with translated strings from a String Catalog would not add the appropriate supported languages to the project. (109236378)
• Fixed: Migrating InfoPlist.strings to InfoPlist.xcstrings now prefers to keep comments from the original .strings file when present. (110333696) (FB12242621)Metal
Resolved Issues
• Fixed: Xcode’s GPU debugging service automatically tries to connect to all devices running iOS 17, watchOS 10, and tvOS 17 that have been discovered in the local area network. If the device trusts the Mac, it accepts the connection and may drain its battery at a faster rate than normal for a sleeping device. (108682066)Metal Debugger
New Features
• The Geometry Viewer and Shader Debugger are now available for Mesh and Object render stages. Bound resources now supports filtering by shader access for Mesh pipelines. (81698727)
• The Metal Debugger has been updated with improved support for MetalFX. You can easily navigate to your MetalFX calls, see the bound resources, and compare the input and output results. The dependencies viewer has also been updated so that you can see where your input dependencies are coming from and even see how long it takes to complete the upscaling work. (101047483)
• The Buffer Viewer has been updated with new features, improved user interface, and performance improvements. New features include data search, column pinning, column filtering, and type casting. (101241716)Organizer
New Features
• Some crashes that were the result of a Foundation exception have their exception reason displayed in the Organizer. If there is an exception reason, it’s displayed in the inspector to the right of the backtrace view. (103453197)Particle Emitters
Resolved Issues
• Fixed: Adding a particle emitter or loading a particle emitter in Reality Composer Pro can result in a crash on an Intel-based Mac. (110794948)
• Fixed: The particle emitter property called simulation Space has been renamed to particles Inherit Transform, with possible values changing from .global/.local to false/true. (111411344)Playgrounds
New Features
• The Playgrounds console uses Xcode 15’s new console and gains features such as inline find. (42891656) (FB5398496)
• The result sidebar in Xcode Playgrounds shows summaries for all expressions on the line, and a new control allows you to see a popover with details about each expression. (105740414)
• The Playgrounds Map template has been updated to use modern MapKit API. (107284909)Resolved Issues
• Fixed: The result sidebar in Xcode Playgrounds always shows a summary of the most recent result instead of the number of results. (105108520)
• Fixed: Selecting an inline result in Xcode Playgrounds highlights the source code that produced the result. (105426026)
• Fixed: SwiftUI spring animations now have a dedicated visualization result. (106978230)
• Fixed: Inline results can’t be added from the results sidebar. (111376539)
• Fixed: macOS Playgrounds may fail to launch on some macOS Sonoma configurations in Xcode 15.0. (111478555)Previews
New Features
• The preview canvas has a new control for picking which device to use for previewing. By default it tracks the device family of the selected run destination, but a specific device can be selected. This should be used in favor of the preview Device modifier. (100562366)
• Previews can now be created with the #Preview macro. This includes support for previewing SwiftUI, UIView & UIViewController, NSView & NSViewController, and widget timeline providers, timeline entries, and live activities. (101566716)
• macOS previews now show window chrome and toolbars in the canvas. (105705642)
• Selecting a device connected to your Mac for previewing now previews exclusively for that device. The selection mode and variants mode now also use the connected device for rendering content to show in Xcode. (106208191)
• Right clicking on a Preview Provider in the source editor now offers an action to automatically convert it to the new #Preview API. (107319323)
• The #Preview can now be used in projects with deployment targets prior to iOS 17 and macOS 14. Usages of #Preview for SwiftUI can also be previewed on OS versions earlier than iOS 17 and macOS 14 by adding @available(iOS 16.0, macOS 13.0, *) to the #Preview (or whichever version you’d like to preview). Usages of #Preview for UIKit & AppKit views and view controllers, and for widgets can’t be previewed on OS versions prior to iOS 17 and macOS 14. (110676526)Resolved Issues
• Fixed: Previews failed when renaming or deleting the actively edited file. (62916700)
• Fixed: Previews failed when using @objc annotations on certain types. (96018813)
• Fixed: Canvas settings such as canvas mode, device settings, and the selected preview device are maintained when navigating files. (100999447)
• Fixed: Index of pinned preview is lost when navigating files. (106986986)
• Fixed: Projects could take several minutes to open the Previews canvas after updating the project on disk. (107974497)
• Fixed: Previews can crash when running on iOS 14.x and earlier devices. (108129587) (FB12125687)
• Fixed: Previews failed when pinning and navigating to a file not in the same target as the pinned preview. (108738163)
• Fixed: Previews failed when using @objc annotations on some types. (108892859)
• Fixed: Timeline entries in the preview canvas did not update when navigating files. (109223294)
• Fixed: Previews failed when syncing StoreKit configuration files in watchOS apps. (109238974)
• Fixed: #Preview instances that return a UIViewController and NSViewController properly follow or do not follow the safe area. (109281049)
• Fixed: Previews did not refresh the device picker in the canvas when connecting new devices to your Mac. (109661791)
• Fixed: New Widget projects created on macOS 13 fail to build. (109897205)
• Fixed: Using the #Preview syntax failed when the project defined local types for View and Preview. (110290974)
• Fixed: Previews failed when using #Preview in a project that did not import SwiftUI but had types named the same as some SwiftUI types. (110584929) (FB12304442)
• Fixed: #Preview can’t reference symbols in Swift type extensions when they’re defined in the same module as the Preview. (110671628)
• Fixed: Closing a project after previewing for macOS would keep multiple instances of the app under preview running. (110743090)
• Fixed: Previews can fail when editing in files with functions marked @nonobjc. (111355441) (FB12457473)
• Fixed: Previews content for macOS can shrink to zero size when previewed on a secondary display. (111533438)
• Previewing view code in a SwiftData app results in a linker failure for the canvas despite that code compiling successfully for device and simulator. (111657477)
• Fixed: On-devices previews can fail when first plugging in devices. (111712368)
• Fixed: Previews can fail when editing in files using the new Swift syntax for switch and if/else expressions. (111819050) (FB12528170)
• Fixed: Previews can fail when navigating between a file previewed in a widget and a file previewed in an app target. (111874103)
• Fixed: Previewing a view inside of a Swift Package or framework fails. (113143384)Known Issues
• Previews can fail when previewing files in a widget shared by both a watchOS app and an iOS app. (108017929)
• After loading a LiveActivity preview and making a code change, Xcode will get in a state where all previews time out across any project. (111934738)
Workaround: Restart Xcode.
• AppKit previews in projects that have a deployment target less than macOS 14.0 will fail to compile. (113047811)
Workaround: Add a @available(macOS 14.0, *) annotation to the #Preview.Reality Composer
Deprecations
• Starting in Xcode 15, Reality Composer for macOS is no longer included, but remains available for iOS and iPadOS on the App Store. Reality Composer Pro will be available in a future release. (114833716)RealityKit
Resolved Issues
• Fixed: Some 3D models loaded with model3D or ModelEntity(named:) and make use of MaterialX may take longer or fail entirely to load. (111301582)Sanitizers
Resolved Issues
• Fixed: Programs built with Address Sanitizer will hang on launch on Intel-based Macs. (111288234)ShazamKit
Resolved Issues
• Fixed: SHManagedSession doesn’t work on simulator. (109672477)Signing & Distribution
Known Issues
• Xcode may crash if you encounter an error while notarizing your app. (115425915) (FB13163393)
Workaround: You may need to sign a new Program License Agreement in your account at https://developer.apple.com/account. If that does not resolve the issue, you can also notarize with an older version of Xcode or using the notarytool command line utility.Signing and Distribution
New Features
• The Archive action is now available when the simulator run destination is selected. Building an archive with the simulator selected produces an app with all the CPU architectures for the devices on the selected platform. (13094592)
• The Xcode Signing & Capabilities tab in the project editor now supports adding Apple approved managed capabilities that are associated with your development team and App ID. Associated managed Capabilities are visible in the Library and work with automatic signing. (27253063) (FB5468762)
• xcodebuild -exportArchive supports using App Store Connect authentication keys to upload apps to App Store Connect and the Apple notary service. (76036452)
• Xcode now delivers app upload status push notifications to the person who uploaded to App Store Connect. (100033585)
• Xcode Organizer window now supports streamlined archive distribution. Uploading or exporting an archive can now be accomplished with one click. Streamlined distribution methods use recommended settings. The custom method allows selection of other options. (103967573)Resolved Issues
• Fixed: If your app integrates with Game Center, make sure that the com.apple.developer.game-center entitlement is present in your Entitlements.plist file. Previous Xcode versions automatically injected the entitlement into your app’s signature if it was present in your provisioning profile. That behavior was inconsistent with most other entitlements, and has been removed in Xcode 15. (106596235)
• Fixed: Resolved an issue where the “Manage version and build number” distribution option in Xcode and Xcode Cloud overwrote the version and build number of framework dependencies in apps. When distributing an app, framework dependencies retain their original version and build numbers. (106869375)
• Fixed: Automatic signing may fail to create a provisioning profile for DriverKit Driver targets. (109588156)
• Fixed: When uploading using the streamlined distribution workflow the optionally exported ExportOptions.plist is missing destination key/value. (114233867)Known Issues
• Streamlined distribution methods in the Xcode Organizer window don’t support all the same error recovery options available when using the custom workflow. For example: if uploading an app without an app record, using streamlined distribution, Xcode shows an error rather than allowing you to create an app record. (109097705)
Workaround: Use the custom method.Simulator
Resolved Issues
• Fixed: The simulator application running on macOS 14 beta 1 may crash if a game controller is connected. (110038857)Known Issues
• Status bar overrides may be set incorrectly when using the iOS 14 or later simulator runtime. (101511614) (FB11716688)
• Simulator doesn’t support all features of Spatial Audio. You can use Simulator to test a subset of audio features; however, final testing should be performed on device. (109912117)Source Control
New Features
• Source Control operations and Xcode Cloud operations have been moved into a new combined “Integrate” menu replacing the “Source Control” menu. (105752873)
• Xcode now fully integrates with git’s staging features and committing code is now performed in a non-modal fashion. (107490188)Resolved Issues
• Fixed an issue that could erroneously insert additional apostrophes when reviewing pull requests. (107586336)
• Fixed: Upstream changes may be displayed as staged changes in the Xcode editor. (109285038)
• Fixed an issue which may cause git credential helper keychain items to be deleted. (109411746) (FB12190300)Known Issues
• In-line Code Review Mode does not show when “Show Source Control Changes” is disabled in Xcode Settings. (114499800)
Workaround: Use Side-by-Side Mode instead.Deprecations
• Xcode 15 no longer includes Xcode Server. Xcode Cloud is the best way to get automated build/test/deploy workflows for your code changes. The xcodebuild tool is also available for custom automation needs. (99606507)Source Editor
New Features
• Inactive code in #if … #endif blocks is now dimmed. This can be disabled in the Text Editing > Display preferences. (2450148)
• The Editor > Structure > Toggle Comments now supports commenting a selection within a single line. (9245498)
• Quick Help now supports rendering images that are included in a documentation comment. Both external images referenced via URL and local images from your project’s documentation catalog are supported. (45258339) (FB5708868)
• Xcode now supports accessing SDK framework documentation by invoking Quick Help on a reference to a module name. For example, activating Quick Help by option-clicking on an import SwiftUI statement now shows SwiftUI’s documentation. (46583395) (FB5667593)
• Jump to definition “gd” Vim command is now supported. (81116920) (FB9404427)
• The Show Code Actions command has been replaced with Show Quick Actions to quickly access any menu command. By default, Command-clicking a token in the editor now performs Jump to Definition. This can be changed in the Navigation preferences. Control-clicking a token brings up the standard contextual menu that now contains all the commands that were available in the Code Actions. (86179596)
• Added Format to multiple lines command to the Editor > Structure menu to split code onto separate lines. It has a default key binding of control-M. (93150897)
• Editing with VoiceOver support has been improved. Source code landmarks and line number information now appear in the VoiceOver “More Content” menu. Accessories, including breakpoints, source control changes, and code folding ribbons appear as VoiceOver linked items. Source Editor Indentation preferences are also synced with VoiceOver’s speech and sound indentation preferences. Additionally, navigating the Source Editor with VoiceOver has been improved and important sections of the editor are now included as VoiceOver Window Spots. (100877198)
• When using QuickHelp, information for multiple symbols is shown when the type is ambiguous. (101256759)
• In Code Completion, functions that only contain one default parameter, now show as automatically expanded in code completion. Pressing right arrow on a function that contains more than one default parameter, expands to show all possible permutations of its parameters. (103815908)
• Select inner block “i<” and “i>” Vim commands are now supported. (104433144)
• Standalone and attached macros can be expanded in-line in the editor with the Editor > Expand Macro command. (104491696)
• Code completion now suggests names when declaring a type in Swift. (106005529)Resolved Issues
• Fixed: The font size used in the Quick Help popover now automatically adjusts to match the size of the editor’s current theme. (6955736)
• Fixed: The source editor shouldn’t add an extra line when hitting Return right before a closing curly brace. (64872737)
• Fixed: A number of issues were fixed with the syntax highlighting of multi-line string literals and string interpolations. (75009350)
• Fixed: Jump to counterpart “%” Vim command now works in visual mode. (79076961) (FB9146442)
• Fixed: Typing an open paren when an entire content of the line is selected incorrectly inserts newlines before and after the selected code. (98690994)
• Fixed: With “trim trailing whitespace” turned on, don’t trim whitespace when discarding changes for a section of code or an entire file. (102984729)
• Fixed: Scroll upwards “^u” / downwards “^d” Vim commands now extend selection in visual mode. (103835213)
• Fixed: Put text after cursor “p” Vim command now inserts text without an extra new line. (104037351)
• Fixed: Scroll upwards “^u” / downwards “^d” Vim commands now handle count prefix. (104635013)
• Fixed: Select paragraphs forward “{” / backward “}” Vim commands now extend selection in visual mode. (104782625)
• Fixed: Change case “gu{motion}” and “gU{motion}” Vim commands now change the characters rather than the whole word. (104870847)
• Fixed: The source editor may hang for a short period while opening a file if the current toolchain doesn’t match the selected Xcode. (109723219)Known Issues
Original source
• Live I - April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 15, 2026
Xcode 15.0.1 Release Notes
Xcode ships SDKs for iOS 17, iPadOS 17, tvOS 17, watchOS 10, and macOS Sonoma, with faster test launches, fixed Instruments leak detection, and an Interface Builder font loading fix.
Update your apps to use new features, and test your apps against API changes.
Overview
Xcode 15.0.1 includes SDKs for iOS 17, iPadOS 17, tvOS 17, watchOS 10, and macOS Sonoma. The Xcode 15.0.1 release supports on-device debugging in iOS 12 and later, tvOS 12 and later, and watchOS 4 and later. Xcode 15.0.1 requires a Mac running macOS Ventura 13.5 or later.
General
Resolved Issues
- Fixed: Executing Unit/UI tests from Xcode on the iOS Simulator takes an extended time to launch on first run of the suite. (115187363) (110330776) (FB12237092)
Known Issues
- Xcode 15 is unable to connect wirelessly for development with devices running iOS and tvOS versions older than 16.7. (116591034)
Workaround: Connect iOS devices running affected OS versions to the Mac using a USB cable.
Instruments
Resolved Issues
- Fixed: Leaks instrument never detects leaks. (116020104)
Interface Builder
Resolved Issues
- Fixed issue that caused Interface Builder documents using custom App fonts to load incorrect font at runtime. (116019276)
Test Report
Known Issues
- Test Report may present a screenshot or screen recording attachment that is unaccessible (112145122)
- April 2026
- No date parsed from source.
- First seen by Releasebot:Apr 15, 2026
Xcode 15.1 Release Notes
Xcode ships support for new Apple SDKs and expands on-device debugging, while adding StoreKit pricing and purchase intent testing, plus Xcode Cloud manual start conditions. This release also fixes a wide range of simulator, device, testing, linking, and Interface Builder issues.
Update your apps to use new features, and test your apps against API changes.
Overview
Xcode 15.1 includes SDKs for iOS 17.2, iPadOS 17.2, tvOS 17.2, watchOS 10.2, and macOS Sonoma 14.2. The Xcode 15.1 release supports on-device debugging in iOS 12 and later, tvOS 12 and later, and watchOS 4 and later. Xcode 15.1 requires a Mac running macOS Ventura 13.5 or later.
General
Resolved Issues
- Fixed: Executing Unit/UI tests from Xcode on the iOS Simulator takes an extended time to launch on first run of the suite. (115187363) (110330776) (FB12237092)
- Fixed: Swift macro definitions from the macOS/iOS/tvOS/watchOS SDKs are not available in Swift Playgrounds. (112122752) (FB12581131)
- Fixed: The simulator may crash when opening Settings or Action Button settings on iPhone 15 Pro devices. (115388496)
App Intents
Resolved Issues
- Fixed: Apps that have adopted AppIntents features from iOS 17.0, watchOS 10.0, and macOS 14.0 or beyond but run on iOS 16.0, watchOS 9.0 or macOS 13.0 may crash. (118082753)
Device Support
Known Issues
- Copying debug symbols from an Apple Watch running watchOS 10.3 Beta 2 may take longer than expected, approximately 10-20 minutes. (120428859)
Devices
Resolved Issues
- Fixed an issue in which files would appear to be missing when downloading the contents of a data container from a device, or when getting the list of files in a container. (101007362)
- Fixed: The ability to install apps using IPA files which was present in previous versions of Xcode has now been restored. (112295481)
- Fixed an issue which caused Core Device Service to exhaust sandbox memory over time, resulting in Xcode being unable to install apps on a device. (115682803)
- Fixed: The file transfer capability in Xcode previously could be used to access a container on the device for an app or app extension that was not yet installed. This access is now prevented. If this functionality has been previously used, it could prevent the installation of an app or app extension. To get out of this state, back up, erase, then restore the device. (115949353) (FB13201417)
- Fixed: Xcode is unable to connect to a watch running watchOS 9 or earlier if it is paired to an iPhone running iOS 17 or later, and may cause excessive battery drain on any such watch in close proximity. (116557139) (FB13239145)
- Fixed: Xcode may keep AppleTV display awake after developer is done working with it. (117165859)
Known Issues
- In certain circumstances, an app can’t read the contents of its own data container after replacing the content of the data container using Xcode or devicectl. (116698465) (FB13253099)
- Running a WatchApp that requires the companion iOS app to be installed will result in an error if the run destination is set to a Watch via iPhone Simulator pair. (119640671)
Workaround: Select a singular Watch Simulator run destination and then Run.
Instruments
Resolved Issues
- Fixed: Leaks instrument never detects leaks. (115440742)
Interface Builder
Resolved Issues
- Fixed issue that caused Interface Builder documents using custom App fonts to load incorrect font at runtime. (113624207) (FB12903371)
Deprecations
- @IBDesignable views are deprecated and will be removed in a future release. (115873872)
Linking
Resolved Issues
- Fixed: Binaries using symbols with a weak definition crash at runtime on iOS 14/macOS 12 or older. This impacts primarily C++ projects due to their extensive use of weak symbols. (114813650) (FB13097713)
- Fixed: Weak symbol imports are linked as non-weak imports, when used from LTO object files. (115521975) (FB13171424)
Optic ID
Resolved Issues
- Fixed: Even though Optic ID appears in Simulator, it isn’t possible to simulate Optic ID enrollment. (112460069)
Previews
Resolved Issues
- Fixed: AppKit previews in projects that have a deployment target less than macOS 14.0 will fail to compile. (113047811)
Reality Composer Pro
Resolved Issues
- Fixed: Reality Composer Pro now correctly export ACES OCIO names for color spaces to USD when they’re selected by the user in UI, otherwise the existing color space is used. (106431182)
- Fixed: Statistics shown in bottom panel ignore Shader Graph Materials when counting Textures. (109681637)
- Fixed: While in Selection Mode, Statistics shown in the bottom panel may count resources twice (e.g. same texture counted twice). (110007062)
- Fixed: Copy and paste menu items may be disabled in the Edit menu when nothing is selected in the scene. (110181840)
- Fixed: Some library assets can’t be downloaded by clicking on the download button or using Download menu item. (110209688)
- Fixed: Some image formats are exported as-is when exporting a scene as a USDZ file from Reality Composer Pro resulting in an invalid USDZ. (110538624)
- Fixed: Locked items in the scene hierarchy could still allow editing operations to be performed. (110545827)
- Fixed: Audio asset “AtmosphereJungle” doesn’t load and will be removed in upcoming release. (110725118)
- Fixed: Reality Composer Pro Acoustic Environment preview does not switch back to None. (110876824)
- Fixed: Issue navigator may still display stale package dependency errors even after the error is fixed. (110906050)
- Fixed: The Particle Emitter ‘Is Local’ property is renamed to: ‘Particles Inherit Transform’ which determines if the entity’s transform also affects the particles. This also adds a new ‘Fields Are Local’ property which is not functional. (111410569)
- Fixed: Reconstructing an object with Object Capture Model can result in a crash on an Intel-based Mac. (111645963)
- Fixed: Directly opening the .rkassets folder with Reality Composer Pro can overwrite parts of the project causing data loss. (112414255)
- Fixed: Audio mix groups are not functional at runtime. (113226910)
Known Issues
- Reality Composer Pro might quit unexpectedly after switching audio devices from a Studio Display to another device, such as AirPods or built-in speakers. (109912081)
Workaround: Save the project and quit Reality Composer Pro, switch the audio output device, then reload the project.
- Subsequent launches of app in Simulator might not play audio on launch (113052899)
Workaround: You can keep a reference to the AudioPlaybackController, either in a variable or a collection, replacing instances of entity.playAudio(someAudioFileResource) with controller = entity.playAudio(someAudioFileResource) where the controller variable keeps a reference to the sound for the expected duration of playback. Keeping a reference to the controller should work around this issue until fix is available.
Signing & Distribution
Resolved Issues
- Fixed: Resolved an issue that prevented xcodebuild from installing the Apple eWorldwide Developer Relations intermediate certificate into the keychain. (81581660)
Simulator
Resolved Issues
- Fixed: Xcode isn’t offering the latest iOS simulator runtime for downloading when an older one exists. (116372892)
StoreKit
New Features
- New pricing properties price, currency, and currencyCode are now available on Transaction. If an offer was applied to the transaction, a new property offer is available to see information about it (id, type, payment mode), as well as convenience properties offerID, offerType, and offerPaymentMode. (106650768)
StoreKit Testing in Xcode
New Features
- New testing functionality to send Purchase Intents to apps using StoreKit Testing in Xcode from the Transaction Manager. (101034395)
Resolved Issues
- Fixed an issue causing the StoreKit transaction manager to sometimes display duplicate devices in the navigator after launching an app from Xcode. (117541432)
Swift
Resolved Issues
- Fixed: Swift apps built with Xcode 15.0 crash on launch on macOS 10.13. (114820860)
Swift Packages
Resolved Issues
- Fixed: If the Package.swift file of a Swift App Playground project has been hand-edited to include unit test targets, the app playground fails to build with an error about duplicate commands. (113752456)
Test Report
Resolved Issues
- Fixed: Test Report may present a screenshot or screen recording attachment that is unaccessible (112145122)
- Fixed: Test Report’s Gallery View may be missing screenshots in cases with one run destination and one test plan configuration (117428402)
Testing
Resolved Issues
- Fixed: Unit test bundles hosted by extension-based WatchKit applications fail to run on device destinations when code coverage is enabled in the active test plan. (118158060)
visionOS
Known Issues
- iOS apps with a deployment target set to 17.2 fail to run on Apple Vision Pro. (117105090)
Workaround: Set the iOS deployment target to 17.0 or earlier in the project or target’s build settings.
Xcode Cloud
New Features
- Xcode now supports configuring a new Manual start condition in Xcode Cloud workflows. (112108570)
XCTest
Known Issues
- Test Action report logs may appear in less human readable form when os_log’s are output. (118455129)
Workaround: Set this User Default on your system by running the following command in terminal. defaults write com.apple.dt.Xcode IDEDisableConsoleLibLogRedirectLoggingForTestActions -bool YES
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.
Similar to Apple with recent updates:
- Anthropic release notes563 release notes · Latest May 15, 2026
- OpenAI release notes660 release notes · Latest May 15, 2026
- Perplexity release notes24 release notes · Latest May 11, 2026
- Google release notes1372 release notes · Latest May 15, 2026
- xAI release notes71 release notes · Latest May 14, 2026
- Cursor release notes79 release notes · Latest May 13, 2026