My app crashes on my live device only, when I use the Kiip MonoTouch bindings. It works fine on the simulator. Here is part of my stack trace:
0 libsystem_c.dylib 0x30eb293c memset$VARIANT$CortexA8 + 52
1 sample 0x002b5738 GC_clear_stack_inner (misc.c:298)
2 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
3 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
4 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
5 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
6 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
7 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
8 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
9 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
10 sample 0x002b574c GC_clear_stack_inner (misc.c:299)
11 sample 0x002b57b8 GC_clear_stack (misc.c:344)
12 sample 0x002b2bd8 GC_malloc_atomic (malloc.c:270)
13 sample 0x0026f374 mono_object_new_ptrfree_box (object.c:4416)
14 sample 0x00102290 wrapper_managed_to_native_object___icall_wrapper_mono_object_new_ptrfree_box_intptr (mscorlib.dll.6.s:92590)
15 sample 0x0001da78 System_Collections_Generic_Dictionary_2_intptr_System_WeakReference_TryGetValue_intptr_System_WeakReference_ (monotouch.dll.6.s:14642)
16 sample 0x0000d1e4 MonoTouch_ObjCRuntime_Runtime_TryGetNSObject_intptr (monotouch.dll.6.s:6354)
17 sample 0x0000d2f0 MonoTouch_ObjCRuntime_Runtime_GetNSObject_intptr (monotouch.dll.6.s:6380)
18 sample 0x0000d3a4 MonoTouch_ObjCRuntime_Runtime_GetNSObjectWrapped_intptr (monotouch.dll.6.s:6415)
19 sample 0x00023e08 wrapper_native_to_managed_MonoTouch_ObjCRuntime_Runtime_GetNSObjectWrapped_intptr (monotouch.dll.6.s:17991)
20 sample 0x002bea2c get_managed_object_for_ptr_fast (monotouch-glue.m:346)
21 sample 0x001ca1fc native_to_managed_trampoline_Kiip_KPManager_set_SharedManager (registrar.m:823)
Here is the SDK:
www.jmawebtechnologies.com/files/archive.zip
Here is the sample project
https://github.com/mono/monotouch-bindings/tree/master/Kiip
Here is the code where the software crashes:
AppDelegate > KPManager.SharedManager = new KPManager(
Here is the full crash log:
www.jmawebtechnologies.com/files/crash.zip
This is because the libKiip.a library you're using doesn't have the architecture you're building for. This would happen for instance if the libKiip.a has armv6 and i386 code, but you're building for armv7.
At build time it should result in this warning:
The solution is either to change your MonoTouch project to use the architecture available in the libKiip.a library, or make sure you have the right architecture in the library (I believe the universal libKiip.a binary will do).