Xcode 10.2.1 image released

ios
xcode
macos
#1

We have released an Xcode 10.2.1 image today. You can select the image by adding the following to a job in config.yml :

macos:
  xcode: 10.2.1

These are the changes in this image compared to Xcode 10.2:

  • The host OS is now macOS Mojave version 10.14.4.
  • Xcode is now version 10.2.1 Build 10E1001 .
  • The included simulators are:
    • iOS 12.2
    • iOS 11.4
    • iOS 10.3.1
    • watchOS 5.2

The system Ruby is unchanged at 2.3.7p456. We also have Ruby 2.4.6 and 2.5.5 available to use via chruby.

The full manifest of the installed software is available here.

A raw diff of the changes is available here.

1 Like
Xcode 10.2 image released
#2

Great news!
I just want a simple confirmation: in the examples it’s like that

    macos:
      xcode: "10.2.1"

We need to specify a string or a number?

#3

Our config processor will accept either a string or a number for this field, although YAML will always treat 10.2.1 as a string internally.

If you want to check your config locally, you can always use circleci config process .circleci/config.yml. If you are using version: 2.1 in your config, then you should get very detailed feedback if the schema does not match.

1 Like
#4

HI,

I have changed my xcode version to 10.2.1 but its failing on CIrcle CI while installing wget. Below is the full trace for the error I am getting.

#!/bin/bash --login -o pipefail
brew install wget --with-libressl
^D^DUsage: brew install [options] formula

Install formula.

formula is usually the name of the formula to install, but it can be specified
in several different ways.

Unless HOMEBREW_NO_INSTALL_CLEANUP is set, brew cleanup will be run for the
installed formulae or, every 30 days, for all formulae.

-d, --debug                      If brewing fails, open an interactive
                                 debugging session with access to IRB or a
                                 shell inside the temporary build directory
    --env                        If std is passed, use the standard build
                                 environment instead of superenv.If super
                                 is passed, use superenv even if the formula
                                 specifies the standard build environment.
    --ignore-dependencies        An unsupported Homebrew development flag to
                                 skip installing any dependencies of any
                                 kind. If the dependencies are not already
                                 present, the formula will have issues. If
                                 you're not developing Homebrew, consider
                                 adjusting your PATH rather than using this
                                 flag.
    --only-dependencies          Install the dependencies with specified
                                 options but do not install the specified
                                 formula.
    --cc                         Attempt to compile using provided
                                 compiler. compiler should be the name
                                 of the compiler's executable, for instance
                                 gcc-7 for GCC 7. In order to use LLVM's
                                 clang, use llvm_clang. To specify the
                                 Apple-provided clang, use clang. This
                                 parameter will only accept compilers that
                                 are provided by Homebrew or bundled with
                                 macOS. Please do not file issues if you
                                 encounter errors while using this flag.
-s, --build-from-source          Compile the specified formula from source
                                 even if a bottle is provided. Dependencies
                                 will still be installed from bottles if
                                 they are available.
    --force-bottle               Install from a bottle if it exists for the
                                 current or newest version of macOS, even if
                                 it would not normally be used for
                                 installation.
    --include-test               Install testing dependencies required to
                                 run brew test.
    --devel                      If formula defines it, install the
                                 development version.
    --HEAD                       If formula defines it, install the HEAD
                                 version, aka. master, trunk, unstable.
    --fetch-HEAD                 Fetch the upstream repository to detect if
                                 the HEAD installation of the formula is
                                 outdated. Otherwise, the repository's HEAD
                                 will be checked for updates when a new
                                 stable or development version has been
                                 released.
    --keep-tmp                   Don't delete the temporary files created
                                 during installation.
    --build-bottle               Prepare the formula for eventual bottling
                                 during installation.
    --bottle-arch                Optimise bottles for the given architecture
                                 rather than the oldest architecture
                                 supported by the version of macOS the
                                 bottles are built on.
-f, --force                      Install without checking for previously
                                 installed keg-only or non-migrated
                                 versions.
-v, --verbose                    Print the verification and postinstall
                                 steps.
    --display-times              Print install times for each formula at the
                                 end of the run.
-i, --interactive                Download and patch formula, then open a
                                 shell. This allows the user to run
                                 ./configure --help and otherwise
                                 determine how to turn the software package
                                 into a Homebrew package.
-g, --git                        Create a Git repository, useful for
                                 creating patches to the software.
-h, --help                       Show this message.

Error: invalid option: --with-libressl
Exited with code 1

Please suggest how to solve this issue?

#7

We’ve noticed that with the image for Xcode 10.2.1 there’s a change when it comes to java. It looks like we switched from built-in java to the open jdk.

In our builds we use the tool to fetch java home:

/usr/libexec/java_home

For previous images (e.g. one for Xcode 10.2.0) it returns standard macOS path:

/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home

while for image with Xcode 10.2.1 it returns:

/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jre/Contents/Home

Was this change done on purpose?

The main problem we face that java binary is in under different path in this java_home.

Regards,
Aleksander Zubala

#8

The java change is down to some licensing changes made by oracle that affected the homebrew package we use to install java.

You can get the full details in https://github.com/Homebrew/homebrew-cask-versions/issues/7253

1 Like
#9

Do we have any resolution for the issue we are facing for Xcode 10.2.1

#10

I believe you are getting this error because of this. What happens if you try brew install wget?

Xcode 10.2 image released
#11

I’m not too familiar with using wget, but the error message suggests that the problem is with your brew install command:

brew install wget --with-libressl

and the output:

Error: invalid option: --with-libressl

What happens when you just run brew install wget? This seems to work for me:

version: 2.1
jobs:
  build:
    macos:
      xcode: 10.2.1
    steps:
      - checkout
      - run:
          environment:
            HOMEBREW_NO_AUTO_UPDATE: "1"
          command: brew install wget
      - run: wget "https://circleci.com"