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 circle.yml
:
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.