Script stripping seems not working at all

I’m using Unity5.1.1p3, building a IOS sample with IL2CPP.

The project has one simple scene with Main Camera, and a Foo.cs attached to it:

public class Foo : MonoBehaviour {

	// Use this for initialization
	void Start () {
		CallInStart();
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	public void NoBodyCall()
	{}

	void CallInStart()
	{
		var t = Type.GetType("UnreferenceClass");

		if (t == null) {
			Debug.Log("cant get UnreferenceClass");
		}
		else {
			var m = t.GetMethod("UnreferenceMethod");

			if (m == null) {
				Debug.Log("cant get UnreferenceMethod");
			}
			else {
				Debug.Log("alright");
			}
		}
	}

 	void UncallCaller()
	{
		UncallCallee();
	}

	void UncallCallee()
	{}
}

and a UnreferenceClass.cs didnt attach to any gameobject:

public class UnreferenceClass : MonoBehaviour {

	public void UnreferenceMethod()
	{}
}

After the xcode project built, I can find NoBodyCall and other stuffs (i think should be stripped) in cpps. When the project running on my iPhone – “alright”.

Did i misunderstand the STRIPPING ??

I believe stripping only applies to Unity internal stuff, not your own scripts.

Try aiming the reflection at physics/audio/networking or whatever you aren’t using and see if that has the expected result.