Xcode 11 GM Seed 1 Released

Thank you! Where are you putting this in the sequence of run commands?
I currently have:

  - checkout
  - run:
      name: Build and run tests
      command: fastlane scan
      environment:
        SCAN_DEVICE: iPhone 11 (13.0)
        SCAN_SCHEME: Scheme1

Seems like it goes after the checkout and before the run to build…

Thank you very much!

@marc When can we get an image with Xcode 11 GM Seed 2. It is already released

Yep that’s where mine goes. Right after checkout but before setting up any dependencies.

Hi sourabhgupta,

I’m deploying the new GM Seed 2 image today. We are currently limited by network speeds. We have to deploy the 70gb image to 100s of machines in the data-center each time that we release a new image.

Marc

6 Likes

@marc we’re experiencing the following issue installing gems with native extensions on the Xcode 11 GM Seed 1.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

mkmf.rb can’t find header files for ruby at
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

1 Like

Getting a similar error:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/Users/distiller/project/.vendor/bundle/ruby/2.3.0/gems/unf_ext-0.0.7.6/ext/unf_ext
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r
./siteconf20190917-698-z2nz31.rb extconf.rb
mkmf.rb can’t find header files for ruby at
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

specifying either 2.3 or 2.6.3 in .ruby-version doesn’t work.

I’m seeing this as well. Found this post for xctool that worked around it by adding --standalone to that simctl call.

But that looks like a change that would be needed to be made to fastlane if i understand it correctly.

Hi, any update on the GM Seed 2 deploy?

1 Like

Yup, I’ve just pushed it live: Xcode 11 GM Seed 2 Released

I’ve just pushed this live: Xcode 11 GM Seed 2 Released

@marc Thank you so much

Do you think that installing the command line tools will fix the Ruby headers issue? I’ve given this a try and the headers were not contained in the package.

ok. I have managed to fix the issue by using custom ruby version suggested by you. But I still think xcode11 tools should be installed.

OK, I’ve gotten to the bottom of the issue with devices. I think it’s a documentation issue.

We install a bunch of SDKs. The devices themselves are part of Xcode. For the Xcode 11.0 image here is what’s installed:

