Update your apps to use new features, and test your apps against API changes.
- Xcode 10.1+
Xcode 10.1 includes SDKs for iOS 12.1, watchOS 5.1, macOS 10.14.1, and tvOS 12.1. Xcode 10.1 supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 10.1 requires a Mac running macOS 10.13.6 or later.
Support for arm64e (Preview)
To try the developer preview of arm64e, select your iOS app target in the Project Editor, find its Architectures build setting, select the Other… option, and add arm64e to the list of architectures. For more information, see Preparing Your App to Work with Pointer Authentication.
The App Store and TestFlight don't accept submissions containing arm64e. Xcode will remove arm64e content from your app when you distribute from the Organizer window. (42296212)
The navigation UI for Navigate > Open in… no longer displays individual tabs in a window as separate windows with one tab each. (31716375)
xedtool now uses the Xcode currently specified by
DEVELOPERenvironment variable. (7711481)
Apple Clang Compiler
Changes to libunwind in iOS 12.1 beta 2 resolved an issue with a small number of apps running on iPhone XS and iPhone XS Max. (44361223)
Apps that contain asset catalogs built using Xcode 10 or later with a deployment target of iOS 9.0, 9.1 or 9.2 produce content incompatible with the runtimes of those iOS versions when you’re using app thinning as part of exporting an archive for local or enterprise distribution. (46893768)
Resolved an issue that affected app compatibility with iOS 9.0, 9.1, and 9.2 when distributing an app on the App Store. App asset catalogs built using Xcode 10 with a deployment target of iOS 9.0, 9.1 or 9.2 produce content incompatible with the runtimes of those iOS versions when distributed via the App Store. Rebuild and resubmit the app using Xcode 10.1 to resolve the issue. (44535967, 45723580, 45723189)
The 40mm and 44mm wells for complications specify the correct icon sizes. (43069075, 43401397)
The new build system supports On Demand Resources (ODR). (31508570)
Fixed an issue where individual localized
.xibfiles or storyboards associated with the base file wouldn't be compiled into the product when using base localization for a
.xibfile or storyboard. (44437269)
The Breakpoint editor for Exception breakpoints now has an “ignore count” field. (21547530)
Devices running iOS 12 or later take screenshots requested from the Devices window. (42873539)
Control-dragging in the canvas to add constraints now always includes all four directions, not just the ones closest to the direction of the drag. (43618031)
Fixed an issue with Auto Layout incorrectly reporting issues when constraining views to
Improved canvas performance when switching between iPhone XS, iPhone XS Max, and iPhone XR with the device bar. (44605631)
Fixed an issue that caused the layout of watch content in the Preview assistant editor to not match the Device Bar selection. (42563683)
@IBDesignableviews now build using the new build system when it’s enabled. (31433718)
If another process, such as
simctl, shuts down a simulated device while Simulator is open, Simulator doesn't reconnect to it properly when the device is next booted. If you have multiple versions of Xcode installed, you might experience this issue when running Simulator in those other versions. (44629720)
Workaround: Quit and relaunch Simulator. To quit without shutting down all simulators, hold Option and choose Simulator > Quit Simulator…, then choose "Keep Running" in the dialog that appears.
If you indirectly modify a property using a nonmutating setter that's defined in a protocol or extension on a class instance, the Swift compiler might miscompile it by releasing the instance after the getter is invoked. This might cause the program to crash or have unpredictable behavior at runtime. (45274900)
Workaround: Break the operation up into multiple statements so that the
set operations occur in different statements:
Playgrounds in Xcode no longer log messages about fields whose types fail to demangle at runtime. (44642942)
Compilation now consistently reports the errors responsible for any failures. For example, previously, a message like “Command CompileSwiftSources failed with a nonzero exit code” could occur without an accompanying failure reason. (43033749, 44362180)
Long file paths containing white space no longer cause build failures. (44142091)
letproperty of a generic class that has function type as an argument can now be passed successfully to another function or method. (41056468)
Changes made to a captured value in a nested context is now reflected in the outer context. (SR–8398) (42742744)
A mutating method that returns
Selfon a value of protocol type can now successfully be invoked (43507711):
The compiler can now successfully form an array of heterogeneous class objects as an
Swift Standard Library
Fixedprotocol's unsafeAdding(_:), unsafeSubtracting(_:), unsafeDivided(by:), and unsafeMultiplied(by:) methods are now deprecated and will be removed in a future release.
These methods produce undefined behavior in overflow conditions. In the case of arithmetic operations, use a combination of an assert and either the
addingmethod or the
&+operator, both of which have well-defined results in cases of overflow. (43688685)
Organizational repositories now show up alongside personal repositories when cloning from GitLab.com or GitLab self-hosted accounts.
Profiling tests does not behave correctly when test parallelization is enabled. (44836817)
Workaround: Disable parallel testing while profiling by navigating to Product > Scheme > Edit Scheme… > Test > Info. Select the Options button next to your test target, and disable the "Execute in parallel" checkbox.
UI tests in projects using the legacy build system now run on iPhone XS and iPhone XS Max. (44777186)
If a UI test target app crashes during testing in Simulator, it's now correctly reported as a test failure instead of either being incorrectly considered a successful test or displaying a failure message about “Application state unknown”. (44765263)
Xcode 10.1 beta 2 and later support UI testing with devices running beta versions of iOS 12. (43796360)
Fixed an issue where the
testmethod wouldn't be called on an observer added to the shared
Bundle Did Finish(_:)
XCTestinstance if the observer was added at any point after testing had already started. (For example, after the
testmethod had been called on all the currently registered observers). (44340337)
Bundle Will Start(_:)