Вопрос по crash, ios5, xcode4.2, ios4, automatic-ref-counting – Что является причиной для dyld`dyld_fatal_error, несовместимого API для iOS?

18

Я перевожу часть своих проектов на iOS 5 / ARC. Один из старейших проектов (iOS 4.2, armv6 для поддержки iPod Touch 2g) дает мне:

<code>dyld`dyld_fatal_error:
0x8feb1070:  int3   
0x8feb1071:  nop    
</code>

Сразу после запуска образа, но перед переходом на главную. Должен быть какой-нибудь lib / code обновлен до iOS 5, но какой именно? Можно ли использовать метод получше, чем угадать ??

Ваш Ответ

7   ответов
2

iPhone 5, но при запуске того же кода для iPhone 7S Plus он показывает ошибку.

Решение этой проблемы:  1. Перейдите к общему - & gt; Встроенные двоичные файлы.  2. Добавьте ту же платформу (в моем случае Reachability.framework)  3. Затем добавьте libc ++. Tbd в Связанные фреймворки и библиотеки.

Надеюсь, это сработает для вас.

2

и это происходит, когда я запускал приложение на своем iPhone 6s, и оно работало раньше ...

Просто зайдите в Product - & gt; Очистите и запустите снова ...

Надеюсь, это поможет.

0

возможно, вы забыли добавить фреймворк в & quot; Копировать фреймворки & quot; Перейти к цели - & gt; Этапы сборки - & gt; Копировать рамки - & gt; Добавьте рамки в список.

1

xCode 4.3 (cocos3d based) проект, когда я тестировал на iPhone 3GS с iOS 4.2.

Зайдите в настройки своего проекта и обновите:
Target(Ы)| Summary | Linked Frameworks and Libraries | GLKit.framework вOptional
(скорее тогдаRequired), а затем проверьте снова.

После внесения этих изменений все, кажется, теперь хорошо для меня.

Удачи!

5

Console Output Вы увидите ошибку, сообщающую, какая структура отсутствует в устройстве и которая вызывает проблему (как сказал grundyoso в своем ответе).

Таким образом, чтобы исправить это, вы можете перейти к целиGeneral вкладка и добавьте отсутствующую структуру вEmbedded Binaries раздел.

Это скопирует фреймворк в приложение, поэтому его никогда не пропустят ни на одном устройстве.

Спасибо ... Это сработало для меня.
-1

ваша основная цель - ссылка на XCTest.framework, но она не удалась.

1) Зайдите в настройки проекта - & gt; 2) Перейдите к основной цели ваших приложений - & gt; другие флаги компоновщика 3) удалить "-framework XCTest"; 4) убедитесь, что «другие флаги компоновщика»; поле для вашей цели теста по-прежнему содержит "-framework XCTest"

2) проверьте Images.xcassets и другие ресурсы в инспекторе файлов (правая панель), посмотрите на «целевое членство», проверьте, не выбран ли целевой объект «Тесты».

3) попробуйте поискать XCTest в своем проекте и посмотреть, что вы установили.

ИЛИ ЖЕ

Попробуйте удалить тесты

25

этот проект используя Xcode4.3.2 с SDK iOS5.1. Проблема заключалась в том, что стандартный шаблон проекта на Xcode4.3.2 настраивает для iOS5, который имеет некоторые функции, которые более ранние версии iOS не поддерживают. В моем случае была добавлена GLKit Framework, которая не поддерживалась на моем iPhone3G под управлением iOS4.2. Ошибка, которую я получил, была такой же, как ваша:

dyld`dyld_fatal_error:
0x2fe01080:  trap   
0x2fe01084:  mov    r0, r0

При ближайшем рассмотрении вывода консоли вы можете увидеть, что вызывает сбой приложения:

dyld: Library not loaded: /System/Library/Frameworks/GLKit.framework/GLKit
Referenced from: /var/mobile/Applications/A60A53B1-F87D-467D-BB0B-82C603049202/HiJackInTheBox.app/HiJackInTheBox
  Reason: image not found
(lldb) 

Ошибка означала, что платформа GLKit не была найдена в резиденте iOS в том месте, где было установлено приложение. Фреймворк загружался в сборку под Project-> BuildPhases-> LinkBinaryWithLibraries.

Таким образом, чтобы исправить проблему, мне нужно было удалить среду GLKit и весь код, делающий ссылки на нее. Затем сборка прошла успешно и запустилась на целевом устройстве. Надеюсь это поможет!

Это было в окне Console Output. Вы можете отфильтровать для & quot; dyld & quot; строка и посмотреть, поможет ли это найти его.
Да, я подтверждаю это, когда в устройстве IOS 4 используется несовместимый lib / вызов IOS5 mamcx
Как вы могли видеть сообщение «Библиотека не загружена»? Я получаю ту же ошибку, но не могу найти читаемое сообщение.

Похожие вопросы