Crash on iOS in XCode

More
11 months 3 weeks ago #3077 by Largelabs
Hello,

I'm currently upgrading to 2018.1.
After updating Unity, I tried to build and run my project on iOS. At startup, I systematically get this crash on XCode :
// System.Void I2.Loc.LocalizationParamsManager::AutoStart()
extern "C"  void LocalizationParamsManager_AutoStart_m889388651 (LocalizationParamsManager_t2237076064 * __this, const RuntimeMethod* method)
{
	{

		bool L_0 = __this->get__AutoRegister_3(); -->  Thread 1: EXC_BAD_ACCESS (code=1, address=0x20)
		if (!L_0)
		{
			goto IL_0011;
		}
	}
	{
		LocalizationParamsManager_DoAutoRegister_m3007603687(__this, /*hidden argument*/NULL);
	}

IL_0011:
	{
		return;
	}
}

In LocalizationParamsManager, I commented the following function :
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
        public void AutoStart()
        {
            if (_AutoRegister)
                DoAutoRegister();

        }

What is the reason of this crash ? And why does it happen suddenly after update Unity ? My LocalizationParamsManagers are attached to prefabs that are not instantiated at this point and _AutoRegister is set as false on them.


Many thanks,

Karim from Largelabs

Please Log in or Create an account to join the conversation.

More
11 months 3 weeks ago #3080 by koalitygame
Replied by koalitygame on topic Crash on iOS in XCode
I had this same issue. Fixed it by upgrading I2 plugin to the latest version (2.8.6 f2). You can check by looking at the README file.

Please Log in or Create an account to join the conversation.

More
11 months 3 weeks ago #3081 by Frank
Replied by Frank on topic Crash on iOS in XCode

What is the reason of this crash ? And why does it happen suddenly after update Unity ?

This is a bug in Unity. It seems that in the latest versions they changed when the RuntimeInitializeOnLoadMethod attribute is executed, and at that time, not all the object data is correctly loaded.
Also, this doesn't happen in both .NET and IL2CPP, just one of them depending on what Unity you are using.

I reported that bug, but while its been fixed, (as @koalitygame said) I also added a fix to the latest version of I2L. basically just removing the needed for AutoStart given that currently they get initialized when needed and the LocalizationManager also iterates them if they haven't been initialized when localizing the scene for the first time.

Hope that helps,
Frank

Are you :-) Give I2L 5 stars!
Are you :-( Please lets us know how to improve it!
To get the betas as soon as they are ready, check this out

Please Log in or Create an account to join the conversation.

Time to create page: 0.176 seconds
Template by JoomlaShine