Xcode 8.0 Swift 3.0 slow indexing and building Xcode 8.0 Swift 3.0 slow indexing and building xcode xcode

Xcode 8.0 Swift 3.0 slow indexing and building


Go to project settings, then Editor > Add Build Setting > Add User-Defined Setting, and add the following:

SWIFT_WHOLE_MODULE_OPTIMIZATION = YES

Adding this flag dropped our clean-build compile times from 7 mins to 65s for a 40KLOC swift project, miraculously. Also can confirm 2 friends have seen similar improvements on enterprise projects.

I can only assume this is some kind of bug in Xcode 8.0


I solved the problem by commenting all files and then removing comments one by one. I found that the problem is still in the array declaration as described here.

I had code like this and project was not indexing:

class {    var first: String!    var second: String!    var third: String!    var fourth: String!    var fifth: String!    func abc() -> [String] {        var array = [first, second, third, fourth, fifth]    }}

I've changed it to this and indexing started working:

class {    var first: String!    var second: String!    var third: String!    var fourth: String!    var fifth: String!    func abc() -> [String] {        var array = [first]        array.append(second)        array.append(third)        array.append(fourth)        array.append(fifth)    }}


I've had the same issue only since upgrading to Swift 3/XCode 8 and it seems to be caused by large array literals.

I was able to fix the issue by adding type annotations to the variables being assigned to the array literal, e.g.

let array: Array<String> = ["1", "2", "3", "4", "5", "6", "7", "8"]

instead of

let array = ["1", "2", "3", "4", "5", "6", "7", "8"]