- Home /
Unity 4.6.3 - Cross Compilation Failed
I'm trying to track down an issue with my project. I have Windows/OS X/Android/iOS builds within the project, but have a problem compiling iOS after updating to 4.6.3 (& 4.6.3p1). Win/OS X/Android all build with no issues. All targets built no problem with 4.6.2.
When building for iOS I now get a Cross Compilation Failed error:
stdout:
Mono Ahead of Time compiler - compiling assembly /Users/xxx/Temp/StagingArea/Data/Managed/Mono.WebBrowser.dll
Invoking method 'System.Runtime.InteropServices.InterfaceTypeAttribute:.ctor (System.Runtime.InteropServices.ComInterfaceType)' when running in no-exec mode.
stderr:
at UnityEditor.MonoProcessUtility.RunMonoProcess (System.Diagnostics.Process process, System.String name, System.String resultingFile) [0x00000] in <filename unknown>:0
at UnityEditor.MonoCrossCompile.CrossCompileAOT (BuildTarget target, System.String crossCompilerAbsolutePath, System.String assembliesAbsoluteDirectory, CrossCompileOptions crossCompileOptions, System.String input, System.String output, System.String additionalOptions) [0x00000] in <filename unknown>:0
at UnityEditor.MonoCrossCompile+JobCompileAOT.ThreadPoolCallback (System.Object threadContext) [0x00000] in <filename unknown>:0
UnityEditor.HostView:OnGUI()
I narrowed it down to the System.Windows.Forms.dll that is used in the Windows build by creating a sample project with only one script and this DLL. The import for the DLL uses a preprocessor:
#if UNITY_STANDALONE_WIN
usingSystem.Windows.Forms;
#endif
But even if this is deleted, as long as the DLL is included in the assets/plugins folder then the build fails. The stripping level is set to "Strip Byte Code". Api Compatibility Level is set to ".NET 2.0". The DLL is taken from Unity.app/Contents/Frameworks/Mono/lib/mono/2.0/.
Any ideas why this is now broken in 4.6.3?