Great! Thanks for the quick turnaround @marc!
Any idea why xcodebuild fails to resolve package dependencies in this image? I expect this might be an Xcode bug.
I keep getting: Authentication failed because the credentials were rejected, but I can’t seem to debug what’s going wrong. If I ssh into the machine I can clone the offending GitHub repos through ssh, but xcodebuild still fails.
I’ve had the same issue with Xcode failing to resolve package dependencies. I believe it’s ultimately caused by this setting in
~/.gitconfig causing all GitHub URLs to be rewritten as SSH URLs:
[url "ssh://firstname.lastname@example.org"] insteadOf = https://github.com
This isn’t necessary for cloning public GitHub repos, so on my project I added an early build step to my job that overrides this with a much more specific pattern that only matches private repos in my GitHub organisation. This way all my package dependencies are still cloned over HTTPS and don’t hit the SSH host verification issue noted in the Xcode 11 release notes:
xcodebuild, resolving packages may fail to verify SSH fingerprints unless that fingerprint is already in the
Workaround: SSH into the host and verify the fingerprint from the command line before using
xcodebuild, or manually add the host fingerprint to the
Thanks for the quick turnaround. This is so helpful. One thing that would have helped going forward would be to be able to specify which beta we built with rather than being force upgraded. Having your VM change out from under us without changing our config file sometimes caused us to scramble - especially on the betas. Even if you remove the old betas a week later, it would still have given us time to migrate and fix any issues on a newer beta
@marc Is it possible to install xcode11 command line tools?
Any idea when more simulators will come to this build, like iPhoneXs not only iPhone 8 and iPhone 8 Plus?
Yeah, that seems to be a workaround for the problem. I’ve managed to get the public repos working, but the private ones still don’t work (I’ve tried https with url username / password and it rejects the SSL certificate).
I wonder why Xcode doesn’t honor the SSH configuration to allow all keys from github.com, though.
@marc Why is ruby 2.4 missing?
We have the system Ruby installed, as well as the stable releases as documented on https://www.ruby-lang.org/en/downloads/ at the time that we build the image, which is 2.5 and 2.6. Ruby 2.4 is marked as “In security maintenance phase (will EOL soon!)”, so we don’t install it.
When installing software, there is a balance that we need to maintain – the most software that we install, the larger the image, which means that it takes us longer to distribute the images, and we would have to limit the number of images that are available.
This is something that we would like to do. I’ll add a card to our backlog to track it. Logged as CIRCLE-21017.
Can you email a specific list of the devices and SDKs that you would like to email@example.com please? I’ve tried to add iOS 11, 12 and 13 for all devices, so any omissions are probably an error on our part.
Just a heads-up, it looks like Apple have released GM 2 and are now rejecting uploads from GM 1:
[11:50:30]: ERROR ITMS-90534: “Invalid Toolchain. Your app was built with an unsupported version of Xcode or SDK. If you plan to submit this build to the App Store, make sure you are using the GM version of Xcode 9 and the SDK for iOS 11, tvOS 11, watchOS 4, or macOS 10.13 or later. If you are using an Xcode beta version to test your app, make sure you are using the latest supported version. For more information about supported beta versions, view the TestFlight Release Notes (https://developer.apple.com/testflight/release-notes/).”
Ignoring ‘iPhone Xʀ (13.0)’, couldn’t find matching simulator
iPhone XR (13.0) seems to be missing now (but was present in last beta).
We will need iOS 13 simulators for a lot more devices (all iPhones from 6s onward, inclusive). Reason being: we to run tests on the older devices also.
List of ones that appear to be missing:
- iPhone 6s (11.4)
- iPhone 6s (12.2)
- iPhone 6s Plus (11.4)
- iPhone 6s Plus (12.2)
- iPhone 7 (11.4)
- iPhone 7 (12.2)
missing iPhone 7 (13.0)
- iPhone 7 Plus (11.4)
- iPhone 7 Plus (12.2)
missing iPhone 7 Plus (13.0)
- iPhone 8 (11.4)
- iPhone 8 (12.2)
- iPhone 8 (13.0)
- iPhone 8 Plus (11.4)
- iPhone 8 Plus (12.2)
- iPhone 8 Plus (13.0)
- iPhone SE (11.4)
- iPhone SE (12.2)
missing iPhone SE (13.0)
- iPhone X (11.4)
- iPhone X (12.2)
missing iPhone X (13.0)
- iPhone Xs (12.2)
missing iPhone Xs (13.0)
- iPhone Xs Max (12.2)
missing iPhone Xs Max (13.0)
- iPhone Xʀ (12.2)
missing iPhone Xʀ (13.0)
I am seeing an issue with copying system logs:
+--------------------+----+ | Test Results | +--------------------+----+ | Number of tests | 12 | | Number of failures | 0 | +--------------------+----+ [13:42:28]: ------------------------------ [13:42:28]: --- Collecting system logs --- [13:42:28]: ------------------------------ [13:42:28]: $ xcrun simctl spawn 11D27F33-48EC-41A8-875E-7D2446C12EBE log collect --output /Users/distiller/project/build/scan/system_logs-iPhone\ 5s_iOS_12.2.logarchive 2>/dev/null [13:42:29]: Exit status: 124
The same command works locally, so it might be a CircleCI environment issue?
Running into this also. Xcode 11 supports swift packages much better now so there are going to be a lot more situations where this comes up.
I’m seeing this in the checkout step in the log that looks likely to be the issue:
use git+ssh instead of https
git config --global url.“ssh://firstname.lastname@example.org”.insteadOf “https://github.com” || true
git config --global gc.auto 0 || true
but I’m not sure where that’s coming from or how to fix it (yet).
Any pointers on how to do this?
New to circleci / fastlane and not sure how I’d do this.
If I add a
- run step before the
- checkout step in the config.yml file:
- run: name: check git config command: git config -l
but that’s not showing this setting so this makes it seem like if I try to change it in this step before checkout it’s just going to get overridden by something in the checkout step (?).
Here’s what I’m using to work around the URL rewriting issue:
- run: name: Override GitHub URL rewriting command: | git config --global --unset url."ssh://email@example.com".insteadOf && git config --global url."ssh://firstname.lastname@example.org/my-org".insteadOf "https://github.com/my-org"
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.