Unexpected behaviour runnning an app after il2cpp compiling

Hi there,

I develop on unity 5.1.2f1. The project launch ok on devices but behaves differently after compiling in 32bits (Mono) than 64 bits (Il2cpp). I can compile and launch in 64 bits with IL2cpp (No errors compiling).

First screen: Select a user name (type at least 3 characters in a text field and then press register button). Attached screenshot (with console debugger) with button deactivated

Activated button after typing more than 3 characters:

Devices for testing: ipod 32bits and ipad mini retina (ipad mini 2 64bits)

Expected behaviour: If you do not type at least 3 characters, button to register is not activated (you can’t press it). Compiled version in 32 behaves perfectly (both on ipod and ipad mini2)

Behaviour on compiled version in 64 bits: Button already activated (without type any character) and pressing the button does not perform any action (call the server to check user name availability). Log result after press the button “a null value was found where an object instance was required” (problem found both on ipod and ipad mini2)

Any idea? How can I solve that behaviour with il2cpp?

Code below:

public class UserCreationScreen : MonoBehaviour
{

	InputField nameInput;
	Button letsPlayButton;
	Toast toast;
	GameWebService gws;
	TeamPickScreen teamPickScreen;

	void Awake ()
	{
			gws = new GameWebService ();
			nameInput = transform.FindChild ("New User Panel/Name Input").GetComponent<InputField> ();
			letsPlayButton = transform.FindChild ("New User Panel/Lets Play Button").GetComponent<Button> ();
			toast = transform.FindChild ("New User Panel/Toast").GetComponent<Toast> ();
			
			teamPickScreen = transform.parent.FindChild ("Team Pick Screen").GetComponent<TeamPickScreen> ();
	}

	void Update ()
	{

			letsPlayButton.interactable = nameInput.text.Length >= 3;

	}

Solved, I posted here what I found:

Project generation from Unity will strip unused symbols from classes even if the option is marked as “Stripping Level: Disabled” (when IL2CPP is uesd). This will make iOS unable to use communication libraries (System.Web.dll and system.Web.Services.dll) since they are using reflection. It is needed to specify classes that should’t be stripped. This is done with link.xml file.