Xcode9 new features

New features of Xcode 9

Xcode is a full developer toolset for creating applications for Apple, TV, Apple, Watch, iPad, iPhone, and Mac. The Xcode development environment uses tvOS, SDK, watchOS, SDK, iOS, SDK, and macOS SDK bundled Instruments analysis tools, Simulator and OS frameworks.

Highlights of Xcode 9

Xcode 9 includes overall quality improvement and a wide range of new features.

New editor. Fast, structure based editor allows you to intelligently highlight and browse code. Includes great Markdown support.

Restructure。 Refactoring is built into the editing experience and can span Swift, Objective-C, Interface, Builder, and many other file types.

Ultra fast search “find” Navigator returns the result immediately.

Debug. Debugging iOS and tvOS devices, Metal’s new debugger, and more functions in Xcode through network wireless.

Source control. All new source code management navigator and integrated support GitHub accounts can quickly browse the repositories and push your repositories to the cloud.

Xcode server built-in. The continuous integration robot can run on any Mac with Xcode 9, without the need to install macOS Server.

New playground template. Including the iOS template, designed to run well in Xcode and Swift Playground in iPad.

New system. Xcode’s selective preview of the new build system provides higher reliability and performance.


Updated the way to define text macros using the plist file.

Define text macros for users, projects, or specific users in your project.

Custom new file header. For more information, see the custom file header in the Xcode help.

For more information, see the Xcode help.

Updated the indexing engine, including the ability to index when compiling files.

The device window is divided into separate panes for the device and simulator.

Asset catalog

Named color support.

Added a wide range of application icons.

Added a larger iOS marketing for the App icon set.

Added options to retain the image vector data to select dynamic type scaling.

Added support for HEIF images.

Architecture and connection

New Xcode 9 – New system.

Added a preview of the new build system written in Swift.

Provide higher reliability.

Capture many project configuration issues.

Improving overall build system performance.

Note that building system performance does not include compilers, linkers, and other tools used by the build system.

Currently optional and will be the default value for future versions of Xcode.

To choose a new construction system project or work area, please select “file” > “project settings” or “file” > “the workspace settings”, then select “new construction system to construct a system of” type “(preview)”.

For instructions on compatibility with existing projects, see the Xcode version specification.


New configuration for iOS hotspots and multipath TCP.

New network configurations include content filtering, proxy DNS queries, and proxy TCP and UDP connections.

New background mode for watchOS used for recording and turning direction.

A new model for tvos background extraction.

Core ML

New Xcode 9 – core ML editor.

Generating strongly typed interfaces for models.

Model compilation for device usage.


New features in Xcode 9 – network debugging of iOS and tvOS devices.

Debug iOS and tvOS devices via WiFi or wired network.

Connect via Bonjour or enter IP address.

You need to plug in the iOS device to enable network debugging.

New Xcode 9 – GPU frame capture and GPU coverage.

View commands, buffers, attachments, resources, and call stacks.

Modify the shader and save changes to your application.

Time axis of a moving sequence.

Check and modify the values of each pixel in the attachment, including color values, alpha, depth, etc..

By minimizing the texture bandwidth, minimizing the number of rendered pixels, disabling the blending stage, displaying only the wireframe, and scaling the number of mosaics, the rendered state is rendered without modifying the code.

New features in Xcode 9 – undefined behavior disinfectants.

Use undefined behavior disinfectants to find the source of the program crash, unexpected behavior, and incompatibility with future versions of Xcode.

Detects several types of undefined behavior in the C language, such as integer overflow, invalid translation, and alignment violations.

In the diagnostic editor’s diagnostic pane, undefined behavior disinfectants are enabled.

New function in Xcode 9 – main thread checker.

Detects AppKit, UIKit, and WebKit method calls that are not performed on the primary thread.

Automatically enabled during debugging, and can be disabled in the diagnostic tab of the program editor.

The main thread checker is used with the Swift and the C language.

Enhancing Breakpoint navigation by deep filtering.

Added visual indicator for modifying breakpoints.

Extend the view debugger to display the view controller and use the SceneKit and SpriteKit views.

Enhanced iOS energy meter.


The new unified browser integrates reference, sample code, and articles.

Improved document search.

A new jump bar used to navigate between pages.

Integrated sample code download.


A new split view for fixing graphics in a graphical area of a document.

Added all the policies and moved the policy selector to the new toolbar at the top of the trace document.

Enhancement type metal debugging instrument.

Metal system tracking VR supports viewing events such as synthesizer activities, pose queries, and so on

Interface Builder

Added support for the asset catalog using named colors.

Added support for new margins and baseline view constraints.

Added support for the automatic layout security area guide.

Added support for full screen WatchOS applications.

Metal 2 support

New features in Xcode 9 – Capture API.

Define explicit capture boundaries in your code.

Use the new MTLCaptureManager class and the new MTLCaptureScope protocol to program settings, manage, and trigger capture boundaries.

Manual start and stop capture using extended Xcode GPU Capture UI. You can also use Xcode to capture the API boundaries defined in your application.

New function in Xcode 9 – GPU counter.

Analyze detailed analysis indicators for specific GPU capture. In iOS and tvOS, the GPU counter displays the time line for the command encoder; in macOS, the GPU counter displays the time line for drawing or scheduling calls.

Check, render, or calculate runtime performance of pipelined phases, such as vertex shaders, fragment shaders, computational kernels, and so on.

Compare the amount of GPU time spent in each pipeline phase to find your performance bottleneck.

