Supported Configurations
- Xcode 10 beta requires a Mac running macOS
10.13.4
or later - Xcode 10 beta includes SDKs for
iOS 12
,watchOS 5
,macOS 10.14
, andtvOS 12
. - 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.
- 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.
- 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. 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. - The “Stack” button in the canvas bar has been replaced with a pop-up menu containing all
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 - Resizing a
UIStackView
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. - 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. - 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. - 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)
// prints [Suit.heart, Suit.club, Suit.diamond, Suit.spade]
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.
Download Xcode 10 Beta IDE