If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Comment

It is a fresh solution created in Wave Editor on Mac for iOS and Mac Platforms. Mac Platform runs fine in the Wave Editor, however when I open iOS solution in Xamarin Studio - this problem appears as a runtime error in the MainController's Update method override, shortly after the WaveEngine splash screen is shown on my iPhone simulator's screen.

I have checked - WaveEngine.ImageEffects.dll is there in "/.../packages/WaveEngine.ImageEffects.2.3.1.32/lib/Xamarin.iOS" folder.

Comment

I'm getting this error too. VS2017 + Mac
When I check the content of bin/IphoneSimulator/Debug/device-builds/iphonexxx/myApp.app/ I can't see the WaveEngin.ImageEffects.dll file there, but rest of other referenced WaveEngine dll files are there.

Comment

The issue is caused because the iOS compiler removes the unused dlls. To avoid it you must remove the reference (if you are no using it in your project) or add some code that uses any class of ImageEffect.

For example you can add the method Preserve in the file "Program.cs", even if the method is not used.

Comment

Thanks Daniel, I'll try it. But why should it assume it is unused, because the error is thrown where WaveEngine's Load method of Scene. So I guess default Load method or somewhere in the trace engine uses this class.

Comment

Yes this worked. I also found another IncludeAssemblies() method in MainController.cs which is used for this issue too.
I add the required classes here like this: var a1 = typeof(WaveEngine.ImageEffects.AntialiasingLens);

Thanks

Comment

The issue is caused because the exporter used for the scenes and prefabs in the build process creates a list of types based in the referenced assemblies and when Xamarin builds the project remove the assemblies that is not used in code.
This list of types helps in runtime to generates the serialization model faster, but when the serializer is used for the first time and a type cannot be found, the exception is thrown.
In the next release, we will fix it.

Comment

When building your Game for iOS, the compiler calls a tool called mtouch that includes a linker for managed code.
To avoid linker remove necessary libraries you must add some code that uses any class of ImageEffect. That's why we added the code IncludeAssemblies.
Just add the label Preserve and call it.

Comment

Hi, I have another issue of this type, it happens always in Release Configuration builds of a clean WaveEngine iOS template, Debug mode never fails like this on a device, and I cannot get rid of it by adding some code that uses the TextComponent class.

Please see below: The subtype WaveEngine.Components.Toolkit.TextComponent can not be found in the schema.

I have also noticed multiple (102) warnings like below in the test project:

Native linking warning: warning: object file (/Users/USER/Library/Caches/Xamarin/mtbs/builds/iosTest/6c4b1497ee264b44e5480867d4289670/obj/iPhone/Ad-Hoc/mtouch-cache/MobileCenterCrashes.a(MSException.o)) was built for newer iOS version (8.0) than being linked (6.0)

Comment

Now, this are the options to use (disable code optimization or create a Linker configuration file). We are testing and evaluating options to change the iOS template and include a Linker configuration file that allows everything to work as expected in Release. I'll let you know when it's available.