actions / runner-images

GitHub Actions runner images
MIT License
9.17k stars 2.84k forks source link

Add Xcode 14.0 beta 1 #5702

Closed bielikb closed 1 year ago

bielikb commented 1 year ago

Tool name

Xcode 14.0 beta 1

Tool license

Apple, Inc.

Add or update?

Desired version

14.0 beta 1

Approximate size

7.3GB

Brief description of tool

Xcode IDE

URL for tool's homepage

developer.apple.com

Provide a basic test case to validate the tool's functionality.

No response

Platforms where you need the tool

Virtual environments where you need the tool

Can this tool be installed during the build?

no

Tool installation time in runtime

No response

Are you willing to submit a PR?

no

miketimofeev commented 1 year ago

Hi @bielikb! We will deploy the new image with Xcode 14 beta later this week.

bielikb commented 1 year ago

Hi @miketimofeev,

thanks a lot for a prompt response and I'll keep watching this issue :)

li-bei commented 1 year ago

Hi @miketimofeev,

Xcode 14 doesn't include watchOS SDK and tvOS SDK by default, will new image includes all SDKs?

miketimofeev commented 1 year ago

@li-bei thanks for the heads-up, we haven't noticed it. Most likely not, but we will investigate

li-bei commented 1 year ago

@miketimofeev Thank you for the quick response.

I'd suggest pre-download watchOS SDK and tvOS SDK for new images, otherwise users may need download ~3GB size SDK every time.

aaroncrespo commented 1 year ago

@miketimofeev agree with Bei Li, if the environment doesn't come pre-populated with SDK's, as they historically have, users will need to devise a hosting solution themselves to avoid downloading several GB runtimes for their macOS jobs.

For example the download to support iOS 14.0.1 is nearly 6GB compressed. And xcodebuild currently has no mechanism to only download specific SDK's via CLI.

Screen Shot 2022-06-09 at 9 46 32 AM
miketimofeev commented 1 year ago

@li-bei @aaroncrespo thanks for the information. Unfortunately, we have faced another issue that was brought by Xcode 14 — simulators can't be installed via xcrun simctl create 'Test simulator iPhone 8 (13.0)' 'iPhone 8' 'iOS13.0' command using Xcode 13.* version with the error: Unable to create a device for device type: iPhone 8 (com.apple.CoreSimulator.SimDeviceType.iPhone-8), runtime: iOS 13.0 (13.0 - 17A577) - com.apple.CoreSimulator.SimRuntime.iOS-13-0 (unavailable, runtime path not found) We are currently investigating the issue and decided to postpone Xcode 14 beta rollout until we got some results.

aaroncrespo commented 1 year ago

@miketimofeev yes that error would be expected if the SDK isn't downloaded and installed. Which is why Bei and I are asking if the image will be generated with the SDK's already downloaded and installed.

zorgiepoo commented 1 year ago

@li-bei @aaroncrespo thanks for the information. Unfortunately, we have faced another issue that was brought by Xcode 14 — simulators can't be installed via xcrun simctl create 'Test simulator iPhone 8 (13.0)' 'iPhone 8' 'iOS13.0' command using Xcode 13.* version with the error: Unable to create a device for device type: iPhone 8 (com.apple.CoreSimulator.SimDeviceType.iPhone-8), runtime: iOS 13.0 (13.0 - 17A577) - com.apple.CoreSimulator.SimRuntime.iOS-13-0 (unavailable, runtime path not found) We are currently investigating the issue and decided to postpone Xcode 14 beta rollout until we got some results.

I don't understand this how this particular example is a new problem. Xcode 14 comes with iOS16.0 not iOS13.0 which was trying to be added here. Similar to how Xcode 13 comes with versions of iOS 15.x, which are the only ones listed on the macos-12-Readme. This example isn't using tvOS or watchOS too. This same command fails for me on Xcode 13.4 too.

bielikb commented 1 year ago

xcrun simctl create 'Test simulator iPhone 8 (13.0)' 'iPhone 8' 'iOS13.0'

@miketimofeev Xcode 13.0 was shipped with iOS 15.0 SDK.

It looks like you're missing runtime environment for simulators running on iOS 13.0 (shipped with Xcode 11.0). Or maybe it was a typeo?

Brett-Best commented 1 year ago

https://github.com/actions/virtual-environments/pull/5742 Any idea on a timeline for getting a CI image that has Xcode 14b1 added back in?

miketimofeev commented 1 year ago

@Brett-Best I'm afraid we are still investigating and can not provide any ETA

bielikb commented 1 year ago

@miketimofeev Xcode 14 beta 2 is up. Could you try out that one? I can also close this ticket and open another one for 14A5229c if needed

Taken from release notes:

Fixed: iOS simulators 15.5 and earlier, watchOS simulators 8.5 and earlier, and tvOS simulators 15.4 and earlier fail to launch on Intel-based Macs running macOS 13.
miketimofeev commented 1 year ago

@bielikb sure! We will give it a try. No need to create a new ticket.

