Xcode 10.2.1 image released

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

1 Like

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

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

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

1 Like

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"
1 Like

Hi,

we were using java to build our cordova base Android app. Worked like a charm in Xcode 10.2.0, but with the new one (and new java), there is no javac binary present on the system and also JAVA_HOME is somehow totally wrong. Any advice on that?

Thanks, Jan.

For what it’s worth, this is how we had to solve it:

sudo rm -rf /Library/Java/JavaVirtualMachines/*

curl -sL https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u212-b03/OpenJDK8U-jdk_x64_mac_hotspot_8u212b03.pkg \
  > OpenJDK8U-jdk_x64_mac_hotspot_8u212b03.pkg

curl -sL https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u212-b03/OpenJDK8U-jre_x64_mac_hotspot_8u212b03.pkg \
  > OpenJDK8U-jre_x64_mac_hotspot_8u212b03.pkg

sudo installer -pkg OpenJDK8U-jdk_x64_mac_hotspot_8u212b03.pkg -target /
sudo installer -pkg OpenJDK8U-jre_x64_mac_hotspot_8u212b03.pkg -target /
2 Likes

It worked for me.
Thanks for your support

I just have started facing another issue on circle ci and below issue failing my build on circle ci: -

#!/bin/bash --login -o pipefail
rake verify
bundle exec fastlane unit_test

[20:37:49]: $ set -o pipefail && env NSUnbufferedIO=YES xcodebuild -workspace NedBankApp.xcworkspace -scheme NedBankApp -destination ‘platform=iOS Simulator,name=iPhone 5s,OS=12.2’ -derivedDataPath ‘./build’ test-without-building | tee ‘/Users/distiller/Library/Logs/scan/NedBankApp-NedBankApp.log’ | xcpretty --report html --output ‘/Users/distiller/banking-app-ios/fastlane/test_output/report.html’ --report junit --output ‘/Users/distiller/banking-app-ios/fastlane/test_output/report.junit’ --report junit --output ‘/var/folders/1b/gl7yt7ds26vcyr1pkgld6l040000gn/T/junit_report20190610-1896-10bfv8o’
[20:37:49]: ▸ Loading…
[20:37:55]: ▸ 2019-06-10 20:37:55.713 xcodebuild[2036:10556] IDETestOperationsObserverDebug: Writing diagnostic log for test session to:
[20:37:55]: ▸ /Users/distiller/banking-app-ios/build/Logs/Test/Test-NedBankApp-2019.06.10_20-37-54–0700.xcresult/1_Test/Diagnostics/NedBankAppTests-F3F4F051-3061-4BDD-8A3B-2F5C6BBA82E3/NedBankAppTests-B7F3FD94-EB78-47C9-B5FE-0F0F865FFAFB/Session-NedBankAppTests-2019-06-10_203755-X0VuzJ.log
[20:37:55]: ▸ 2019-06-10 20:37:55.714 xcodebuild[2036:10486] [MT] IDETestOperationsObserverDebug: (74954FA9-542A-42C5-9DF6-6D2A120395E2) Beginning test session NedBankAppTests-74954FA9-542A-42C5-9DF6-6D2A120395E2 at 2019-06-10 20:37:55.714 with Xcode 10E1001 on target <DVTiPhoneSimulator: 0x7fd57865e790> {
[20:37:55]: ▸ SimDevice: iPhone 5s (763DB20A-AD6B-4602-BB4F-E5AC0B62DF3D, iOS 12.2, Shutdown)
[20:37:55]: ▸ } (12.2 (16E226))

[20:46:06]: ▸ 2019-06-10 20:46:06.223 xcodebuild[2036:10486] [MT] IDETestOperationsObserverDebug: 490.527 elapsed – Testing started completed.
[20:46:06]: ▸ 2019-06-10 20:46:06.223 xcodebuild[2036:10486] [MT] IDETestOperationsObserverDebug: 0.000 sec, +0.000 sec – start
[20:46:06]: ▸ 2019-06-10 20:46:06.223 xcodebuild[2036:10486] [MT] IDETestOperationsObserverDebug: 490.527 sec, +490.527 sec – end
[20:46:06]: ▸ Testing failed:
[20:46:06]: ▸ NedBankAppTests:

[20:46:06]: ▸ /Users/distiller/banking-app-ios/build/Logs/Test/Test-NedBankApp-2019.06.10_20-37-54–0700.xcresult
[20:46:06]: ▸ ** TEST EXECUTE FAILED **

Testing failed:
XXXXAppTests:
XXXXApp.app (2177) encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted. (Underlying error: Test runner exited before starting test execution.))

Test session results and logs:
/Users/distiller/banking-app-ios/build/Logs/Test/Test-NedBankApp-2019.06.10_20-37-54–0700.xcresult

** TEST EXECUTE FAILED **
[20:46:12]: Exit status: 65

Could anyone help me in this?

Do we have any resolution for this?

@glenjamin.circleci the java change is annoying for your users. You have control over the xcode images, we can’t customize them. Adding java install in the workflow for every build is just a waste of time.
You can just include the lines provided by @jkotrlik in your image build. Is that possible?

I appreciate you might be a bit frustrated @amine, but please try to treat CircleCI employees with respect and kindness. They are still your fellow professionals.

1 Like

Hi @amine

I’m sorry that this bug in our image has affected you. The change to the Java runtime wasn’t intentional - we had to change how we install Java using Homebrew, and we have installed a JRE insread of the JDK.

We have identified the issue, and we will fix it soon. We have an Xcode 11 beta 2 image that is currently being distributed to the mac fleet, that we will GA tomorrow. This does not have the Java fix in place, we didn’t find the problem in time.

We will fix the Java issue and ship it as soon as we can. It will be fixed in the next Xcode 11 beta image that we ship, and I hope to ship a fix before then. We’ll also be adding a regression test to the image to ensure that javac is on the path. We currently only test that java -version outputs the expected version, which both the JDK and JRE satisfy.

Marc

@halfer I don’t think my message was disrespectful. @glenjamin.circleci I am sorry if you felt that way.

Thanks @marc

1 Like

Hi Guys,
I am still stuck in this problem. If anyone has any idea on how to solve this then please suggest.

What did you try?

Hi Amine, the new 11.0 image has javac fixed:

Thanks!

Awesome, thanks @marc and team.

1 Like

I have changed my xcode version to the latest version available on circleCI. But it was failing for below command:-
#!/bin/bash --login -o pipefail
rake verify
bundle exec fastlane unit_test

Which says test execute failed. I don’t understand what is causing this issue. Please have a look on the on full stack trace which I have uploaded in the same chain. Please suggest If you find anything which can cause this issue?

I don’t work with your technology, but it seems there is a key error in your stack trace:

XXXXApp.app (2177) encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted. (Underlying error: Test runner exited before starting test execution.))

This issue seems to have a lot of reports around the web. Could you have a look at some of those?

I’d also recommend looking at the log files it creates. If you can replicate this in an SSH session, you can cat the log files from there.