Приложение для iPhone завершает работу при запуске без журнала сбоев

Мое приложение отлично работает на устройствах 3.0 и на устройствах 3.1 при запуске через Xcode, но вылетает при запуске при запуске на устройстве 3.1 при установке через iTunes. Он не оставляет журнала сбоев, но помещает это в консоль:

Thu Oct  1 19:33:36 unknown mobile_installationd[329] <Error>: 00808e00 install_embedded_profile: Skipping the installation of the embedded profile
Thu Oct  1 19:33:37 unknown SpringBoard[24] <Warning>: Reloading and rendering all application icons.
Thu Oct  1 19:33:41 unknown com.apple.debugserver-43[342] <Warning>: debugserver-43 for armv6 Copyright (c) 2007-2009 Apple, Inc.  All Rights Reserved.
Thu Oct  1 19:33:41 unknown com.apple.debugserver-43[342] <Warning>: Connecting to com.apple.debugserver service...
Thu Oct  1 19:33:41 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.companyname.AppName[0x60c]) Spawned and waiting for the debugger to attach before continuing...
Thu Oct  1 19:33:42 unknown kernel[0] <Debug>: launchd[343] Builtin profile: container (seatbelt)
Thu Oct  1 19:33:42 unknown kernel[0] <Debug>: launchd[343] Container: /private/var/mobile/Applications/291BFBE4-F5DC-494D-B7E5-81BED01E508B (seatbelt)
Thu Oct  1 19:33:42 unknown com.apple.debugserver-43[342] <Warning>: 1 [0156/0903]: error: ::task_for_pid ( target_tport = 0x0103, pid = 343, task => 0x0000 ) 0x000001f5/0x000001f5 0x000001f5/0x000001f5 err = (os/kern) failure (0x00000005)
Thu Oct  1 19:33:42 unknown com.apple.debugserver-43[342] <Error>: error: MachTask::StartExceptionThread (): task invalid, exception thread start failed.
Thu Oct  1 19:33:42 unknown com.apple.debugserver-43[342] <Warning>: 2 [0156/0903]: error: ::task_for_pid ( target_tport = 0x0103, pid = 343, task => 0x0000 ) 0x000001f5/0x000001f5 0x000001f5/0x000001f5 err = (os/kern) failure (0x00000005)
Thu Oct  1 19:33:42 unknown com.apple.debugserver-43[342] <Warning>: 3 [0156/0903]: RNBRunLoopLaunchInferior DNBProcessLaunch() returned error: 'DRHT'
Thu Oct  1 19:33:42 unknown com.apple.debugserver-43[342] <Warning>: error: failed to launch process (null): failed to get the task for process 343
Thu Oct  1 19:33:42 unknown com.apple.debugserver-43[342] <Warning>: 4 [0156/1603]: error: ::read ( 7, 0x28091c, 1024 ) => -1 err = Bad file descriptor (0x00000009)
Thu Oct  1 19:33:42 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.companyname.AppName[0x60c]) Bug: launchd_core_logic.c:2649 (23909):10
Thu Oct  1 19:33:42 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.companyname.AppName[0x60c]) Working around 5020256. Assuming the job crashed.
Thu Oct  1 19:33:42 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.companyname.AppName[0x60c]) Job appears to have crashed: Segmentation fault
Thu Oct  1 19:33:42 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.companyname.AppName[0x60c]) Throttling respawn: Will start in 2147483647 seconds
Thu Oct  1 19:33:42 unknown SpringBoard[24] <Warning>: Application 'AppName' exited abnormally with signal 11: Segmentation fault
Thu Oct  1 19:34:42 unknown SpringBoard[24] <Notice>: MultitouchHID(208ba0) uilock state: 0 -> 1

В приложении есть файл Default.png, и это видно на мгновение, но я думаю, что он может быть загружен SpringBoard/launchd/whatnot, поэтому я не думаю, что это признак того, что я действительно когда-либо запускаю.

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


person TALlama    schedule 02.10.2009    source источник
comment
Сколько времени обычно требуется вашему приложению для запуска после установки? Через 10 секунд загрузки ЦП ваше приложение автоматически уничтожается.   -  person jantimon    schedule 02.10.2009
comment
Кажется, он выключается примерно через 2 секунды после отображения Default.png. Однако я посмотрю, что происходит при запуске.   -  person TALlama    schedule 02.10.2009


Ответы (2)


Я помещал сборку в виде необработанного файла .app в Dropbox, и хотя codesign -vvvv AppName.app работал с копией на моей стороне Dropbox, она, по-видимому, каким-то образом изменилась к тому времени, когда она попала к тестировщику. Сертификация не удалась, и приложение отказалось запускаться.

Этот пост в блоге помог понять, что это было причиной, и это помогло найти решение ( архивирование приложения с помощью zip MyApp.zip -r -y MyApp.app).

person TALlama    schedule 04.10.2009

Попробуйте изолировать проблему, закомментировав код, который вы запускаете при загрузке, и посмотрите, загружает ли ваше приложение хотя бы свое главное окно. Затем постепенно раскомментируйте код и используйте операторы NSLog для регистрации значений ваших инициализированных переменных (использование отладчика устраняет вашу проблему, поэтому я думаю, что NSLog в порядке). Постарайтесь исключить тяжелую инициализацию из основного потока, запустив выделенный фоновый поток, если вы видите, что ваше приложение дает сбой из-за того, что загрузка всего занимает слишком много времени.

person luvieere    schedule 02.10.2009