Xcode 8.3 is now available for use on the CircleCI macOS platform. To start using Xcode 8.3 in your builds, add the following to your circle.yml:
machine:
xcode:
version: 8.3
This update also changes the base OS version to macOS Sierra.
Opt-in upgrades on macOS platform
We are also announcing opt-in upgrades for the macOS platform. This feature allows customers building iOS and Mac projects to choose when they would like to upgrade to a newer build image and Xcode version.
Going forward, we will no longer automatically change images for you. All new changes will be introduced in new images, together with new Xcode versions. Updating to those new images is opt-in.
When we release a new build image, our plan is to make small updates to it in the first two weeks in response to your feedback. After that we intend to only update the image when absolutely necessary, for example in the case of security updates.
This feature also allows us to add support for newer Xcode versions more quickly than before. Previously, we had been using a monolithic build image with multiple Xcode versions preinstalled. This update changes that to multiple images, each with a single version of Xcode installed.
Please let us know what you think in the comments. Thanks!
We’re seeing failures with fastlane after changing to 8.3 and the message points to something related with configuration of the image. Can be something wrongly configured?
I had a similar issue with my cocoapods that seems to be related to the Sierra update.
The fix for me was to execute this before calling xcodebuild: security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k circle circle.keychain
Seems to be a new behavior related to Sierra where keychain access for code signing requires a prompt from the ui otherwise.
I put it in an environment variable via the circle settings then ran it via my circle.yml in the test section on a step before my xcodebuild like below:
Unfortunately the legacy build API was removed with Xcode 8.3. Please make sure to remove use_legacy_build_api from your ./fastlane/Fastfile and update the gym call to include the export method like this:
I’m noticing that installing cocoapods (sudo gem install cocoapods -v 1.2.0.beta.3) on the container that gets utilized when using Xcode version: “8.2” installs something like 28 gems total, and in turn seems to dirty the git repository somehow.
The only difference between the two is that one is using the machine Xcode version of 8.3, as opposed to 8.2. I have ensure_git_repository_clean set on my Fastfile, which is how I ran into this issue.
Please let me know if I can provide any more information. Thanks a lot.
Upgrading fastlane to latest version fixed the 8.3 use_legacy_build_api for me but now experiencing this issue:
Running script 'Crashlytics'
▸ Running script '[CP] Embed Pods Frameworks'
** ARCHIVE FAILED **
The following build commands failed:
PhaseScriptExecution [CP]\ /Script-AF458ECBD39814D6D0B9C16F.sh
(1 failure)
[04:34:47]: Exit status: 65
[04:34:47]: 📋 For a more detailed error log, check the full log at:
[04:34:47]: 📋 /tmp/circle-artifacts.5wdqiVU/gym/....log
[04:34:47]: Found multiple versions of Xcode in '/Applications/'
[04:34:47]: Make sure you selected the right version for your project
[04:34:47]: This build process was executed using '/Applications/Xcode-8.3.app'
[04:34:47]: If you want to update your Xcode path, either
[04:34:47]:
[04:34:47]: - Specify the Xcode version in your Fastfile
[04:34:47]: ▸ xcversion(version: "8.1") # Selects Xcode 8.1.0
[04:34:47]:
[04:34:47]: - Specify an absolute path to your Xcode installation in your Fastfile
[04:34:47]: ▸ xcode_select "/Applications/Xcode8.app"
[04:34:47]:
[04:34:47]: - Manually update the path using
[04:34:47]: ▸ sudo xcode-select -s /Applications/Xcode.app