Docker 2019.4.5f1-ios compilation fail
I'm trying to automate our project's iOS deployment using fastlane as suggested by this project.
Deployment works if I build the Xcode-iOS project manually from Unity with Mac and then deploy it using fastlane ios beta
from terminal.
Building the Xcode/iOS Unity project using docker hasn't succeeded yet because something is wrong with the compilation as can be seen below. The tests pass though.
Environment and versions
uname -a
Docker Host Mac: Darwin Mac-mini.local 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64
docker --version
Docker version 19.03.12, build 48a66213fe
MacOS Catalina version: 10.15.5
Unity version: 2019.4.5f1
gitlab-ci.yml used
image: gableroux/unity3d:2019.4.5f1
stages:
- build_and_test
- deploy
variables:
BUILD_NAME: Censored
UNITY_ACTIVATION_FILE: ./unity3d.alf
.unity_before_script: &unity_before_script
before_script:
- chmod +x ./ci/before_script.sh && ./ci/before_script.sh
.cache: &cache
cache:
key: "$CI_PROJECT_NAMESPACE-$CI_PROJECT_NAME-$CI_COMMIT_REF_SLUG-$TEST_PLATFORM"
paths:
- Library/
get-activation-file:
when: manual
stage: build_and_test
script:
- chmod +x ./ci/get_activation_file.sh && ./ci/get_activation_file.sh
artifacts:
paths:
- $UNITY_ACTIVATION_FILE
expire_in: 10 min # Expiring this as artifacts may contain sensitive data and should not be kept public
.test: &test
stage: build_and_test
<<: *unity_before_script
<<: *cache
script:
- chmod +x ./ci/test.sh && ./ci/test.sh
artifacts:
paths:
- $(pwd)/$TEST_PLATFORM-results.xml
tags:
- unity
test-playmode:
<<: *test
variables:
TEST_PLATFORM: playmode
.build: &build
stage: build_and_test
<<: *unity_before_script
<<: *cache
script:
- chmod +x ./ci/build.sh && ./ci/build.sh
artifacts:
paths:
- ./Builds/
tags:
- unity
build-ios-xcode:
<<: *build
image: gableroux/unity3d:2019.4.5f1-ios
variables:
BUILD_TARGET: iOS
tags:
- ios
- mac
- docker
build-and-deploy-ios:
stage: deploy
script:
- cd ./Builds/iOS/$BUILD_NAME
- pod install
- fastlane ios beta
tags:
- ios
- mac
- docker
needs: ["build-ios-xcode"]
Findings so far (found by our project's senior developer):
(Filename: Library/PackageCache/com.unity.burst@1.1.2/Editor/BurstAotCompiler.cs Line: 166)
Burst Cross Compilation to iOS for standalone player, is only supported on OSX Editor at this time, burst is disabled for this build.
Important part of pipeline log:
Symbol file LoadedFromMemory doesn't match image /builds/censored-user/censored-project/Library/PackageCache/com.unity.ext.nunit@1.0.0/net35/unity-custom/nunit.framework.dll
Failed to load: /opt/Unity/Editor/Data/PlaybackEngines/iOSSupport/UnityEditor.iOS.Native.so
Native extension for iOS target not found
Native extension for LinuxStandalone target not found
Longer censored log: ios-pipeline.log
It seems that the gableroux/unity3d:2019.4.5f1-ios
image misses /opt/Unity/Editor/Data/PlaybackEngines/iOSSupport/UnityEditor.iOS.Native.so
We have a working Android pipeline (if not minding the current breaking NDK issue, see #85 (closed)). Therefore, this shouldn't be license issue or anything similar that concerns all platforms.
Any ideas?
Ps. Thank you for this awesome project