Supported Configurations

Xcode 10 beta requires a Mac running macOS 10.13.4 or later

or later Xcode 10 beta includes SDKs for iOS 12 , watchOS 5 , macOS 10.14 , and tvOS 12 .

, , , and . The final release of Xcode 10 will be available in the Mac App Store. Previous versions of Xcode Download from here.

Deprecation Notices

The macOS 10.14 SDK no longer contains support for compiling 32-bit applications . If

developers need to compile for i386, Xcode 9.4 or earlier is required.

New Features XCode 10 – IDE

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 ⇧⌘L

keyboard shortcut.



The library can be opened via a new toolbar button, the View > Libraries menu, or the ⇧⌘L keyboard shortcut. Custom code snippets can now be added to the library via the Editor > Create Code Snippet

menu item.

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.

Select Schemes and Run Destinations from the keyboard. Press “Ctrl+0” to open the Scheme

popup and “Ctrl+Shift+0” to open the Run Destination popup. Once the popup appears, type

enough characters to highlight the appropriate entry, use the arrow keys to highlight it, and press return to select it.





Source Editor

The Xcode 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 ⌃+⇧+Click or with column select

(⌥+Click+Drag), or with the keyboard using ⌃+⇧+Up to column select up or ⌃+⇧+Down to

column select down.

You can place additional cursors with the mouse via with column select or with the keyboard using column select up or to column select down. Updated default source editor themes for light and dark , with improved colors optimized for contrast, and taking advantage of bold and italic font traits.

Source Control

Integration with Bitbucket Cloud,Bitbucket Server source control, GitLab self-hosted source control etc.











Interface Builder (Storyboard / Xib’s)

Canvas rendering now happens in parallel, and scales based on demand and hardware to

improve the performance of edit operations, particularly for large scenes.

improve the performance of edit operations, particularly for large scenes. The “Stack” button in the canvas bar has been replaced with a pop-up menu containing all

embedding options for the selection.

embedding options for the selection. The Editor > Embed In menu item allows embedding in a tightly-wrapped view that doesn’t add

any margins to the selected content

any margins to the selected content Resizing a UIStackView or NSStackView along its distribution axis in the canvas will adjust

spacing between items.

or NSStackView along its distribution axis in the canvas will adjust spacing between items. The menu for choosing a font family in the Attributes inspector now renders a preview of each font.

Support for Large Title font text style (UIFontTextStyleLargeTitle) on iOS 11 or later, and on watchOS 5.

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



Controls using named colors from an asset catalog now update as the value of the color

changes.

changes. Inspector color pickers now use a standard pop-up button. The color swatch can be dragged by holding the Option key











iOS SDK

In iOS 12, the default value of the UITableView property

cellLayoutMarginsFollowReadableWidth is now false. This means by default, table view

cells will no longer have their layout margins increased automatically when the table view is

wider than the maximum readable width.

If you are using a table view to display text that spans multiple lines, in order to improve

readability when the table view is very wide you should opt-in to these automatic margins by

setting cellLayoutMarginsFollowReadableWidth to true, or consider adapting your layout to

better take advantage of the additional horizontal space.

is now false. This means by default, table view cells will no longer have their layout margins increased automatically when the table view is wider than the maximum readable width. If you are using a table view to display text that spans multiple lines, in order to improve readability when the table view is very wide you should opt-in to these automatic margins by setting cellLayoutMarginsFollowReadableWidth to true, or consider adapting your layout to better take advantage of the additional horizontal space. New UILabel inspector property “Marquee on Ancestor Focus” for controlling scrolling

behavior

Asset Catalog

Support for varying image and color assets by Light, Dark, and High Contrast appearances on macOS 10.14 and above.

appearances on macOS 10.14 and above. Support for CarPlay assets.

Support for ARKit 3D ARReferenceObject assets.

The background of the asset catalog and view debugger can be set explicitly to light or dark so foreground elements display with sufficient contrast.

New in Xcode 10 beta – Apple LLVM and Swift Compilers

Apple LLVM Compiler

The static analyzer is more efficient and will report additional issues on most programs.

The static analyzer checks for a common performance anti-pattern when using Grand Central

Dispatch, which involves waiting on a callback using a semaphore:

+ ( NSString *)requestCurrentTaskName { __block NSString *taskName = nil ; dispatch_semaphore_t sema = dispatch_semaphore_create( 0 ); NSXPCConnection *connection = [[ NSXPCConnection alloc] initWithServiceName:@ "MyConnection" ]; id remoteObjectProxy = connection.remoteObjectProxy; [remoteObjectProxy requestCurrentTaskName:^( NSString *task) { taskName = task; dispatch_semaphore_signal(sema); }]; dispatch_semaphore_wait( sema, dispatch_time( DISPATCH_TIME_NOW , 100 ) ); return taskName; }

Such a pattern can degrade performance and cause hangs in your application. The check is

currently disabled by default, but can be enabled using the build setting “Performance AntiPatterns with Grand Central Dispatch”.

Whats new in Swift

The new CaseIterable protocol describes types which have a static allCases property that is

used to describe all of the cases of the type. Swift will synthesize this allCases property for enums that have no associated values.

Follow this link for Swift .

code 10 beta Release Notes Xcode 10 beta Release Notes enum Suit : CaseIterable { case heart case club case diamond case spade } print ( Suit .allCases)

etc…

Swift Compiler

The Swift compiler defaults to a new compilation strategy that can greatly speed up debug

builds. This strategy allows each compilation job to process a batch of files instead of just a single file.