Xcode 10.0 Beta 5 Released

ios
xcode
macos

#1

We are delighted to have released Xcode 10.0 Beta 5 on CircleCI 2.0. To select the new image, add the following to your jobs in .circleci/config.yml:

macos:
  xcode: "10.0.0"

The software manifest for the image is here.

Here are the more notable changes from the 9.4.1 image:

  • Since this is a beta image, we have just the default set of simulators installed.
  • Python 3.6.5 has been replaced with 3.7.0
  • Git upgraded to 2.18.0 with git-lfs 2.5.0
  • Node is now 10.7.0 with Yarn 1.9.2

#2

Thanks for this :slight_smile:

There seem to be multiple versions of the simulators installed - see the extract from our build log:

xcodebuild: error: Unable to find a destination matching the provided destination specifier:
	{ platform:iOS Simulator, OS:latest, name:iPhone 8 }

The requested device could not be found because multiple devices matched the request.

Available destinations for the "UnitTests" scheme:
	{ platform:iOS Simulator, id:098AF8B6-3B6E-4701-8031-81402BD46807, OS:12.0, name:iPad (5th generation) }
	{ platform:iOS Simulator, id:84F834E6-99B2-40F9-A679-7F2168CA7FE2, OS:12.0, name:iPad (5th generation) }
	{ platform:iOS Simulator, id:328B5921-7B10-4EE7-B767-77CC3438E990, OS:12.0, name:iPad (6th generation) }
	{ platform:iOS Simulator, id:4D84668F-0D33-49CB-BEBF-635679B2009A, OS:12.0, name:iPad (6th generation) }
	{ platform:iOS Simulator, id:91759B85-1359-41DE-B1E1-4C78CCBB6C5A, OS:12.0, name:iPad Air }
	{ platform:iOS Simulator, id:B0BDA419-B544-4B83-8E42-B535674F6C11, OS:12.0, name:iPad Air }
	{ platform:iOS Simulator, id:15CC93ED-5649-49C2-9F57-E23C51739DEF, OS:12.0, name:iPad Air 2 }
	{ platform:iOS Simulator, id:455ACA18-25CA-4EB4-997A-1C2FE6866EE9, OS:12.0, name:iPad Air 2 }
	{ platform:iOS Simulator, id:0CD75D22-D9F0-4D92-BB83-0D5086F283A3, OS:12.0, name:iPad Pro (9.7-inch) }
	{ platform:iOS Simulator, id:10236A84-08B2-4BFE-90F4-C7F7F64ED3DD, OS:12.0, name:iPad Pro (9.7-inch) }
	{ platform:iOS Simulator, id:94A77FDB-FF5A-404A-86CF-B0A022D57E0F, OS:12.0, name:iPad Pro (10.5-inch) }
	{ platform:iOS Simulator, id:D29B38E2-BB81-4DF3-BC4C-029CE0A09F52, OS:12.0, name:iPad Pro (10.5-inch) }
	{ platform:iOS Simulator, id:554A6E22-8BF2-4644-BBCD-87EE6485FBE7, OS:12.0, name:iPad Pro (12.9-inch) }
	{ platform:iOS Simulator, id:905D08E7-6D53-46BA-ADE5-AF114BF0E8BE, OS:12.0, name:iPad Pro (12.9-inch) }
	{ platform:iOS Simulator, id:1922F001-D0D9-4C91-AC9D-207EDBAFEC8B, OS:12.0, name:iPad Pro (12.9-inch) (2nd generation) }
	{ platform:iOS Simulator, id:97BC3E59-5EB7-4619-9D77-A2A203FE2680, OS:12.0, name:iPhone 5s }
	{ platform:iOS Simulator, id:D799AF68-D67F-40DC-A8EA-1012B34CD10A, OS:12.0, name:iPhone 5s }
	{ platform:iOS Simulator, id:2B070C46-7D31-4152-8247-937534A714CC, OS:12.0, name:iPhone 6 }
	{ platform:iOS Simulator, id:B1773262-CCF1-4244-A56D-20817F8D304E, OS:12.0, name:iPhone 6 }
	{ platform:iOS Simulator, id:9F32C487-FAEC-4ABE-B00D-159EC007E50D, OS:12.0, name:iPhone 6 Plus }
	{ platform:iOS Simulator, id:C93E41D8-620B-47B8-A6F0-13FB094CE6D5, OS:12.0, name:iPhone 6 Plus }
	{ platform:iOS Simulator, id:940596C3-FA5D-43AB-8E76-458030078355, OS:12.0, name:iPhone 6s }
	{ platform:iOS Simulator, id:DE082AAD-B09C-4FA1-974C-599372C6DCF3, OS:12.0, name:iPhone 6s }
	{ platform:iOS Simulator, id:5CAB102F-63A1-473A-B0F7-F6D077C49F9E, OS:12.0, name:iPhone 6s Plus }
	{ platform:iOS Simulator, id:78CCA148-1E5C-4FE2-AB0B-B60C097676C7, OS:12.0, name:iPhone 6s Plus }
	{ platform:iOS Simulator, id:287AA6F8-BD9E-4759-975E-2B67EC238440, OS:12.0, name:iPhone 7 }
	{ platform:iOS Simulator, id:B05CCE51-34A4-47FF-8C3C-B6B6B83AABE0, OS:12.0, name:iPhone 7 }
	{ platform:iOS Simulator, id:74A46C58-65F2-4682-81A7-5737AC974582, OS:12.0, name:iPhone 7 Plus }
	{ platform:iOS Simulator, id:9474B284-B3F7-42DE-83AF-84DC0AB4CA9A, OS:12.0, name:iPhone 7 Plus }
	{ platform:iOS Simulator, id:6BC05DA0-F901-47F0-96C2-AB9C58C9AA73, OS:12.0, name:iPhone 8 }
	{ platform:iOS Simulator, id:937E00CC-D2EF-4029-893F-5523FAB787D2, OS:12.0, name:iPhone 8 }
	{ platform:iOS Simulator, id:CFCEC3F3-726C-4473-B764-E494311CCF77, OS:12.0, name:iPhone 8 Plus }
	{ platform:iOS Simulator, id:DBAC6B7A-8880-4675-A37D-A68D1012C4C7, OS:12.0, name:iPhone 8 Plus }
	{ platform:iOS Simulator, id:264C7219-ABEB-438F-B302-7FDFC5682926, OS:12.0, name:iPhone SE }
	{ platform:iOS Simulator, id:5A7A0D69-700F-4514-9CD4-685219595060, OS:12.0, name:iPhone SE }
	{ platform:iOS Simulator, id:6A150893-8228-411F-9907-DBC535BDA10A, OS:12.0, name:iPhone X }
	{ platform:iOS Simulator, id:CC8B996B-D125-4A43-8C14-8669154F281E, OS:12.0, name:iPhone X }

Any suggestions how we can work around this, given the IDs change on every build?


#3

Here’s my current workaround:

  1. Use xcrun simctl boot "iPhone 8" to pre-boot the simulator, rather than using Instruments.
  2. Grab hold of the first simulator ID into an enviroment variable:
    SIMULATOR_ID=`xcrun instruments -s devices | grep -m 1 "iPhone 8 (12.0)" | cut -d "[" -f 2 | cut -d "]" -f 1
  3. Use the env variable in the xcode test command: -destination "platform=iOS Simulator,OS=latest,id=$SIMULATOR_ID"

Xcode 10 Beta VM
#4

You can also reset simulators with approach I wrote here: Xcode 10 Beta VM


#5

This seems more reliable than my previous approach!


#6

Hello! Is there a timeline for getting the 10.0.0 image updated to use Beta 6? Thanks!