I'm developing in Unity 3.4.2f, XCode version 4.2.1 with iOS 5.0 SDK.
My game consists of a main menu with a play button that loads the main scene. The game can be built to device by a co-worker and works just fine. Whenever I build the game though, it crashes while loading the second scene. This has been the bane of my existence for over a week now.
the crash log from the device looks like this:
Exception Type: EXC_BAD_ACCESS (SIGILL)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00ed4e90
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 ??? 0x050000c0 0 + 83886272
1 ??? 0xfffffff8 0 + -8
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x33babfbc kevent + 24
1 libdispatch.dylib 0x328ebed4 _dispatch_mgr_invoke + 744
2 libdispatch.dylib 0x328ecf3a _dispatch_queue_invoke + 70
3 libdispatch.dylib 0x328ec4ec _dispatch_worker_thread2 + 228
4 libsystem_c.dylib 0x3489f58a _pthread_wqthread + 258
5 libsystem_c.dylib 0x3489fbbc start_wqthread + 0
*Note: Removed various other non-crashed threads through thread 11*
Thread 0 crashed with ARM Thread State:
r0: 0x01ab7094 r1: 0x00000000 r2: 0x00000000 r3: 0x3f800000
r4: 0x04020000 r5: 0x3987cc80 r6: 0x01004d08 r7: 0x080000c1
r8: 0xc1080000 r9: 0x00000000 r10: 0xc1050000 r11: 0xc1040000
ip: 0x2fdfe144 sp: 0x00ed4e9c lr: 0x00dfc558 pc: 0x050000c0
cpsr: 0x20000030
Which is not the most helpful, but from what i've been reading here and various other sites, I SHOULD be able to use those memory addresses like 0x050000c0 to determine where in the actual code i'm crashing? First some other things we've tried...
The project is in an SVN repo, so I've blown away the entire source dir and re-updated it from SVN, ensuring the coworker who CAN build properly has done the same. When that didn't work, I had him send me a .zip of his xcode project, to try building that, but the Prime31 Unity plugins don't like that, they point to his source folder which is in a different user dir on his machine. So I had him zip up his unity source and send that along, which required a re-install of the Prime31 plugins, and then I was able to build, but still with the same results. Crashing between scene loads.
We are both using the exact same physical iPad device to build on. We are both building against iOS 5.0, while the device is 4.3.3.
I have gone as far as deleting all xcode setting, then deleting the entire /Developer folder from my Mac and reinstalled xcode completely. Same results. I would try reinstalling Unity, but I'm not sure if I would need to get my Unity Pro key deactivated and then reactivated again?
I have spent far too much time for this to be something complex and difficult. I know it is certainly something that is incomprehensibly simple and stupid on my part, but I can no longer see the forest for the trees, so I am asking you, dear Internets!
Resolved! I linked this post to a friend who asked, "Are you SURE you're both on the same unity version?" I checked, and I was in fact on Unity version 3.4.1f and not 3.4.2f. Updated Unity and all was well. Presumably the latest version of these Prime31 plugins do not like the older version of Unity?