Xcode 12 GM Released

The Xcode 12 GM image has just been released and can be selected as follows:

macos:
    xcode: 12.0.0

Thank you all for your patience while we have worked round the clock to expedite this short-notice GM release!

Apple had some issues with their Xcode downloads yesterday causing the wrong Xcode build to download, but we can confirm that this release is Xcode 12.0 build 12A7209. For the full manifest, please check the link at the end of this post.


If you are still requesting 12.0.0-UA, from the early Xcode 12 beta releases, in your config please be aware that this version number has been deprecated and will be removed on 5 October 2020. Please update your config to request 12.0.0


:warning: Attention macOS and Apple Silicon Developers :warning:

Apple has indicated that macOS Big Sur and Apple Silicon developers should continue to use Xcode 12 beta 6 for the moment, so we have retained this image and you can access it by requesting:

macos:
    xcode: 12.0.0-beta

Ruby Changes

As a result of the System Ruby (2.6.3) becoming increasingly incompatible with various gems (especially those which require native extensions) due to the way it is secured and recent changes to clang, we have decided to switch the default Ruby to 2.7 via chruby.

This should allow greater compatibility out of the box with gems moving forward and will resolve most of the issues people have been hitting with Ruby in the recent Xcode 12 releases. For the vast majority of users this switch will be transparent as common gems, such as Fastlane, run without issues on 2.7.

We still provide Ruby 2.5 and 2.6 which you can switch to and the System Ruby can still be switched to via chruby by adding the following to the start of your job:

-run: echo 'chruby system' >> ~/.bash_profile

Software Updates

We are shipping Cocoapods 1.10 rc1 as the default Cocoapods version as this version is compatible with Xcode 12.


Major Software Changes from 11.x series

We will no longer be shipping Python 2 in our images due to it hitting EOL status and causing issues during installation as it is no longer maintained by Homebrew. If you require Python 2, we would suggest moving to a previous Xcode image, or creating your own tap for the Python 2 package.

We have bumped OpenJDK to version 11 (LTS) from OpenJDK 8 due to the latter being deprecated.

macOS version has been bumped up to 10.15.5 from 10.15.4.


Image Info

Xcode 12.0 Build version 12A7209 is installed at /Applications/Xcode-12.GM.seed.app

The following runtimes are installed:

  • iOS 13.5
  • iOS 14.0
  • tvOS 13.4
  • tvOS 14.0
  • watchOS 6.2
  • watchOS 7.0

The full manifest of installed software can be found here.

4 Likes

Thank you Circle! I had a late last night too and thank you for keeping up to date so your customers can deliver

2 Likes

Thanks @bytesguy :+1:

2 Likes

We are having a build issue with this new image that we were not seeing on any of the betas before.

We try the GM locally and it builds fine.

However on CircleCI we see 100% failures now. The build log:

Command line invocation:
    /Applications/Xcode-12.GM.seed.app/Contents/Developer/usr/bin/xcodebuild -resolvePackageDependencies -scheme SchemeName -project ./Appname.xcodeproj -configuration Debug

Resolve Package Graph

Fetching https://github.com/{companyname}/Kingfisher.git

xcodebuild: error: Could not resolve package dependencies:
  The server SSH fingerprint failed to verify.

Wondering if anyone else is seeing anything similar or has any ideas for what this might be.

Tried doing an ssh build via CircleCI and then when it failed just building on the command line directly via

/Applications/Xcode-12.GM.seed.app/Contents/Developer/usr/bin/xcodebuild -verbose -resolvePackageDependencies -scheme SchemeName -project ./Appname.xcodeproj -configuration Debug

and get the same thing.

Tried deleting GitHub from ~/.ssh/known_hosts and running that again on the off chance the fingerprint there was bad.

same error.

Tried switching package dependency reference in the project from https:// to git@github.com:…

but get the same error.

Works fine with the beta from multiple local Macs either way.

Has anyone else run into issues on bundle install?

I get the following error when running CircleCI after setting Xcode to 12.0.0

Traceback (most recent call last):
	2: from /Users/distiller/.rubies/ruby-2.7.1/bin/bundle:23:in `<main>'
	1: from /Users/distiller/.rubies/ruby-2.7.1/lib/ruby/2.7.0/rubygems.rb:294:in `activate_bin_path'
/Users/distiller/.rubies/ruby-2.7.1/lib/ruby/2.7.0/rubygems.rb:275:in `find_spec_for_exe': Could not find 'bundler' (1.16.0.pre.3) required by your /Users/distiller/ios/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:1.16.0.pre.3`

Exited with code exit status 1

So the 12.0.0-beta image still works for us (Xcode 12 beta 6 it seems). I hope you’ll please leave that as an option until this Xcode weirdness gets ironed out. Thank you.

Thank you @haikusw! We’ve updated the announcement to include this case (under the :warning: )

cc: @circleci-user

Sure. Thanks. Any idea what the error means / is caused by?

xcodebuild: error: Could not resolve packag e dependencies:
The server SSH fingerprint failed to verify.

Seems like an image issue since it works fine locally, but ¯_(ツ)_/¯

I wonder if it’s because the image is using macOS 10.15.5 instead of the latest macOS 10.15.6 that we are all using locally?

@circleci-user This will be because of the Ruby change in the Xcode 12 image. You may want to revert to the system ruby. Please see: https://circleci.com/docs/2.0/testing-ios/#images-using-xcode-12-and-later

1 Like

@haikusw This has been happening intermittently since Xcode 11 and appears to be a bug in Xcode. Can you try: https://support.circleci.com/hc/en-us/articles/360044709573-Swift-Package-Manager-fails-to-clone-from-private-Git-repositories

2 Likes

It’s not a private repo in this case, but I’m happy to try the work-arounds in that blog post. Thank you.

Update: That seems to have resolved the issue. Nice!

Might want to update that post to indicate that it may be necessary for non-private GitHub repos now also.

Thanks for the tip @bytesguy (!).

2 Likes