Xcode 11 GM Seed 1 Released

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://git@github.com"]
        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:

  • When using xcodebuild , resolving packages may fail to verify SSH fingerprints unless that fingerprint is already in the ~/.ssh/known_hosts file. (50686014)

    Workaround: SSH into the host and verify the fingerprint from the command line before using xcodebuild , or manually add the host fingerprint to the ~/.ssh/known_hosts file.

2 Likes

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

1 Like

@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?

Hi Zerob,

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.

Hi Daniel,

This is something that we would like to do. I’ll add a card to our backlog to track it. Logged as CIRCLE-21017.

Marc

1 Like

Hi Fassko,

Can you email a specific list of the devices and SDKs that you would like to support@circleci.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.

Thanks,

Marc

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.

Thank you.

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

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?

1 Like

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://git@github.com”.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 (?).

TIA

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://git@github.com".insteadOf &&
            git config --global url."ssh://git@github.com/my-org".insteadOf "https://github.com/my-org"
1 Like

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