Make Xcode 8 Again

Our favorite from the Xcode 8 beta 3 Release Notes is actually this polite little convenience:

.xcconfig files support conditional inclusion of other .xcconfig files, using the syntax #include? instead of the usual #include (which still generates a warning if the file is missing, as before). (11003005)

Sweet! As we’ve mentioned before, it’s much more elegant maintainable and trackable to manage your project settings textually, and this makes that just that much more elegant. That’s pretty much the theme of Xcode 8, it seems: make everything that much more elegant. We thoroughly recommend that you go through the release notes with every new release, but If you’ve been to keep up with that, here’s a good TL;DR on the high points:

What’s New in Xcode 8

1. Swift 2 and 3

Up until Xcode 8, every version of Xcode was tied to a specific version of the Swift programming language. That is no longer true as of Xcode 8. Swift 3 introduces a slew of changes and a considerable number of these changes are breaking…

2. Source Editor Extensions

Developers have been asking for a native plugin architecture for many years. Source editor extensions are a first good step in that direction… [However, note that Alcatraz is dead, so this is a mixed blessing at best -Ed.]

3. Debugging

View debugging is much more powerful in Xcode 8. Reliability has improved and debugging ambiguous or unsatisfiable layouts is much easier thanks to an improved view debugger that displays runtime issues … Xcode 8 also sports a pretty impressive memory debugger for tracking down memory leaks and retain cycles…

4. Code Signing

Code signing issues should be a thing of the past with Xcode 8 … I hope Apple got it right this time. And with me tens of thousands of other developers.

5. Other Improvements and Enhancements

San Francisco Mono; Line Highlighting; Code Completion for Images

6. Documentation

The new documentation format looks gorgeous and the documentation browser is fast and easy to use. Apple also consolidated the documentation for its platforms, resulting in a much smaller memory footprint….

There’s a longer list as part of this veritably encyclopedic collection of What’s New In Everything:

New Stuff from WWDC 2016

Following the tradition from last year, here’s my complete list of all interesting features and updates I could find in Apple’s OSes, SDKs and developer tools that were announced at this year’s WWDC. This is based on the keynotes, the “What’s New In …” presentations and some others, Apple’s release notes, and blog posts and tweets that I came across in the last few weeks…

We’ll go out on a limb here and predict that the thing mentioned here you’re most interested in a deeper dive into is code signing. And here’s a discussion of team implications, and here’s an optimistic article going into thorough background detail:

Code Signing in Xcode 8

Code signing and managing provisioning profiles has been an ongoing annoyance for many developers over the years. I have written and spoken extensively to help people understand what code signing and provisioning profiles are and how they can be better managed. So, you can imagine my surprise and excitement when Matthew Firlik mentioned code signing and provisioning during the Platforms State of the Union (53:30) at this year’s WWDC. It was also revealed that the schedule contained an entire session, What’s New in Xcode App Signing, and two Labs dedicated to the topic. So, does Xcode 8 solve all of my code signing and provisioning profile grievances? Pretty much…

And if you still want more, there’s details and discussions collected over at Michael Tsai’s

Xcode 8 Tips and Issues

UPDATES:

Linting swift code; SwiftFormat

Xcode Extensions; Xcode 8 extensions; How to Create an Xcode Source Editor Extension

Simultaneous Xcode 7 and Xcode 8 compatibility

Xcode Visual Memory Debugger; Memory Graph Debugger Tips; WWDC 2016: Visual Debugging with Xcode  

Xcode 8 Document Coding Enhancements

Multiplatform, Single-scheme Xcode Projects

Stop the Xcode 8 iOS Simulator from logging like crazy

Xcode 8: New Build Settings and Analyzer Improvements

objc-dependency-visualizer: “Objective-C and Swift dependency visualizer.”

objc_dep: “Graph the import dependancies in an Objective-C project”

#278: Saving Time With Source Editor Extensions 🤖🛠

ProTip: Why debug with `print` when you can `dump`?

Speeding up Development Build Times With Conditional dSYM Generation

Reducing Swift Compile Time

Running tests with Clang Address Sanitizer; Undocumented Xcode Sanitizer Settings

UIKit Debug Mode

Better Xcode Run Script Build Phases; Xcode Run Script Build Phase debugging

Want to understand why your app launch is slow?

Open Sourcing Our Xcode Project Templates

Xcode internal debug logs

Understanding Data Race Detection by Implementing it in Swift

Colorizer: “auto-generate a Apple’s Color Palette file (.clr file) from .txt file.”

Eject – A Tool For Generating Swift Code From A Layout Created In Xcode’s Interface Builder

Refactorator / RefactoratorApp : “for refactoring Swift & now Objective-C code.”

A Visual Listing Of Many Great Xcode 8 Shortcuts

Automated Xcode Build Numbers, Late 2016 Edition

synx: “A command-line tool that reorganizes your Xcode project folder to match your Xcode groups.”

“Ever lamented over your unorganised project files? struct solves that by making your filesystem be your project structure. How it is on disk is how it is in your project. Simple.”

simMagnifier: “Easily access latest run apps on your iOS Simulators. Explore folders, edit Core Data content and much more.”

Using ccache for Fun and Profit

Creating an Xcode Project with a Built-in Playground

9 Tips for Setting up a New Xcode Project

Xcode and Regex

Automatic Memory Leak Detection on iOS

FengNiao: “A command line tool for cleaning unused resources in Xcode.”

Audible Xcode Breakpoints

How To Create Multiple Versions Of Your iOS App In Xcode Part 1

match: Code Signing with Teams

BuildTimeAnalyzer-for-Xcode: Regarding Swift build time optimizations; Swift build time optimizations — Part 2

Alex | July 23, 2016

Leave a Reply