miketimofeev commented 1 year ago

@bielikb I'm afraid the same issue in our tests with beta 2. We will continue our investigation

An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=401):
The iOS 13.0 simulator runtime is not available.
runtime path not found
Download the iOS 13.0 simulator runtime from the Components section in Xcode's Preferences.
Unable to create a device for device type: iPhone 8 (com.apple.CoreSimulator.SimDeviceType.iPhone-8), runtime: iOS 13.0 (13.0 - 17A577) - com.apple.CoreSimulator.SimRuntime.iOS-13-0 (unavailable, runtime path not found)
tytan652 commented 1 year ago

Can you explain why did you try to install/use a iOS 13 simulator ? macOS 12 image seems to have only simulators for iOS 15 and later.

https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md#installed-simulators

vsafonkin commented 1 year ago

Can you explain why did you try to install/use a iOS 13 simulator ? macOS 12 image seems to have only simulators for iOS 15 and later.

https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md#installed-simulators

Hi @tytan652, we need to be sure that our customers would be able to install additional iOS SDKs and use it.

Brett-Best commented 1 year ago

Would it be possible to create an macOS 13 beta image with the Xcode 14 betas?

ggoraa commented 1 year ago

Are there any news yet? Eagerly waiting for Xcode 14 to be available in GH Actions!

miketimofeev commented 1 year ago

Would it be possible to create an macOS 13 beta image with the Xcode 14 betas?

It would be, but no ETA, I'm afraid.

ggoraa commented 1 year ago

Guys, there is already Xcode 14 Beta 3, are there any ETAs about Xcode 14 arriving at least on macos-12 images?

erikng commented 1 year ago

Why can't you just install xcode 14 with the simulators it comes bundled with for now? Something is more ideal than nothing.

I'd really like to build a new version of my application through github and I am blocked by this. I personally don't need the simulators, just the application.

miketimofeev commented 1 year ago

@erikng the problem is that the simulators for any other Xcode versions can't be installed after Xcode 14 is added to the image. In our pre-production set of tests, we use Xcode 13.2.1 and install ios 13 simulator (but the issue happens with the newer ios versions as well) using the sudo xcversion simulators --install='iOS 13.0' and xcrun simctl create 'Test simulator iPhone 8 (13.0)' 'iPhone 8' 'iOS13.0' commands and get an error on the second command:

Successfully installed iOS 13.0 Simulator
Installing iPhone 8 test simulator
Invalid runtime: iOS13.0
##[error]Bash exited with code '145'.
Brett-Best commented 1 year ago

@miketimofeev would it be possible to create a new macOS 12 image (with a different agent name) with this as a known issue? Then only deploy a limited amount for the people that want to opt into it.

It would be great to get macOS 13 ASAP, though not expecting much given how long macOS 11 and 12 took.

miketimofeev commented 1 year ago

@Brett-Best I'm afraid it's quite a complicated process. We are currently trying to find a workaround.

erikng commented 1 year ago

@erikng the problem is that the simulators for any other Xcode versions can't be installed after Xcode 14 is added to the image. In our pre-production set of tests, we use Xcode 13.2.1 and install ios 13 simulator (but the issue happens with the newer ios versions as well) using the sudo xcversion simulators --install='iOS 13.0' and xcrun simctl create 'Test simulator iPhone 8 (13.0)' 'iPhone 8' 'iOS13.0' commands and get an error on the second command:

Successfully installed iOS 13.0 Simulator
Installing iPhone 8 test simulator
Invalid runtime: iOS13.0
##[error]Bash exited with code '145'.

do you think it has to do with

Fixed: After installing Xcode 14 beta 3, Xcode 13.3.1 and 13.4.1 no longer show their respective iOS Simulators. Relaunch Xcode 14 beta 3 and bring up the Platforms Preference pane. Afterwards, you can relaunch the older Xcode to get the correct Simulators. (96100752)

Known Issues

If you manually unmount or detach a simulator runtime disk image (such as by using diskutil eject or umount), Simulator and Xcode may not be able to determine whether the runtime is installed or not. Attempts to re-download the runtime results in failure with a duplicate runtime error. (89589210)

Workaround: Restarting causes Simulator to re-mount the runtime disk image. Alternately you can use xcrun simctl runtime to locate the affected runtime disk image, delete it, then use Xcode to re-download it.

Simulator runtime disk images in /tmp that you add using xcrun simctl runtime add are deleted. (93858264)

Workaround: Place the simulator runtime disk image somewhere other than /tmp/ before passing it into xcrun simctl runtime add.

from: https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-14-release-notes

abasore commented 1 year ago

Hi @miketimofeev, I see that this issue hasn't had any updates for a week. Just wanted to check in if there is an ETA for xcode-14 support on macos-12? Thanks!

miketimofeev commented 1 year ago

@abasore we are still debugging the issue, no ETA, I'm afraid.

PatTheMav commented 1 year ago

