2011-04-08 6 views
1

Недавно я обновился до xCode 4.0.1, чтобы использовать последнюю версию iOS SDK (4.3). В настоящее время я занимаюсь разработкой устройств iOS 3.X, но в ближайшее время планирую перейти на iOS 4.X.Невозможно запустить приложение iOS 3.X, скомпилированное с iOS SDK 4.3

Проблема в том, что я не могу успешно запустить что-либо на своих текущих устройствах 3.X. Насколько я понимаю, 4.3 SDK поддерживает компиляцию для всех версий iOS 3.0 и последующих, и, конечно же, я могу компилировать такие приложения просто отлично. Но если я попытаюсь запустить его в симуляторе или на устройстве, он начнет загружаться, а затем просто сработает.

На данный момент я просто пытаюсь запустить стандартное оконное приложение без каких-либо изменений. Я выбрал 4.3 в качестве базового SDK и установил цель развертывания в 3.0. Я могу выбрать каждую версию iOS от 3.0 до моей цели сборки, но только с использованием 4.3, похоже, действительно работает вообще.

Когда я запустить приложение на свой телефон, я получаю следующее в журналах:

GNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Sat Feb 12 02:56:02 UTC 2011) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "--host=x86_64-apple-darwin --target=arm-apple-darwin".tty /dev/ttys002 
warning: Unable to read symbols from "dyld" (prefix __dyld_) (not yet mapped into memory). 
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1.3 (7E18)/Symbols/System/Library/Frameworks/UIKit.framework/UIKit (file not found). 
warning: Unable to read symbols from "UIKit" (not yet mapped into memory). 
warning: Unable to read symbols from "Foundation" (not yet mapped into memory). 
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1.3 (7E18)/Symbols/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (file not found). 
warning: Unable to read symbols from "CoreGraphics" (not yet mapped into memory). 
warning: Unable to read symbols from "libgcc_s.1.dylib" (not yet mapped into memory). 
warning: Unable to read symbols from "libSystem.B.dylib" (not yet mapped into memory). 
warning: Unable to read symbols from "libobjc.A.dylib" (not yet mapped into memory). 
warning: Unable to read symbols from "CoreFoundation" (not yet mapped into memory). 
target remote-mobile /tmp/.XcodeGDBRemote-18423-39 
Switching to remote-macosx protocol 
mem 0x1000 0x3fffffff cache 
mem 0x40000000 0xffffffff none 
mem 0x00000000 0x0fff none 
[Switching to process 11779 thread 0x0] 
[Switching to process 11779 thread 0x0] 
gdb stack crawl at point of internal error: 
0 gdb-arm-apple-darwin    0x000000010010974a internal_vproblem + 308 
1 gdb-arm-apple-darwin    0x0000000100109924 internal_verror + 27 
2 gdb-arm-apple-darwin    0x00000001001099c2 align_down + 0 
3 gdb-arm-apple-darwin    0x0000000100150c5e macosx_solib_add + 794 
4 gdb-arm-apple-darwin    0x000000010016417c remote_macosx_complete_create_or_attach + 187 
5 gdb-arm-apple-darwin    0x000000010016489e remote_macosx_create_inferior + 1252 
6 gdb-arm-apple-darwin    0x000000010005f6c3 run_command_1 + 586 
7 gdb-arm-apple-darwin    0x0000000100107b7f execute_command + 557 
8 gdb-arm-apple-darwin    0x00000001000171e7 mi_execute_async_cli_command + 204 
9 gdb-arm-apple-darwin    0x00000001000168e5 captured_mi_execute_command + 344 
10 gdb-arm-apple-darwin    0x0000000100072a62 catch_exception + 57 
11 gdb-arm-apple-darwin    0x000000010001443e mi_execute_command + 140 
12 gdb-arm-apple-darwin    0x0000000100077721 process_event + 133 
13 gdb-arm-apple-darwin    0x0000000100078435 gdb_do_one_event + 1049 
14 gdb-arm-apple-darwin    0x0000000100072b49 catch_errors + 70 
/SourceCache/gdb/gdb-1518/src/gdb/macosx/macosx-nat-dyld.c:1648: internal-error: unrecognized shared library breakpoint 
A problem internal to GDB has been detected, 
further debugging may prove unreliable. 

Я предполагаю, что где-то вдоль линии, приложение не быть правильно настроен, чтобы ссылка на 3 API версии .X, следовательно, материал «неспособный прочитать символ» появляется в журналах. Я просто не могу понять, как исправить ситуацию.

Любые предложения с благодарностью оценили!

ответ

3

Нет «ссылки на API 3.x», есть только SDK, с которым вы строите. SDK обратно совместим, чтобы нормально работать на устройствах 3.x.

Двойная проверка того, что у вас есть правильные настройки на уровне xcodeproj и целевого уровня. Если все это правильно, то он должен работать нормально на устройстве 3.1.

Если это не работает, то вот несколько выстрелов в темноте, что может помочь:

  • перезагрузка Мак и устройство iPhone 3.x
  • Удалить & повторно добавить необходимую Provisioning профиль
  • double проверить ваш сертификат действителен
  • Убедитесь, что в вашем проекте нет файлов прав & целевые настройки для отладочной сборки
  • Очистить все цели
  • Построить & запустить снова

Если ничего из этого не работает, Вы, возможно, сломана установку Xcode 4.

Надеется, что это помогает :)

+0

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

+0

Рад, что я мог помочь! –

0

Вы указали iOS 3.x как свою цель? Если вы установите цель сборки в последнюю версию (4.3), тогда потребуется эта версия.

+0

. Да, попробовал это. Я пробовал настроить свой бу ild, поскольку каждая версия от 3.0 до 4.3, и только 4.3 работает (а затем, только на симуляторе, так как у меня есть телефон 3.1.3). – Mac

+0

@Mac вы пытались сменить устройство в симуляторе? –

+0

Моими вариантами являются «iPhone», «iPhone (Retina)» и «iPad». Я тестировал «iPhone». – Mac

0

Вы пытались удалить библиотеки фреймворков из версии 3.x и снова заменить в версии 4.x, а затем очистить n здание?

+0

это не проект 3.x, который я переношу (на этом этапе все равно), поэтому нет версии 3.x - I «Я пытаюсь создать * новый проект *, созданный в xCode 4, для работы. Тем не менее, я попытался вручную заменить рамки и не имел никакого улучшения. Спасибо за предложение, но это тоже не проблема. – Mac

0

настройки Открыть билд вашего проекта

Specify ключ IOS РазВЕРТЫВаНИе TARGET в 3,2

Вы компилируете для 4.3. Но ваше приложение будет работать и на 3.2 устройствах. Обратите внимание на методы, которые вы вызываете ... Если вы используете методы, которые находятся только в формате 4.3, вы должны проверить его во время выполнения, используя if ([object отвечаетSoSelector: ... иначе ваше приложение будет врезаться на предыдущей прошивке

0

открытой сборка

набора базовый SDK: пример Ios versionyou хочет

затем

открытой мишень и дважды щелкни его открытой сборку установите базовый SDK