In the next few days we will roll out the new OS X build image. The update replaces Xcode 8.2 beta with the release version, Xcode 8.2.1.
Once we fully release the image (we will announce this separately), you will be able to select Xcode 8.2.1 in your build by adding the following to your
machine: xcode: version: 8.2
In this iteration we have also fixed the issue where
chruby was not selecting the correct Ruby version during the build. The Ruby environment now works as expected.
Using simulator names in your circle.yml instead of UUIDs
We currently advise against hard-coding simulator UUIDs in your
circle.yml, as using specific UUIDs can lead to failing builds on image updates.
Instead, we suggest that you use simulator names in your
circle.yml. Simulator names can be used with a raw
xcodebuild command. For example, an
xcodebuild command for using iPhone 7 simulator with iOS 10.1 would look like this:
test: override: - set -o pipefail && xcodebuild CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= PROVISIONING_PROFILE= -sdk iphonesimulator -destination 'platform=iOS Simulator,OS=10.1,name=iPhone 7' -workspace MyWorkspace.xcworkspace -scheme "My Scheme" clean build test | tee $CIRCLE_ARTIFACTS/xcode_raw.log | xcpretty --color --report junit --output $CIRCLE_TEST_REPORTS/xcode/results.xml
Some tools like
scan only allow you to specify a device by name.
scan --scheme SchemeName --device "iPhone 7 (10.1)"
If you were using the UUID to pre-start the simulator before running the tests, it can be done using the simulator name as well:
dependencies: pre: # pre-start the simulator - xcrun instruments -w "iPhone 7 (10.1)" || true
Update Jan 13 2017:
We have replaced the list of updated iOS 10.2 simulator UUIDs with the notice suggesting using simulator names in
circle.yml instead of UUIDs.
Update Jan 18 2017:
On Jan 13 we released Xcode 8.2 and not 8.2.1 to production—right now Xcode 8.2.1 is out on all production machines. The post has been updated to reflect this change. Thank you for your understanding.