Support for Xcode 14 would be highly appreciated given new Frameworks (and also new functionality added to existing Frameworks) which are only available with new SDK versions available on the runners.

Right now I'm implementing features available on macOS 13, but cannot provide (automatic) nightly builds for testing as neither is available on runners.

leotm commented 1 year ago

i know you guys working hard investigating/debugging

just noting CircleCI not supporting macOS 13 yet either but Xcode 14 since last month (b2) and couple wks ago (b3) (VM manifest) with known issues noted

similar with BitRise but with macOS w 13.0 SDKs, on Intel and M1

keep up the good work

Kiruel commented 1 year ago

Have you got any news on this one ? (btw Xcode 14 beta 3 is available)

sjavora commented 1 year ago

It's beta 4 now in fact...

miketimofeev commented 1 year ago

The issue still persists in beta 4 as well

enricenrich commented 1 year ago

@miketimofeev Temporarily, can't you do like CircleCI (ref.) and offer the Xcode 14 Beta image with its current limitation? That would already unblock many of us for now. It's better this than nothing... 😕

PatTheMav commented 1 year ago

Not to put too fine a point on it, but the oldest simulator made available in Xcode 14 targets iOS 13.7. Given Apple's observed behaviour of focusing support on the current version plus prior two versions (which in this case would only include iOS 16, 15, and 14) it wouldn't come as a shock to me that iOS 13 is not considered a "supported" OS anymore and only the most recent simulator is made available as a nice gesture (and xcrun simctl create 'Test simulator iPhone 8 (13.7)' 'iPhone 8' 'iOS13.7' works just fine).

If people still need to test/build against iOS 13 (Apple most probably would rather have them focus their efforts on iOS 16), they'd still have Xcode 13-based images available to them.

PS: Do note that iOS 13 simulators used to have lots of issues running on M1 machines, so I wouldn't be surprised if Apple is more than happy to drop support for anything that doesn't play well with M1.

Brett-Best commented 1 year ago
Screen Shot 2022-08-02 at 12 46 22 am

This is from Xcode 14b4, you can add all the way back to iOS 12.4.

leotm commented 1 year ago

nice ^ for React Native we deprecated 11.0 for 12.4 in March, getting 13.7 sim too on Xcode 14b3 so time to upg to b4 and on-device debugging for iOS 11 still supported in b4

zorgiepoo commented 1 year ago

This is from Xcode 14b4, you can add all the way back to iOS 12.4.

For me, it doesn't show anything below iOS 13.7

Screenshot 2022-08-01 at 6 23 06 PM

.

Maybe it shows more options if you've older versions of Xcode installed.

zorgiepoo commented 1 year ago

My other Mac (which is on Monterey (instead of Ventura) and also has Xcode 13.4 installed) shows me more Simulator runtimes down to iOS 12.4. If I download iOS 13.0 Simulator using Xcode 14 (beta 4)'s UI, I can later run:

xcrun simctl create 'Test simulator iPhone 8 (13.0)' 'iPhone 8' 'iOS13.0'

Without any issue over here. @miketimofeev is using xcversion to install the Simulator instead which I think is the only difference in these setups. (I don't have xcversion installed and it doesn't appear to be a standard tool).

ggoraa commented 1 year ago

image I think this info useful to the issue

Got from release notes of Xcode 14 beta 4

PatTheMav commented 1 year ago

This is from Xcode 14b4, you can add all the way back to iOS 12.4.

For me, it doesn't show anything below iOS 13.7 Screenshot 2022-08-01 at 6 23 06 PM .

Maybe it shows more options if you've older versions of Xcode installed.

I'm happy to be wrong and you could be right that this might depend on older versions being installed in tandem - with just Xcode 14b4 installed 13.7 is the oldest iOS simulator available on my machine, but that one's also on a macOS 13 already.

A30008228-christian commented 1 year ago

@bielikb I'm afraid the same issue in our tests with beta 2. We will continue our investigation

An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=401):
The iOS 13.0 simulator runtime is not available.
runtime path not found
Download the iOS 13.0 simulator runtime from the Components section in Xcode's Preferences.
Unable to create a device for device type: iPhone 8 (com.apple.CoreSimulator.SimDeviceType.iPhone-8), runtime: iOS 13.0 (13.0 - 17A577) - com.apple.CoreSimulator.SimRuntime.iOS-13-0 (unavailable, runtime path not found)

This is called out as solved in the latest Xcode 14 beta 5 release notes that dropped yesterday. https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes

image

Would you be able to confirm?

al-cheb commented 1 year ago

The new macOS-12 image with Xcode Beta5 has been deployed - https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md

image

Brett-Best commented 1 year ago

@al-cheb would it be possible to pre-install the tvOS and watchOS runtimes? They are no longer included by default.

al-cheb commented 1 year ago

@Brett-Best, please create a new issue which versions should be included by default.

Brett-Best commented 1 year ago

@al-cheb https://github.com/actions/runner-images/issues/6051 hopefully it makes sense (:

erikng commented 1 year ago

Awesome news!