Проблема с iphone SDK 4.2.1 - PullRequest
       2

Проблема с iphone SDK 4.2.1

23 голосов
/ 23 ноября 2010

Наверное, глупый вопрос. При запуске моего проекта на устройстве в режиме отладки я получаю много предупреждений со следующей строкой:

предупреждение: невозможно прочитать символы для /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148a) / Символы / System / Library / PrivateFrameworks /

Я думаю, это связано с пробелом между "4.2.1" и "(8C148a)". Как я могу избавиться от этого? Это должно быть где-то в Xcode.

У меня нет этих предупреждений на симуляторе.

спасибо заранее, Кристиан

Ответы [ 8 ]

38 голосов
/ 31 декабря 2010

Я получал:

предупреждение: невозможно прочитать символы для /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148) /Symbols/usr/lib/info/dns.so (файл не найден).

Версия 4.2.1 не включает 'info / dns.so'. По крайней мере, так было для меня. Однако он существует в каталоге 4.2 и на него указывает ярлык / DeviceSupport / Latest . Я просто скопировал «info / dns.so» туда, где его искал отладчик, и это, похоже, устранило предупреждение.

27 голосов
/ 02 декабря 2010

У меня была эта проблема с 4.2.1 (8C148a), которая, как мне кажется, вызвана разными файлами DeviceSupport на телефоне и в XCode. Я перепробовал много вещей, но в итоге решил, удалив эту папку:

/ Разработчик / Платформы / iPhoneOS.platform / DeviceSupport / 4.2.1 (8C148a) /

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

2 голосов
/ 23 ноября 2010

Когда вы подключаете устройство iOS (iPad) с немного более новой ОС, чем в SDK, в окне «Органайзер» Xcode должна появиться кнопка для загрузки новых символов. Ударь его и жди.

1 голос
/ 24 ноября 2010

Я не думаю, что 8C148a является "окончательным"; номера окончательных сборок никогда не заканчиваются буквой (мой телефон сообщает «4.2.1 (8C148)»). Я еще не отлаживал приложения на нем (мне стало скучно ждать, пока он извлечет символы, и пошел домой).

4.2 GM был 8C134, так что вы, конечно, используете более новое программное обеспечение, но что-то где-то неправильно набирает номер сборки.

Но я отвлекся.


Какие каталоги находятся в /Developer/Platforms/iPhoneOS.platform/DeviceSupport? Если «4.2.1 (8C148a)» не существует, но существует «4.2.1», возможно, вам повезет, если вы сделаете что-то подобное в Терминале:

cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport
ln -s "4.2.1" "4.2.1 (8C134a)"

Эквивалентно, если существует «4.2.1 (8C148)», вместо этого выполните что-то подобное:

ln -s "4.2.1 (8C148)" "4.2.1 (8C148a)"

Обычно вы можете использовать эту уловку, чтобы заставить Xcode общаться с бета-устройством без установки бета-версии SDK; это полезно, если в вашей компании есть некоторые люди, которые запускают бета-версию (для целей тестирования), а другие - в последней "финальной версии" (для целей выпуска).

1 голос
/ 23 ноября 2010

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

0 голосов
/ 23 февраля 2011

У меня 4.2.1 на iPhone 3G и Xcode 3.2.5 на MacBook Pro с 10.6.6.После чистой установки Xcode я получил приглашение загрузить символы для 4.2.1 после подключения моего iPhone.После передачи я больше не получал подсказку при подключении iPhone, но получал тонны сообщений «не могу прочитать символы».

Во-первых, что у меня не получилось:

  • Создание символической ссылки на '4.2 (8C134)' с именем '4.2.1 (8C148)'
  • Создание символической ссылки внутри каталога «4.2.1 (8C148)», как в «4.2 (8C134)», к ../../Developer/SDKs/iPhoneOS4.2.sdk

Оба из вышеперечисленных вызвали ошибки "UUID несоответствие" для нескольких библиотек.GDB запускается, но кажется зависает.

Наконец, то, что в настоящее время работает для меня:

  • % cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • % mkdir '4.2.1 (8C148)' #, если он не существует
  • % cd '4.2.1 (8C148)'
  • % cp ../ 4.2 \ \ (8C134 \)/DeveloperDiskImage.dmg*.
  • % cp -r ../../Developer/SDKs/iPhoneOS4.2.sdk Символы
  • Попытка запустить сеанс отладки для приложения и просмотреть консоль,Для каждого предупреждения о несоответствии UUID удалите файл, указанный в сообщении журнала (у меня были AudioToolbox, CoreMedia и некоторые другие)
  • Остановите GDB и повторите попытку, надеюсь, с успехом

По крайней мере, для моего приложения в разработке, все теперь работает нормально.Надеюсь, Xcode 4.0 это прояснит.

0 голосов
/ 07 января 2011

Пока они не предоставят надежный SDK, крутой обходной путь:

1 - выберите исполняемый файл (в «Исполняемых файлах» в браузере проекта),

2 - получите информацию и повернитеoff "Break on Debugger () и DebugStr ()" *

Приветствия и наилучшие пожелания на 2011 год.

T

Это не отключает NSLog.

0 голосов
/ 01 декабря 2010

В настоящий момент существует несоответствие, когда выпущенная версия 4.2.1 опережает SDK-версию 4.2

@ Комментарий Хроба исправил это для меня, хотя!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...