-
Notifications
You must be signed in to change notification settings - Fork 134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quick fix to ignore new iOS 18 runtime downloadables #370
Conversation
With introduction if Xcode 16 and iOS 18 simulators, a breaking change for xcodes was introduced through the simulators API. ("https://devimages-cdn.apple.com/downloads/xcode/simulators/index2.dvtdownloadableindex") In order to keep current functionality working, I made 2 modifications: 1. Make runtime source optional. This is needed as iOS 18 downloadable does not have that value. 2. Add support for new `cryptexDiskImage` content type. As iOS 18 downloadable comes with new type of `contentType`, we should parse it in order to be able to process rest of the response. In RuntimeInstaller, I've added logic to handle new optional and new content type be throwing error if those downloadable were to be used. Test cases and fixtures were also updated to handle these new cases.
+1 Currently both app and command-line are not able to list runtimes due to the mentioned breaking change. |
@MattKiazyk Could you please review this fix so that you can merge this PR as soon as possible?? |
see #368 |
@MattKiazyk Is there anything blocking this fix being merged? |
Thank you for working on this! Great fix, looking forward to the merge! |
Hey @alvar-bolt, thanks for the fix. Trying to test it, but still facing this issue: $ git clone -b alvar/ios-18-quickfix https://github.com/alvar-bolt/xcodes
$ cd xcodes
$ make install
$ xcodes runtimes
...
100%: Build succeeded
Error: keyNotFound(CodingKeys(stringValue: "source", intValue: nil), Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "downloadables", intValue: nil), _PlistKey(stringValue: "Index 114", intValue: 114)], debugDescription: "No value associated with key CodingKeys(stringValue: \"source\", intValue: nil) (\"source\").", underlyingError: nil)) Am I doing something wrong here? |
I followed these same steps and it worked fine for me. Did you uninstall the existing version of xcodes before you did this? |
@ashtl, fair enough. I was doing this on GitHub Actions and seems like it had the old version of Replacing $ git clone -b alvar/ios-18-quickfix https://github.com/alvar-bolt/xcodes
$ cd xcodes
$ make install
$ /usr/local/bin/xcodes runtimes Moving forward, now I'm struggling to install the runtime itself, have you tried this? $ sudo /usr/local/bin/xcodes runtimes install 'iOS 16.4'
Downloading Runtime iOS 16.4
Installing Runtime
Error: Failed executing: `/usr/bin/xcrun simctl runtime add /Users/runner/Downloads/iOS_16.4_Simulator_Runtime.dmg` (2).
Error: Process completed with exit code 1. Weird that there is no stacktrace. |
If you try to add the downloaded runtime yourself outside of xcodes with I expect you already have the runtime installed - you can run |
@ashtl, it's not installed, and the reason for the failure is still unclear. It happens only with iOS 16.*, other runtime versions work fine. Anyways, thanks for your help, for now I'll stick with a different tool to download the runtimes, at least until this fix is released. |
With introduction if Xcode 16 and iOS 18 simulators, a breaking change for xcodes was introduced through the simulators API. ("https://devimages-cdn.apple.com/downloads/xcode/simulators/index2.dvtdownloadableindex")
In order to keep current functionality working, I made 2 modifications:
cryptexDiskImage
content type. As iOS 18 downloadable comes with new type ofcontentType
, we should parse it in order to be able to process rest of the response.In RuntimeInstaller, I've added logic to handle new optional and new content type be throwing error if those downloadable were to be used.
Test cases and fixtures were also updated to handle these new cases.