Xcode 7 Beta 6, dyld ___NSArray0__ сбой

Впервые я смог скомпилировать свое приложение в Xcode 7 (не удалось в бета-версии 4 и 5). Так что это хороший прогресс, я думаю.

Однако, когда я загружаю свое приложение на свой iPhone 6, iOS 8.4.1, оно зависало в отладчике со следующим сообщением:

dyld: символ не найден: _NSArray0 Ссылка на: /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq Ожидается в: /System/Library/Frameworks/CoreFound. Framework / CoreFoundation в /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq

Это как-то связано с порядком связывания библиотек? С нетерпением ждем некоторых советов.

Спасибо!

7 ответов

Решение

Точно такой же сбой я испытал при запуске Xcode 7.0 beta 6 на устройстве с первой установленной бета-версией iOS 9, однако при использовании симулятора сбой не происходил.

После обновления моего iPhone до iOS 9 beta 5 сбой прекратился.

Я исправил это, поместив это в подфайл. платформа:ios, '8.4' Нет необходимости обновлять ваше устройство до iOS 9 и проигрывать при тестировании 8.4.

У меня была такая же ошибка, и я исправил. Я удалил CoreFoundation.framework и снова добавил со статусом "Необязательно" и работает.

Если кто-то еще получил это во время выполнения модульных тестов, сделайте следующее:

  1. Выберите цель модульных тестов
  2. Перейти в настройки сборки
  3. Поиск "Цель развертывания"
  4. Измените версию цели развертывания на цель развертывания вашего проекта

Это оно!

Это проблема сборки iOS8 с новым выпуском XCODE. Пожалуйста, удалите CoreFoundation.framework и добавьте его снова со статусом "Optional".

У меня также была эта проблема, и я исправил ее, добавив фреймворк CoreFoundation.framework в настройки сборки.

Раньше у меня была такая же ошибка во время компиляции проекта MacOS после обновления версии Xcode для 7.0 GM (7A218). В Xcode 7 есть только SDK 10.11 (вы можете проверить это в /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs, где это MacOSX10.11.sdk).

Во время компиляции xcode свяжет фреймворки из /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks, но во время выполнения из / System / Библиотека / Каркасы / как мне кажется.

У меня OS X 10.10.5 (14F27) на Mac. Либо у меня есть моя статическая библиотека, которую я создал с помощью xcode 7 (MacOSX10.11.sdk, как вы помните ранее), которую я связал с моим проектом после. После запуска я получил ошибку во время выполнения как

dyld: символ не найден: _NSArray0

Я думаю, это потому, что библиотека была скомпилирована с CoreFoundation.framework из MacOS SDK 10.11, но во время выполнения была связана с CoreFoundation.framework из / System / Library / Frameworks /, где версия 10.10 (как версия ОС).

Как я это исправил. У моего друга еще есть xcode 6, я взял оттуда MacOS SDK 10.10 (как вы помните в /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs, имя MacOSX10.10.sdk) и добавил его в мой Xcode. Затем я перестроил свою статическую библиотеку с помощью 10.10 sdk (вы можете скомпилировать из cli с параметром '-sdk macosx10.10' или установить build sdk в Build Settings => Base SDK). После того, как проблема была решена.

Я предполагаю, что для iOS вы можете применить ту же стратегию.

Другие вопросы по тегам