Приложение Universal iPad отклонено из-за аварийного запуска, которое я не могу воспроизвести

Я очень расстроен этой проблемой. После одной недели ожидания мое универсальное iPad-приложение было отклонено, потому что "рушится при запуске на iPad под управлением iPhone OS 3.2 и iPhone 3GS под управлением iPhone OS 3.1.3 и Mac OS X 10.6.2".

К сожалению, я не могу реплицировать проблему, я тестировал ее в режимах отладки и выпуска, и приложение работает отлично. Я даже создал специальную конфигурацию и тестировал ее на других устройствах, и все работает нормально.

Я должен уточнить, что это обновление для текущего приложения для iPhone, и я использую тот же профиль распространения, что и исходное приложение для iPhone. Кроме того, я проверил все, прежде чем создавать универсальное приложение после этой записи:

http://iphonedevelopment.blogspot.com/2010/04/converting-iphone-apps-to-universal.html

Вот журналы сбоев, которые Apple прислала мне:

Incident Identifier: 3E0D4A3B-2896-444D-BCBE-6C0CA1A66A90
CrashReporter Key:   18b5124ea5f657227c5f202a27ed707379b3e2e7
Process:         Transfer [982]
Path:            /var/mobile/Applications/E9062465-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
....

И один для 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

...

Приложение не делает ничего, кроме загрузки локального HTML в веб-представление после запуска приложения, поэтому я не понимаю, почему он говорит "не удалось запустить вовремя"

Любая помощь будет очень оценена.

Ответ 1

WOW!!!! Теперь это чрезвычайно, крайне расстраивает. После нескольких часов и даже дней отладки, просмотра моего кода, тестирования в разных сценариях, задавая вопросы и 2 отказа, Apple написала мне электронное письмо сегодня (через 18 дней после моего первого представления):

"... Это проблема с процессом отправки, а не с вашим кодом. iPhone OS Engineering исследует проблему..."

Вы можете себе представить, как я себя чувствую сейчас. Спасибо всем, кто помогает мне попытаться выяснить этот "крах".

Ответ 2

Вы пытаетесь загрузить веб-представление из приложенияDidFinishLaunching? Вы уверены, что тестер может подключиться к вашему серверу?

Авария не является катастрофой вообще, это система, вынуждающая ваше приложение выйти из строя, потому что это заняло слишком много времени, чтобы начать. Переместите все, что можно, из приложенияDidFinishLaunching, чтобы он мог закончить, ну, запустив.

Ответ 3

Если вы загружаете веб-страницу, что происходит, когда вы отключите всю сеть (режим полета) и запускаете? Это один из стандартных тестов, которые они запускают, поэтому вы тоже должны.

Ответ 4

Я бы попытался имитировать состояние низкой памяти и посмотреть, как наше приложение обрабатывает его.

EDIT: Отметьте этот ответ Разработка iPhone Имитация памяти

Ответ 5

Вы сказали, что скопировали свой код. Вы также скопировали свои локальные ресурсы? т.е. ваш html файл? И вы уверены, что это не просто связано? Включен ли он в сборку? Если файл просто связан с пакетом, он может объяснить, почему он запускается для вас, но не для них.

В будущем (и, возможно, вы захотите попробовать, чтобы узнать, будет ли оно лучше для вас ) правильный способ обновления приложения к универсальному приложению - использовать опцию Xcode File Upgrade для iPad (или что-то в этом роде), она сделает всю необходимую работу для вас, чтобы сделать iPad совместимым. Шаг за шагом находится на сайте Apple, просто выполните поиск в Google, как создать универсальное приложение.

Ответ 6

Просто отправьте это приложение снова Apple без каких-либо изменений. Кто-то еще рассмотрит его, и они одобрят его. Поверьте мне, я сделал это раньше. Команда одобрения Apple совершенно безумна. На устройствах проблемы с приложениями из-за проблем с памятью. Это то, что невозможно воспроизвести. Из вашего crashdump это выглядит так.