iOS6 compatibility issue

The recent builds of my project keep crashing on iOS6 devices. The splash screen and main menu can show up correctly, but during loading a level the game always force quits. Here is the error message:

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.

Not sure if this is a bug with Xamarin or MonoGame. The game was working properly on iOS6 devices months ago…

There should be a stack trace before that message. It could help.

Hi Nezz, there are two different situations that cause the game to force quit. The test device is an iPod touch (4th gen) with iOS6.

Below are the stack traces:

Stack trace 1:
2015-02-07 16:56:16.920 TestGame[127:907] -[AVPlayer volume]: unrecognized selector sent to instance 0x1feb7ea0
2015-02-07 16:56:16.930 TestGame[127:907] critical: Stacktrace:

2015-02-07 16:56:16.933 TestGame[127:907] critical: at <0xffffffff>
2015-02-07 16:56:16.934 TestGame[127:907] critical: at <0xffffffff>
2015-02-07 16:56:23.981 TestGame[127:4903] void SendDelegateMessage(NSInvocation *): delegate (webView:didClearWindowObject:forFrame:) failed to return after waiting 10 seconds. main run loop mode: (null)

Stack trace 2:
2015-02-07 17:10:14.481 TestGame[180:907] -[AVPlayer volume]: unrecognized selector sent to instance 0x1d647d50
2015-02-07 17:10:14.484 TestGame[180:907] critical: Stacktrace:

2015-02-07 17:10:14.486 TestGame[180:907] critical: at <0xffffffff>
2015-02-07 17:10:14.488 TestGame[180:907] critical:
Native stacktrace:

2015-02-07 17:10:17.002 TestGame[180:907] critical: 0 TestGame 0x025077e5 mono_handle_native_sigsegv + 240
2015-02-07 17:10:17.005 TestGame[180:907] critical: 1 TestGame 0x025101d1 mono_sigsegv_signal_handler + 208
2015-02-07 17:10:17.008 TestGame[180:907] critical: 2 libsystem_c.dylib 0x3a24ce93 _sigtramp + 42
2015-02-07 17:10:17.011 TestGame[180:907] critical: 3 libobjc.A.dylib 0x39dc9f89 + 28
2015-02-07 17:10:17.013 TestGame[180:907] critical: 4 libobjc.A.dylib 0x39dcb1d7 class_respondsToSelector + 30
2015-02-07 17:10:17.016 TestGame[180:907] critical: 5 CoreFoundation 0x3214e605 + 36
2015-02-07 17:10:17.018 TestGame[180:907] critical: 6 CoreFoundation 0x3214e35d + 68
2015-02-07 17:10:17.020 TestGame[180:907] critical: 7 libobjc.A.dylib 0x39dcea65 + 128
2015-02-07 17:10:17.025 TestGame[180:907] critical: 8 libc++abi.dylib 0x3981b07b + 78
2015-02-07 17:10:17.027 TestGame[180:907] critical: 9 libc++abi.dylib 0x3981b114 + 19
2015-02-07 17:10:17.030 TestGame[180:907] critical: 10 libc++abi.dylib 0x3981c599 cxa_current_exception_type + 0
2015-02-07 17:10:17.032 TestGame[180:907] critical: 11 libobjc.A.dylib 0x39dce9d1 objc_exception_rethrow + 12
2015-02-07 17:10:17.035 TestGame[180:907] critical: 12 CoreFoundation 0x32094f21 CFRunLoopRunSpecific + 456
2015-02-07 17:10:17.037 TestGame[180:907] critical: 13 CoreFoundation 0x32094d49 CFRunLoopRunInMode + 104
2015-02-07 17:10:17.039 TestGame[180:907] critical: 14 GraphicsServices 0x35c472eb GSEventRunModal + 74
2015-02-07 17:10:17.042 TestGame[180:907] critical: 15 UIKit 0x33faa301 UIApplicationMain + 1120
2015-02-07 17:10:17.045 TestGame[180:907] critical: 16 TestGame 0x016b222c wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr + 272
2015-02-07 17:10:17.048 TestGame[180:907] critical: 17 TestGame 0x0108aabc UIKit_UIApplication_Main_string___intptr_intptr + 52
2015-02-07 17:10:17.051 TestGame[180:907] critical: 18 TestGame 0x0108a960 UIKit_UIApplication_Main_string___string_string + 204
2015-02-07 17:10:17.053 TestGame[180:907] critical: 19 TestGame 0x0008bd90 TestGame_Program_Main_string
+ 172
2015-02-07 17:10:17.055 TestGame[180:907] critical: 20 TestGame 0x009075d4 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 200
2015-02-07 17:10:17.058 TestGame[180:907] critical: 21 TestGame 0x025123cf mono_jit_runtime_invoke + 1158
2015-02-07 17:10:17.060 TestGame[180:907] critical: 22 TestGame 0x02553e85 mono_runtime_invoke + 88
2015-02-07 17:10:17.062 TestGame[180:907] critical: 23 TestGame 0x025571cf mono_runtime_exec_main + 282
2015-02-07 17:10:17.065 TestGame[180:907] critical: 24 TestGame 0x0255700d mono_runtime_run_main + 492
2015-02-07 17:10:17.069 TestGame[180:907] critical: 25 TestGame 0x02500a51 mono_jit_exec + 48
2015-02-07 17:10:17.071 TestGame[180:907] critical: 26 TestGame 0x025b09d4 xamarin_main + 2172
2015-02-07 17:10:17.074 TestGame[180:907] critical: 27 TestGame 0x0242044d main + 108
2015-02-07 17:10:17.076 TestGame[180:907] critical: 28 libdyld.dylib 0x3a205b20 + 0
2015-02-07 17:10:17.078 TestGame[180:907] critical:

Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.

AudioStreamBasicDescription: 2 ch, 44100 Hz, ‘lpcm’ (0x00000029) 32-bit little-endian float, deinterleaved

MediaPlayer.Volume is not supported on iOS 6.

https://developer.apple.com/library/ios/qa/qa1716/_index.html

Oh I see. Thanks Nezz!

Hi Nezz,

I tried bypassing MediaPlayer.Volume on iOS 6 but the same errors still exist. I messed with it a little bit and realized that it is MediaPlayer.Play() that is causing this problem. I commented that line out and the errors were gone.

Is there any way for MG to play music using MediaPlayer on iOS 6?

It should work. You have to look at what the error is. For example you cannot use WMA because that’s only supported on Microsoft platforms.

I was using the MonoGame pipeline to process the game contents and everything works fine on iOS7&8. And the music files are in MP3 format… =(

Strange. The MonoGame pipeline only produces mp4s, no mp3s (because you have to pay a license fee for them).

[quote=“Nezz, post:10, topic:1916, full:true”]
Strange. The MonoGame pipeline only produces mp4s, no mp3s (because you have to pay a license fee for them).
[/quote]The earlier content pipeline extensions for XNA produced MP3 files. We have moved away from that for our own content pipeline.

I’m using the latest MG source to build the content. The content processor I set for the music files is MonoGame Song. After building the solution, every mp3 file has a corresponding xnb file with the same file name. Not sure what the problem is…