$ xcrun simctl list devicetypes
== Device Types ==
iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
iPhone 5 (com.apple.CoreSimulator.SimDeviceType.iPhone-5)
iPhone 5s (com.apple.CoreSimulator.SimDeviceType.iPhone-5s)
iPhone 6 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus)
iPhone 6 (com.apple.CoreSimulator.SimDeviceType.iPhone-6)
iPhone 6s (com.apple.CoreSimulator.SimDeviceType.iPhone-6s)
iPhone 6s Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus)
iPhone SE (com.apple.CoreSimulator.SimDeviceType.iPhone-SE)
iPhone 7 (com.apple.CoreSimulator.SimDeviceType.iPhone-7)
iPhone 7 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-7-Plus)
iPhone 8 (com.apple.CoreSimulator.SimDeviceType.iPhone-8)
iPhone 8 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus)
iPhone X (com.apple.CoreSimulator.SimDeviceType.iPhone-X)
iPhone Xs (com.apple.CoreSimulator.SimDeviceType.iPhone-XS)
iPhone Xs Max (com.apple.CoreSimulator.SimDeviceType.iPhone-XS-Max)
iPhone Xʀ (com.apple.CoreSimulator.SimDeviceType.iPhone-XR)
iPhone 11 (com.apple.CoreSimulator.SimDeviceType.iPhone-11)
iPhone 11 Pro (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro)
iPhone 11 Pro Max (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max)
iPad 2 (com.apple.CoreSimulator.SimDeviceType.iPad-2)
iPad Retina (com.apple.CoreSimulator.SimDeviceType.iPad-Retina)
iPad Air (com.apple.CoreSimulator.SimDeviceType.iPad-Air)
iPad mini 2 (com.apple.CoreSimulator.SimDeviceType.iPad-mini-2)
iPad mini 3 (com.apple.CoreSimulator.SimDeviceType.iPad-mini-3)
iPad mini 4 (com.apple.CoreSimulator.SimDeviceType.iPad-mini-4)
iPad Air 2 (com.apple.CoreSimulator.SimDeviceType.iPad-Air-2)
iPad Pro (9.7-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-)
iPad Pro (12.9-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro)
iPad (5th generation) (com.apple.CoreSimulator.SimDeviceType.iPad--5th-generation-)
iPad Pro (12.9-inch) (2nd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---2nd-generation-)
iPad Pro (10.5-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--10-5-inch-)
iPad (6th generation) (com.apple.CoreSimulator.SimDeviceType.iPad--6th-generation-)
iPad Pro (11-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch-)
iPad Pro (12.9-inch) (3rd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---3rd-generation-)
iPad mini (5th generation) (com.apple.CoreSimulator.SimDeviceType.iPad-mini--5th-generation-)
iPad Air (3rd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Air--3rd-generation-)
Apple TV (com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p)
Apple TV 4K (com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-4K)
Apple TV 4K (at 1080p) (com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-1080p)
Apple Watch - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-38mm)
Apple Watch - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-42mm)
Apple Watch Series 2 - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-38mm)
Apple Watch Series 2 - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-42mm)
Apple Watch Series 3 - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-38mm)
Apple Watch Series 3 - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-42mm)
Apple Watch Series 4 - 40mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-40mm)
Apple Watch Series 4 - 44mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-44mm)
Apple Watch Series 5 - 40mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-40mm)
Apple Watch Series 5 - 44mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-44mm)
$ xcrun simctl list runtimes
== Runtimes ==
iOS 11.4 (11.4 - 15F79) - com.apple.CoreSimulator.SimRuntime.iOS-11-4
iOS 12.2 (12.2 - 16E226) - com.apple.CoreSimulator.SimRuntime.iOS-12-2
iOS 13.0 (13.0 - 17A577a) - com.apple.CoreSimulator.SimRuntime.iOS-13-0
tvOS 12.2 (12.2 - 16L225) - com.apple.CoreSimulator.SimRuntime.tvOS-12-2
tvOS 13.0 (13.0 - 17J577) - com.apple.CoreSimulator.SimRuntime.tvOS-13-0
watchOS 5.2 (5.2 - 16T224) - com.apple.CoreSimulator.SimRuntime.watchOS-5-2
watchOS 6.0 (6.0 - 17R575) - com.apple.CoreSimulator.SimRuntime.watchOS-6-0

And then you can create any combination of these:

bash-3.2$ xcrun simctl create iphone-x-13-0 "iPhone X" com.apple.CoreSimulator.SimRuntime.iOS-13-0
134D2D6E-2D83-40E3-A784-6EA53B4916BA

I’ve re-built our docs with a new format for listing the devices and SDKs:

https://circle-macos-docs.s3.amazonaws.com/image-manifest/v1226/index.html

This now shows 2 sections: devices and runtimes, split out separately.

Hi Marc,
Thanks for improving this! I’m new to CircleCi and so have what is probably a basic question: is the build image is re-created raw for every build so we have to create the simulator device+os combination we want for every build?

Thanks.

Yes, we tear down the VM after every job is complete, all jobs start in a fresh VM.

to be honest, I’m not sure if Xcode requires that you create the simulator, or if it will create the simulator for you when you try to run tests on it.

I guess you would have steps like this:

steps:
  - checkout
  ...
  - run:
      name: Create Devices
      command: xcrun simctl create iphone-x-13-0 "iPhone X" com.apple.CoreSimulator.SimRuntime.iOS-13-0
  - run:
      name: Run Tests
      command: fastlane scan --workspace "Example.xcworkspace" --scheme "AppName" --device iphone-x-13-0

Or more declaritively:

environment:
  SCAN_DEVICE: iphone-x-13-0
steps:
  - checkout
  ...
  - run:
      name: Create Devices
      command: xcrun simctl create "$SCAN_DEVICE" "iPhone X" com.apple.CoreSimulator.SimRuntime.iOS-13-0
  - run:
      name: Run Tests
      command: fastlane scan --workspace "Example.xcworkspace" --scheme "AppName"

This is all untested, btw ^

Yah, something like that was what I was thinking we’d need. I’ll play with this later today.
Thanks for the clarification. Much appreciated.

This worked great for me. Thanks!