New features in Xcode 9 – GPU remarks.

Look for optimization opportunities in metal Shader Language code.

Debug device specific runtime problems in the shader editor.

Follow the immediate solution and instructions to improve your code.

New capabilities in Xcode 9 – intelligent filtering.

Locate specific debugging information by typing into the debug navigator. When you type and highlight matching text (such as resources, pixel formats, function names, object tags, etc.), Xcode dynamically displays recommendations.

Filter the search results by selecting options from the predefined Metal object menu.

Multiple filters using multiple matching conditions.

New Xcode 9 – VR support.

View the VR submission and the left eye / right eye submission surface.

A texture check is added to check the values of each pixel in the render target, such as color, alpha, depth, etc..

Add check the output vertex property to the buffer editor.

Add data hints to support metal objects, such as textures, buffers, and samplers.


Across Swift, C, Objective-C and C + + global rename file.

View all changes in one place.

Convert the method signature between the Swift and the Objective-C format.

Update properties, getter, setter, and composite iVars as needed.

One button change.

Fix – it automatically fills the missing case in the switch statement, and a one click protocol makes the protocol mandatory.

Extract the methods, functions, and other language specific local refactoring of all supported languages.


New features in Xcode 9 – multiple concurrent emulators.

Run multiple emulators at the same time.

Run more tests in parallel.

Test synchronization and other multi device workflows.

The new Chrome for iOS and watchOS emulators includes hardware controls, and allows easy drag and adjustment of analog device sizes.

Share information with the simulator from maps, photos, and Safari.

Added the option to run the emulator after closing the window or exiting the emulator to better integrate the xcrun with the command line tool’s simctl command.

Record the video of the simulator.

By selecting the help &gt, the simulator helps get help.

Source control

New source code management navigator for viewing branches, tags, and remote repositories of the current workspace.

The new source management inspector displays detailed information about the selected navigator project.

A new editor for branch history, including a jump bar for easy navigation.

New parallel editor for file differences.

Access to common tasks is easier and faster.

GitHub account integration, easy browsing and one click creation of projects and related GitHub repositories.

Source editor

New Xcode 9 – all new source code editors.

Faster, more features to find and replace.

Fast scrolling files of any size.

Direct manipulation of code structures, such as tokens and blocks.

Redesign integration of source code management.

A redesign of the error and warning message.

Support Markdown.


New Xcode 9 – Swift 4.

A compiler for Swift 4 and Swift 3, Swift 4, and Swift 3 can be compiled in the same project.

Improved migration experience only supports the migration of selected targets to Swift 4.

Faster generic code and reduced code size.


Xcode 9 needs to run MacOS, Sierra, 10.12.4, or later Mac.


Xcode 9 beta can coexist with previous versions of Xcode.

The pre release version of Xcode is available from developer.apple.com to authorized seed developers and packaged in compressed XIP files. To install Xcode during beta, download the XIP file, drag it into the application folder, and then double-click the file. XIP file extension in place.

Note: if you open the open security file download in the Safari preferences, the XIP file will be downloaded and automatically extended to your download folder. Drag Xcode-beta into the application folder before you start it.

In the final release, Xcode is installed through the Mac App Store.

Developer resources

The Apple Developer program for Apple Store, Apple App, iPad, iPhone and iPod touch App Store Mac access equipment, App Store and Apple TV App Store, additional support and documentation as well as for testing and deployment of resources. For more information, visit the Apple developer plan web site.

Visit the Apple developer forum to discuss any Apple Developer Software, including pre release products.

For the latest security information, visit https://support.apple.com/kb/HT1222.

About SDK and simulator

The software development kit (SDK) is a collection of frameworks (libraries, headers, and resources) that represent a particular watchOS, iOS, or macOS version of API. Most of the functions that your application obtains from the SDK are actually provided by the host operating system, which makes the correct basic SDK and operating system deployment target settings critical to application compatibility. Xcode automatically builds the latest SDK and targets the latest operating system.

If your application does not require the function of the new operating system, you can use the Xcode project settings in the operating system deployment target “option will be configured to run in the previous version of the operating system on the platform. If your project is created in the older version of Xcode, you can let Xcode update your project. For more information about this feature, see project modernization.

Important: before you submit your application to App Store, you must test it on the device that runs the supported target operating system version or version.

Automatic signature

If you are dealing with an old project that has not yet been updated to the current signing process, changes to the signing process may hinder your development.

The recommended method for enterprise and App Store developer accounts is to use Xcode automatic signature code signing applications during development and distribution. For automatic signing documents, see the Xcode help. If your old project is not configured to use an automatic signature, read the technical question and answer (QA1814) and set the auto configured Xcode to see the process of reconfiguring the Xcode project.

Automatic signing should be considered before using other technologies, but if your project needs to be signed manually, search for manual signature in the Xcode help to see the current manual signing practice.

Project modernization

When you open a project, Xcode evaluates it to see if any settings should be updated. This feature provides a simple way to ensure that your project meets the latest SDK and best practices.

Open the problem navigator to see if you need to update any content in your project. You can also select items in the project navigator, and then select editor &gt. Verify the settings.

If the problem navigator lists the modernization problem, click the problem to see a dialog box to explain the updates that should be made and allow you to perform any or all updates.

Once a change is executed, Xcode will not display warnings again, regardless of whether or not all changes have been selected. To run the check again, select the project in the project navigator, and then select editor &gt. Verify the settings.