Unity won't build for Android using IL2CPP on Macbook Pro using Big Sur

Unity version: 2018.4.30f1
OS: Big Sur 11.1

Build settings
Scripting Backend: IL2CPP
API Compatibility Level: .NET 2.0 Subset
Target Architectures: ARMv7 + ARM64

I get build errors on all Macbooks running Big Sur 11.1. I have created an empty project and I still get this error when building. It has been working perfectly until updating to Unity 2018.4.30f1 (but downgrade won’t work anymore either).

Can any of you help or try to recreate the build with this setup to see if it fails for you as well? I think it might be a Unity bug.

Can you provide details about the error message?

Hey Josh, thanks for your comment. I am getting these two errors:

Failed running /Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/build/il2cppcore/il2cppcore.dll --convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile=“legacyunity” --compile-cpp --libil2cpp-static --platform=“Android” --architecture=“ARMv7” --configuration=“Release” --outputpath=“/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/assets/bin/Data/Native/armeabi-v7a/libil2cpp.so” --cachedirectory=“/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Assets/…/Library/il2cpp_android_armeabi-v7a/il2cpp_cache” --additional-include-directories=“/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/bdwgc/include” --additional-include-directories=“/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/libil2cpp/include” --tool-chain-path=“/Users/easypoker/Documents/EasyPoker/android-ndk-r16b” --map-file-parser=“/Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/Tools/MapFileParser/MapFileParser” --directory=“/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/assets/bin/Data/Managed” --generatedcppdir=“/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/Il2Cpp/il2cppOutput”

stdout:
Building libil2cpp.so with AndroidToolChain
Output directory: /Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/assets/bin/Data/Native/armeabi-v7a
Cache directory: /Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Library/il2cpp_android_armeabi-v7a/il2cpp_cache
il2cpp.exe didn’t catch exception: Unity.IL2CPP.Building.BuilderFailedException:

Invocation was: Executable: /Users/easypoker/Documents/EasyPoker/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
Arguments: -DGC_NOT_DLL -DRUNTIME_IL2CPP -DLINUX -DANDROID -DPLATFORM_ANDROID -D__linux__ -D__STDC_FORMAT_MACROS -I"/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/bdwgc/include" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/libil2cpp/include" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/libil2cpp" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/external/boehmgc/include" -I"/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/Il2Cpp/il2cppOutput" -I"." -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward" -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" -c -g -DNDEBUG -funwind-tables -fno-limit-debug-info -fdata-sections -ffunction-sections -Wa,–noexecstack -fno-rtti -std=c++98 -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -fno-strict-overflow -fPIC -Os --sysroot “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sysroot” -gcc-toolchain “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64” -target armv7-none-linux-androideabi -isystem “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sysroot/usr/include/arm-linux-androideabi” -D__ANDROID_API__=16 -march=armv7-a -mfloat-abi=softfp -mfpu=neon-fp16 -Wno-unused-value “/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/Il2Cpp/il2cppOutput/Il2CppTypeDefinitions.cpp” -o “/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/2E8C8DE11511D66A48AC205B761ED34E.o”

at Unity.IL2CPP.Building.CppProgramBuilder.BuildAllCppFiles(IEnumerable`1 sourceFilesToCompile, IBuildStatisticsCollector statisticsCollector)
at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
at il2cpp.Program.DoRun(String[ ] args)
at il2cpp.Program.Run(String[ ] args)
at il2cpp.Program.Main(String[ ] args)
stderr:

Unhandled Exception: Unity.IL2CPP.Building.BuilderFailedException:

Invocation was: Executable: /Users/easypoker/Documents/EasyPoker/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
Arguments: -DGC_NOT_DLL -DRUNTIME_IL2CPP -DLINUX -DANDROID -DPLATFORM_ANDROID -D__linux__ -D__STDC_FORMAT_MACROS -I"/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/bdwgc/include" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/libil2cpp/include" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/libil2cpp" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/external/boehmgc/include" -I"/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/Il2Cpp/il2cppOutput" -I"." -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward" -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" -c -g -DNDEBUG -funwind-tables -fno-limit-debug-info -fdata-sections -ffunction-sections -Wa,–noexecstack -fno-rtti -std=c++98 -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -fno-strict-overflow -fPIC -Os --sysroot “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sysroot” -gcc-toolchain “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64” -target armv7-none-linux-androideabi -isystem “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sysroot/usr/include/arm-linux-androideabi” -D__ANDROID_API__=16 -march=armv7-a -mfloat-abi=softfp -mfpu=neon-fp16 -Wno-unused-value “/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/Il2Cpp/il2cppOutput/Il2CppTypeDefinitions.cpp” -o “/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/2E8C8DE11511D66A48AC205B761ED34E.o”

at Unity.IL2CPP.Building.CppProgramBuilder.BuildAllCppFiles(IEnumerable`1 sourceFilesToCompile, IBuildStatisticsCollector statisticsCollector)
at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
at il2cpp.Program.DoRun(String[ ] args)
at il2cpp.Program.Run(String[ ] args)
at il2cpp.Program.Main(String[ ] args)
at Program.Main(String[ ] args)

UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
UnityEditorInternal.Runner:RunNetCoreProgram(String, String, String, CompilerOutputParserBase, Action1) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:79) UnityEditorInternal.IL2CPPBuilder:RunIl2CppWithArguments(List1, Action1, String) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:374) UnityEditorInternal.IL2CPPBuilder:ConvertPlayerDlltoCpp(String, String, String, Boolean) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:357) UnityEditorInternal.IL2CPPBuilder:Run() (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:211) UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action1, RuntimeClassRegistry) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:35)
UnityEngine.GUIUtility:processEvent(Int32, IntPtr) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

Error 2:

Exception: /Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/build/il2cppcore/il2cppcore.dll did not run properly!
UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:130)
UnityEditorInternal.Runner.RunNetCoreProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action1 setupStartInfo) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:79) UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List1 arguments, System.Action1 setupStartInfo, System.String workingDirectory) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:374) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (System.String inputDirectory, System.String outputDirectory, System.String workingDirectory, Boolean platformSupportsManagedDebugging) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:357) UnityEditorInternal.IL2CPPBuilder.Run () (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:211) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:35)
UnityEditor.Android.PostProcessor.Tasks.RunIl2Cpp.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at /Users/bokken/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:288)
UnityEngine.GUIUtility:processEvent(Int32, IntPtr) (at /Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

Thanks for the details. I’m unsure why this happens, and the error message from the clang compiler in the Android NDK is not providing any information. When this happens, can you run the clang compilation that fails directly from the command line?

/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -DGC_NOT_DLL -DRUNTIME_IL2CPP -DLINUX -DANDROID -DPLATFORM_ANDROID -D__linux__ -D__STDC_FORMAT_MACROS -I"/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/bdwgc/include" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/PlaybackEngines/AndroidPlayer/Tools/libil2cpp/include" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/libil2cpp" -I"/Applications/Unity/Hub/Editor/2018.4.30f1/Unity.app/Contents/il2cpp/external/boehmgc/include" -I"/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/Il2Cpp/il2cppOutput" -I"." -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/include/backward" -I"/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include" -c -g -DNDEBUG -funwind-tables -fno-limit-debug-info -fdata-sections -ffunction-sections -Wa,–noexecstack -fno-rtti -std=c++98 -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -fno-strict-overflow -fPIC -Os --sysroot “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sysroot” -gcc-toolchain “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64” -target armv7-none-linux-androideabi -isystem “/Users/easypoker/Documents/EasyPoker/android-ndk-r16b/sysroot/usr/include/arm-linux-androideabi” -D__ANDROID_API__=16 -march=armv7-a -mfloat-abi=softfp -mfpu=neon-fp16 -Wno-unused-value “/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Temp/StagingArea/Il2Cpp/il2cppOutput/Il2CppTypeDefinitions.cpp” -o “/Users/easypoker/Downloads/EasyPoker-easypoker-d3497c5934bc/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/2E8C8DE11511D66A48AC205B761ED34E.o”

Be sure to try this with the Unity Editor still open - that will keep all of the necessary temporary files in the right state. Hopefully this will give us an error from clang that we can make sense of.