The notable changes are: that the iOS SDK is now version 11.0.1 rather than 11.0 (this is the version that Xcode 9.0.1 installs). Also fastlane, carthage, node and yarn have all been bumped to the latest minor releases, and the JDK build number has changed from 144 to 152.
Please let us know if you have any questions or feedback.
It seems that some confusion can happen between the image and actual Xcode version that is present in it.
We have a large project with multiple pre-compiled Carthage dependencies. After each toolchain update we need to recompile all the dependencies and upload the resulting frameworks to GitHub release pages for each dependency. This is partly automated, but still requires quite a bit of manual effort from our side. Otherwise Carthage starts rebuilding all dependencies from scratch which adds around 15-20 mins to the build (see step bash dependencies.sh in https://circleci.com/gh/wireapp/wire-ios/1921).
So now back to the source of confusion - even specifying version: 9.0.0 in circle.yml we see that Xcode 9.0.1 is used instead. I used to think that when specifying version without patch component (e.g. 9.0) we would get the most recent Xcode version (9.0.1 currently), but when specifying full version 9.0.0 would give us that specific version. This was at least the behaviour with 8.3.2 and 8.3.3 versions several months ago.
In our case the image update in place resulted in increase of build times in some cases by 2x. I understand that this might not be relevant for smaller projects, but it would be very useful to have more granular control on which Xcode version exactly we are dealing with.