Universal iPad App rejected because of launch crash that I can't reproduce
I'm very frustrated with this problem. After one week of waiting my universal iPad app has been rejected because "is crashing on launch on iPad running iPhone OS 3.2 and iPhone 3GS running iPhone OS 3.1.3 and Mac OS X 10.6.2."
Unfortunately I can't replicate the problem, I've tested in debug and release modes and the app works just fine. I even created an ad-hoc configuration and test it in other devices and everything works fine.
I should clarify that this is an update to a current iPhone application and I'm using the same distribution profile as the original iPhone app. Also, I checked everything before building the universal app following this entry:
http://iphonedevelopment.blogspot.com/2010/04/converting-iphone-apps-to-universal.html
Here are the crash logs that Apple sent me:
Incident Identifier: 3E0D4A3B-2896-444D-BCBE-6C0CA1A66A90 CrashReporter Key: 18b5124ea5f657227c5f202a27ed707379b3e2e7 Process: Transfer [982] Path: /var/mobile/Applications/E9062开发者_JAVA技巧465-7EA6-424C-9C61-D9DBCC7C915A/Transfer.app/Transfer Identifier: Transfer Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2010-05-04 15:35:57.399 -0700 OS Version: iPhone OS 3.1.3 (7E18) Report Version: 104 Exception Type: EXC_BAD_INSTRUCTION (SIGILL) Exception Codes: 0x00000001, 0x3eaa2188 Highlighted Thread: 0 Backtrace not available Unknown thread crashed with ARM Thread State: r0: 0x00002f90 r1: 0x00000000 r2: 0x385242d8 r3: 0x0000010d r4: 0x00000000 r5: 0x00000000 r6: 0x00000000 r7: 0x00000000 r8: 0x2ffffba0 r9: 0x2fffef90 r10: 0x00000000 r11: 0x00000000 ip: 0x0000000c sp: 0x2ffffba4 lr: 0x2fe08727 pc: 0x00002f94 cpsr: 0x40000010 Binary Images: 0x1000 - 0x25fff +Transfer armv7 /var/mobile/Applications/E9062465-7EA6-424C-9C61-D9DBCC7C915A/Transfer.app/Transfer 0x2fe00000 - 0x2fe24fff dyld armv7 /usr/lib/dyld ....
And the one for the iPad:
Incident Identifier: 3B170A28-C8E2-4018-8166-E69432A65070 CrashReporter Key: 4a0194e3f60559127faef2b014df605e4c47b981 Hardware Model: iPad1,1 Process: Transfer [533] Path: /var/mobile/Applications/400EE394-7BEE-45CA-942D-DBDC106360FF/Transfer.app/Transfer Identifier: Transfer Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2010-05-04 15:37:17.505 -0700 OS Version: iPhone OS 3.2 (7B367) Report Version: 104 Exception Type: 00000020 Exception Codes: 0x8badf00d Highlighted Thread: 0 Application Specific Information: com.erclab.iphone.photodownload failed to launch in time elapsed total CPU time (seconds): 1.150 (user 0.560, system 0.590), 6% CPU elapsed application CPU time (seconds): 0.150, 1% CPU Thread 0: 0 libobjc.A.dylib 0x33561996 0x33560000 + 6550 1 libobjc.A.dylib 0x33564986 0x33560000 + 18822 2 libobjc.A.dylib 0x33564cb2 0x33560000 + 19634 ...
The app does not do anything other than loading a local HTML into a web view after the app it's launched so I don't understand why it says "failed to launch in time"
Any help will be very much appreciated.
WOW !!!! Now, this is extremely, extremely frustrating. After lots of hours and even days of debugging, looking at my code, testing in different scenarios, asking questions and 2 rejections, Apple wrote me an email today (18 days after my first submission):
"... This is an issue with the submission process and not with your code. iPhone OS Engineering is investigating the problem...."
You can imagine how I feel right now. Thanks to everyone who help me trying to figure out this "crash".
Are you trying to load the web view from applicationDidFinishLaunching? Are you sure the tester can connect to your server?
The crash is not a crash at all, it is the system forcing your app to quit because it took too long to start. Move everything you can out of applicationDidFinishLaunching so it can finish, well, launching.
If you are loading a web page, what happens when you disable all networking (airplane mode) and launch? That is one of the standard tests they run, so you should too.
I would try simulating a low memory condition and see how our app handles it.
EDIT: Check out this Answer iPhone Development Simulate Memory Warning
You said you copied your code over. Did you also copy over your local resources? ie your html file? And you're sure it isn't just linked in? Is it being included in the build? If the file is just linked in to the bundle it may explain why it launches for you but not for them.
In the future (and maybe you want to try this to see if it works out any better for you) the proper way to upgrade your app to a universal app is to use the Xcode file option Upgrade for iPad (or something like that) it will do all the necessary work for you to make it iPad compatible. Step by step is on apple's site, just do a google search how to create universal app.
Just submit the same app again to Apple without any changes. Someone else will review it and They will approve it. Trust me, I've done it before. Apple approval team is downright crazy. On devices, apps crash due to memory issues. This is something that can't be reproduced. From your crashdump it looks like that.
精彩评论