Search Issue Tracker
By Design
Votes
2
Found in
2019.3
2019.3.14f1
Issue ID
1251582
Regression
No
[iOS] [IL2CPP] crash on il2cpp::os::Image::Initialize() on Application launch
Reproduction steps:
1. Open user's attached project in "NativePluginsWithInstagramAndSnapchatKits.zip"
2. Go Edit -> Build Settings and remove InstagramKitDemo Scene from the build
3. Build for iOS and open Xcode project generated
4. Select RegisterMonoModules.cpp in Xcode file browser
5. Disable all Target Memberships (Disable.png, this will resolve linker errors)
6. Remove Game Center Capability (Remove.png)
7. Deploy the project (read Note)
Unexpected behavior: upon launch, the game crashes at il2cpp::os::Image::Initialize()
Reproducible with: 2019.3.15f1
Could not test with 2020.1, 2020.2 because of errors in Xcode (X is ambiguous), 2018.4, because of errors in Unity (serialized with a newer version of Unity)
Devices tested:
Reproducible with:
VLNQA00310 iPad Pro 12.9 (iOS 13.4.1)
Does not reproduce with:
N/A, Samsung Galaxy S9 (SM-G960F), Android 8.0.0, CPU: Exynos 9 Series 9810, GPU: Mali-G72
VLNQA00313, Huawei Y6 Ⅱ Compact (HUAWEI LYO-L01), Android 5.1, CPU: MediaTek MT6735, GPU: Mali-T720
VLNQA00140, Samsung Galaxy S4 (GT-I9505), Android 5.0.1, CPU: Snapdragon S4 Plus MSM8960, GPU: Adreno (TM) 320
Could not test with:
VLNQA00204 iPhone 5C (iOS 10.3.3) - unsupported Architecture
Note: Sometimes Indexing takes a while before Xcode starts building
Few lines from stack trace (full stack trace in edits):
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x20)
frame #0: 0x00000001031fd59c UnityFramework`il2cpp::os::Image::Initialize() + 92
frame #1: 0x0000000103216214 UnityFramework`il2cpp::vm::Runtime::Init(char const*) + 180
....
* frame #44: 0x0000000102067e1c InstagramAndSnapchatKits`main(argc=<unavailable>, argv=<unavailable>) at main.mm:26:9 [opt]
frame #45: 0x0000000183c77800 libdyld.dylib`start + 4
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Silicon] Crash with multiple StackTraces when entering Play Mode in a project with corrupted FBX files
- Index Out Of Range exception when trying to use Rendering Layer Override in Probe Adjustment Volume without a mask defined in lighting settings
- [Android] [Vulkan] [WebCamTexture] "WebCamTexture.Play" crashes the application when the camera is started
- Huge performance overheads appear when there is a large amount of bindings in the UI Toolkit
- Visual Effects Graph Blackboard can't be scrolled horizontally
Resolution Note (2020.2.X):
User error.
The project contains editor scripts that do modify exported XCode project. Haven't investigated those scripts, but the issue is caused by improper project modification.
In exported XCode project:
- Select Unity-iPhone
- Select UnityFramework (under Targets)
- Go to Build Settings tab
- Find section "Apple Clang - Custom Compiler Flags"
When simple project is exported from Unity, C and C++ flags are identical.
In users repro for C++ there is only "-fcxx-modules". This causes the issue with RegisterMonoModules.cpp you are working around and the crash. The later most likely due to "-DRUNTIME_IL2CPP=1" lost, though haven't investigated that deeply.
Basically:
- Copy flags from C to C++ (leave the present flag, just append those from C) and the project builds and runs fine (and you should be able to add RegisterMonoModules.cpp back with no compilation errors).
- The proper fix is to edit Editor scripts so that they add -fcxx-modules flag without losing what we set by default.