Xcode is the complete developer toolset used to create apps for Apple TV, Apple Watch, iPad, iPhone, and Mac. The Xcode development environment bundles the Instruments analysis tool, Simulator, and the OS frameworks in the form of tvOS SDKs, watchOS SDKs, iOS SDKs, and macOS SDK.
- Xcode 10 requires a Mac running macOS 10.13.4 or later.
- Xcode 10 includes SDKs for iOS 12, watchOS 5, macOS 10.14, and tvOS 12.
- Xcode 10 supports running multiple concurrent versions of the Xcode app and of any associated tools such as Simulator.
- Xcode 10 can coexist with previous versions of Xcode.
- macOS Mojave has a new dark interface which brings dark mode to the Xcode 10. You can switch it on from System Preferences.
- Xcode 10 also gives you powerful tools for creating your own dark apps for macOS. Interface Builder lets you quickly switch your design and preview from light to dark.
- You can switch your app in and out of Dark Mode while debugging. This is all done using controls within Xcode that only apply to your app. No need to change your system settings.
- Library content has moved from the bottom of the Inspector area to an overlay window, which can be moved and resized like Spotlight search. It dismisses once items are dragged, but holding the Option key before dragging will keep the library open for an additional drag.
- The library can be opened via a new toolbar button, the View > Libraries menu, or the
⇧+⌘+Lkeyboard shortcut. Content dynamically matches the active editor, so the same UI provides access to code snippets, Interface Builder, SpriteKit, or SceneKit items. The media library is available via a long press on the toolbar button, the
Librariesmenu, or the
- Custom code snippets can now be added to the library via the Editor > Create Code Snippet menu item.
- Newly-created schemes are now shared by all users of an Xcode project. To create a personal scheme, uncheck the “Shared” checkbox in the “Manage Schemes” sheet.
- The Xcode 10 Source Editor now supports multi-cursor editing allowing you to quickly edit multiple ranges of code at once. You can place additional cursors with the mouse via
⌃+⇧+Clickor with column select
⌥+Click+Drag, or with the keyboard using
⌃+⇧+Upto column select up or
⌃+⇧+Downto column select down.
- With a source control-enabled project the source editor displays changes made by a developer in the gutter and shows changes made by other developers that haven’t yet been pulled into the project.
Stackbutton in the canvas bar has been replaced with a pop-up menu containing all embedding options for the selection.
- The menu for choosing a font family in the Attributes inspector now renders a preview of each font.
- Controls using named colors from an asset catalog now update as the value of the color changes.
- Image and color inspector properties that reference an asset catalog resource have a navigation button to jump to that resource. Option + click will show the resource in the Assistant Editor.
- Support for varying image and color assets by Light, Dark, and High Contrast appearances on macOS 10.14 and above.
- Support for
- Support for ARKit 3D
- The background of the asset catalog and view debugger can be set explicitly to light or dark so foreground elements display with sufficient contrast.
- Xcode's view debugger adds an option to choose between light and dark canvas background color.
- You can change the appearance of your macOS app at runtime by using the
Appearance menu, the Override Appearance menu in the debug bar, or the touch bar.
- Named colors shown in the inspector while view debugging now indicate their names and whether they are system colors.
- Again, Xcode 10 uses a new build system. The new build system provides improved reliability and build performance, and it catches project configuration problems that the legacy build system does not.
- The legacy build system is still available in Xcode 10. To use the legacy build system, select it in the
Project/Workspace Settingssheet. Projects configured to use the legacy build system will display an orange hammer icon in the Activity View.
- Xcode 10 supports running tests in parallel, which reduces the time it takes to run tests. Test parallelization is supported for macOS unit tests, as well as unit and UI tests on iOS and tvOS simulators. To enable parallelization, navigate to the scheme editor (
Edit Scheme), select the
Testaction followed by the
Infotab, and then next to your test target, click
Options. Finally, select
Execute in parallel(for macOS tests) or
Execute in parallelon Simulator” (for iOS and tvOS tests).
xcodebuildhas new command line options to control the behavior of parallel testing. Use
- parallel-testing-enabledto override the per-target setting in the scheme for whether parallelization is enabled. If you want to control the number of runners that are launched, use
Signing and Distribution
Developer IDdistribution option in Xcode's Organizer now provides support for uploading apps to Apple to be notarized. After building an archive, this option can be selected in the Organizer by clicking the Distribute App button and then selecting the Developer ID method and the Upload destination. In order to upload an app to be notarized, you must enter an Apple ID in Xcode’s Accounts preferences pane with the necessary App Store Connect role and provider membership. In addition, apps uploaded to be notarized must be signed with a Developer ID certificate. The distribution workflow can create this certificate if necessary, but requires an Apple ID account with the Agent role in order to do so.
- After uploading an app to be notarized, you can view your app’s status in the Organizer window by selecting your archive and clicking the Show Status Log button. When you receive notification that your app has been notarized, you can export it from the Organizer window by selecting your archive and clicking the Export App button. The exported app contains a stapled
ticket and is ready for distribution.
- Support for uploading apps to Apple via the command line. The xcodebuild -exportArchive command will perform an upload if the provided
ExportOptions.plistcontains a key named
upload. In addition, an Apple ID account with the necessary App Store Connect role and provider membership must be added in Xcode’s Accounts preference pane.
validationdistribution methods are supported for use from xcodebuild.
Now Xcode supports working directly with several source code collaboration platforms, including:
- GitHub and GitHub Enterprise
- Bitbucket Cloud and Bitbucket Server
- GitLab.com and GitLab self-hosted