Note that there are some explanatory texts on larger screens.

plurals
  1. POCocos2dx iOS Approved App Crashing
    primarykey
    data
    text
    <p>So I have been stuck for a couple of days on this extremely strange and annoying problem. So I have an app that I released to the ios app store and I have recently went back and added some extra features to the application. I didnt touch the core of the app just added things like twitter, facebook, in app purchases, and google admob (for the free version that is based off the full version). So here is where things go weird. I tested my update I made a adhoc release build and tested on my iphone 3gs, 4s, ipad 2 - no problems at all. I submitted to apple they approved the update and it was released. I updated the application and tried to run it and boom crashes right after the splash screen (again nothing here was changed). My project uses the cocos2dx framework (version cocos2d-2.0-x-2.0.4 @ Nov 02 2012) and I uses cocosbuilder (2.1). I looked at the log and it seemed to be an unalignment issue inside the CCBReader::readFloat() function. I found that there was a fix to this here: <a href="https://github.com/DarraghCoy/cocos2d-x/commit/34b31fd754778f815fcac108089e3fe015e2e2b9" rel="noreferrer">https://github.com/DarraghCoy/cocos2d-x/commit/34b31fd754778f815fcac108089e3fe015e2e2b9</a>. </p> <p>So I went ahead and modified my default case as well from this: float CCBReader::readFloat() { unsigned char type = this->readByte();</p> <pre><code> switch (type) { case kCCBFloat0: return 0; case kCCBFloat1: return 1; case kCCBFloatMinus1: return -1; case kCCBFloat05: return 0.5f; case kCCBFloatInteger: return (float)this-&gt;readInt(true); default: { /* using a memcpy since the compiler isn't * doing the float ptr math correctly on device. * TODO still applies in C++ ? */ float * pF = (float*)(this-&gt;mBytes + this-&gt;mCurrentByte); float f = 0; memcpy( &amp;f, pF, sizeof(float)); this-&gt;mCurrentByte += 4; return f; } } } </code></pre> <p>To this:</p> <pre><code> float CCBReader::readFloat() { unsigned char type = this-&gt;readByte(); switch (type) { case kCCBFloat0: return 0; case kCCBFloat1: return 1; case kCCBFloatMinus1: return -1; case kCCBFloat05: return 0.5f; case kCCBFloatInteger: return (float)this-&gt;readInt(true); default: { /* using a memcpy since the compiler isn't * doing the float ptr math correctly on device. * TODO still applies in C++ ? */ float * pF = (float*)(this-&gt;mBytes + this-&gt;mCurrentByte); float f = 0; memcpy((void*) &amp;f, (const void*) pF, sizeof(float)); this-&gt;mCurrentByte += sizeof(float); return f; } } } </code></pre> <p>Again testing a release build on devices no isses. I submitted this fix to apple and requested a expedited review so the application would run instead of crashing and it got apple approval within 1 day and was shipped out. I update to the new version launch and again its crashing.</p> <p>Here is a copy of the crash log:</p> <pre><code>Incident Identifier: DCFEA2A4-9707-4FF7-A4B7-26CF61B4A73F CrashReporter Key: b91e2f134184158618753244f837ff2ac5114f0d Hardware Model: iPhone4,1 Process: GAMEAPP [848] Path: /var/mobile/Applications/F860F02C-3D16-4995-A19F-CE036200209F/GAMEAPP.app/GAMEAPP Identifier: GAMEAPP Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2013-03-01 19:42:44.987 -0500 OS Version: iOS 6.1.2 (10B146) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: EXC_ARM_DA_ALIGN at 0x1f0807c9 Crashed Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 GAMEAPP 0x000f971c cocos2d::extension::CCBReader::readFloat() (CCBReader.cpp:422) 1 GAMEAPP 0x000f9e52 cocos2d::extension::CCBReader::readKeyframe(int) (CCBReader.cpp:648) 2 GAMEAPP 0x000f99ae cocos2d::extension::CCBReader::readNodeGraph(cocos2d::CCNode*) (CCBReader.cpp:509) 3 GAMEAPP 0x000f9c20 cocos2d::extension::CCBReader::readNodeGraph(cocos2d::CCNode*) (CCBReader.cpp:586) 4 GAMEAPP 0x000f9342 cocos2d::extension::CCBReader::readFileWithCleanUp(bool) (CCBReader.cpp:689) 5 GAMEAPP 0x000f92ec cocos2d::extension::CCBReader::readNodeGraphFromData(cocos2d::extension::CCData*, cocos2d::CCObject*, cocos2d::CCSize const&amp;, cocos2d::extension::CCBAnimationManager**) (CCBReader.cpp:230) 6 GAMEAPP 0x000f91aa cocos2d::extension::CCBReader::readNodeGraphFromFile(char const*, cocos2d::CCObject*, cocos2d::CCSize const&amp;, cocos2d::extension::CCBAnimationManager**) (CCBReader.cpp:213) 7 GAMEAPP 0x000f90a4 cocos2d::extension::CCBReader::readNodeGraphFromFile(char const*, cocos2d::CCObject*) (CCBReader.cpp:192) 8 GAMEAPP 0x00119b50 IntroScene::init() (IntroScene.cpp:55) 9 GAMEAPP 0x00119ca8 IntroScene::create() (IntroScene.h:19) 10 GAMEAPP 0x00119a7c IntroScene::scene() (IntroScene.cpp:22) 11 GAMEAPP 0x00110290 AppDelegate::applicationDidFinishLaunching() (AppDelegate.cpp:144) 12 GAMEAPP 0x000dab94 cocos2d::CCApplication::run() (CCApplication.mm:50) 13 GAMEAPP 0x000b6610 -[AppController application:didFinishLaunchingWithOptions:] (AppController.mm:76) 14 UIKit 0x36522ad4 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 248 15 UIKit 0x3652265e -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1186 16 UIKit 0x3651a846 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 694 17 UIKit 0x364c2c34 -[UIApplication handleEvent:withNewEvent:] + 1000 18 UIKit 0x364c26c8 -[UIApplication sendEvent:] + 68 19 UIKit 0x364c2116 _UIApplicationHandleEvent + 6150 20 GraphicsServices 0x381d85a0 _PurpleEventCallback + 588 21 GraphicsServices 0x381d81ce PurpleEventCallback + 30 22 CoreFoundation 0x3468f170 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32 23 CoreFoundation 0x3468f112 __CFRunLoopDoSource1 + 134 24 CoreFoundation 0x3468df94 __CFRunLoopRun + 1380 25 CoreFoundation 0x34600eb8 CFRunLoopRunSpecific + 352 26 CoreFoundation 0x34600d44 CFRunLoopRunInMode + 100 27 UIKit 0x36519480 -[UIApplication _run] + 664 28 UIKit 0x365162fc UIApplicationMain + 1116 29 GAMEAPP 0x000b6c22 main (main.m:14) 30 GAMEAPP 0x000b6344 start + 36 Thread 1: 0 libsystem_kernel.dylib 0x3c8d5d98 __workq_kernreturn + 8 1 libsystem_c.dylib 0x3c823cf6 _pthread_workq_return + 14 2 libsystem_c.dylib 0x3c823a12 _pthread_wqthread + 362 3 libsystem_c.dylib 0x3c8238a0 start_wqthread + 4 Thread 2 name: Dispatch queue: com.apple.libdispatch-manager Thread 2: 0 libsystem_kernel.dylib 0x3c8c5648 kevent64 + 24 1 libdispatch.dylib 0x3c7f5974 _dispatch_mgr_invoke + 792 2 libdispatch.dylib 0x3c7f5654 _dispatch_mgr_thread$VARIANT$mp + 32 Thread 3: 0 libsystem_kernel.dylib 0x3c8d5d98 __workq_kernreturn + 8 1 libsystem_c.dylib 0x3c823cf6 _pthread_workq_return + 14 2 libsystem_c.dylib 0x3c823a12 _pthread_wqthread + 362 3 libsystem_c.dylib 0x3c8238a0 start_wqthread + 4 Thread 4 name: WebThread Thread 4: 0 libsystem_kernel.dylib 0x3c8c4eb4 mach_msg_trap + 20 1 libsystem_kernel.dylib 0x3c8c5048 mach_msg + 36 2 CoreFoundation 0x3468f040 __CFRunLoopServiceMachPort + 124 3 CoreFoundation 0x3468dd9e __CFRunLoopRun + 878 4 CoreFoundation 0x34600eb8 CFRunLoopRunSpecific + 352 5 CoreFoundation 0x34600d44 CFRunLoopRunInMode + 100 6 WebCore 0x3a60a500 RunWebThread(void*) + 440 7 libsystem_c.dylib 0x3c82e30e _pthread_start + 306 8 libsystem_c.dylib 0x3c82e1d4 thread_start + 4 Thread 5 name: AURemoteIO::IOThread Thread 5: 0 libsystem_kernel.dylib 0x3c8c4eb4 mach_msg_trap + 20 1 libsystem_kernel.dylib 0x3c8c5048 mach_msg + 36 2 AudioToolbox 0x3418391c AURemoteIO::IOThread::Run() + 104 3 AudioToolbox 0x34185c84 AURemoteIO::IOThread::Entry(void*) + 4 4 AudioToolbox 0x340c3882 CAPThread::Entry(CAPThread*) + 294 5 libsystem_c.dylib 0x3c82e30e _pthread_start + 306 6 libsystem_c.dylib 0x3c82e1d4 thread_start + 4 Thread 0 crashed with ARM Thread State (32-bit): r0: 0x1ed49740 r1: 0x1f0807c9 r2: 0x000001cd r3: 0x000001c8 r4: 0x00000004 r5: 0x1ed49740 r6: 0x42480000 r7: 0x2fd4af48 r8: 0xffffffff r9: 0x000001c9 r10: 0x1ed49740 r11: 0x1ed4a8a0 ip: 0x000001c7 sp: 0x2fd4af48 lr: 0x000f9e57 pc: 0x000f971c cpsr: 0x00000030 Binary Images: </code></pre> <p>I did modifie the other linker flags to include -lsqlite3.0 and -ObjC (originally it was just -lxml2 and -lz). My release build optimization is -Os (Fastest, Smallest).</p> <p>Anyone else have this issue? I have no idea how to debug this as I cannot repro. Lastly how is it that apple approves the app yet it crashes right after the splash screen? If I can guess when the run the app it works and maybe it gets broken when it goes threw the "Processing for App Store" stage post app approval (not sure).</p> <p>Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload