Подтвердить что ты не робот

Dyld: библиотека не загружена: @rpath с iOS8

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

dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName
  Referenced from: /private/var/mobile/Containers/Bundle/Application/0F2C2461-A68B-4ABA-A604-B88E6E9D1BB1/AppName.app/AppName
  Reason: image not found

Параметр сборки Pathpath Search Paths для рамки устанавливается по умолчанию как

'@executable_path/Frameworks', '@loader_path/Frameworks'

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

4b9b3361

Ответ 1

Чтобы сделать эту работу

  • В настройках проекта проекта измените каталог установки с '/Library/Frameworks' to '@executable_path/../Frameworks'

  • В проекте, который включает эту структуру, добавьте фазу файлов копий и скопируйте эту фреймворк в папку "Рамки". После этого убедитесь, что эта структура указана в разделе "Встроенные двоичные файлы".

Ответ 2

Проблема устранена с помощью этого ответа. Согласно @vladof81:

На целевой вкладке "Общие" есть поле "Встроенные двоичные файлы". Когда вы добавляете фреймворк, устраняется сбой.

Ссылка здесь на форумах разработчиков Apple.

Ответ 3

Я получал эту ошибку в библиотеке, установленной через CocoaPods. Очистка папки сборки (cmd + option + shift + k), а затем выполнение чистой (cmd + shift + k) была тем, что в конечном итоге разрешило эту проблему для меня.

Ответ 4

Проверьте, можете ли вы найти структуру в контексте:

Этапы сборки> Вставить каркас>

Если нет, просто добавьте этот фреймворк в "Встроить фреймворки" после добавления этого фреймворка в каталог вашего проекта "Фреймворки".
enter image description here

Ответ 5

Если вы используете Карфаген

Запустите carthage update на терминале

Перейдите в "Настройки проекта" → "Фазы сборки" → "Каркасные структуры копирования"

Добавить строку в входные файлы: $(SRCROOT)/Carthage/Build/iOS/YOURLIBRARY.framework

Добавьте эту строку в выходные файлы: $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/YOURLIBRARY.framework

Ответ 6

Для меня это из-за проблемы с SSL, я установил мой разработчик, сертификаты распространения на моем Mac (Keychain) на "Always Trust" для одного из моих других проектов. Мне пришлось изменить их на "Использовать системные значения по умолчанию". он работал у меня тогда!

Ответ 7

В дополнение к вышеуказанным решениям перепроверьте пути фреймворков, включенных в ваше приложение в разделе

Настройки сборки → Пути поиска → Пути поиска в каркасе

Ответ 8

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

dyld: библиотека не загружена: @rpath/FrameworkName.framework/FrameworkName Ссылка из:/private/var/mobile/Containers/Bundle/Application/xxxxxxxxxxxxxxxxxxx

Причина: изображение не найдено

Вот мой подход, который помог мне решить эту ошибку:

1.Пожалуйста, удалите приложение с устройства, очистите сборку, а затем перестройте и запустите на устройстве.

2.Если вышеуказанные шаги вам не помогут, проверьте, пожалуйста, следующие настройки:
Из "TARGET" > "Настройки сборки" > "Пути поиска пути", а затем проверьте значения "$ (унаследованные)" и "@executable_path/Frameworks", не стесняйтесь добавить, что они не существуют.

Создайте приложение и запустите его на устройстве

Ответ 9

Когда ни одно из этих решений не работает:

  1. (Необязательно) Получите от здесь четкие сведения о различных типах путей поиска
  2. Убедитесь, что ваши пути к файлам .framework добавлены в Build Settings -> Framework Search Paths. Вы можете хранить все файлы фреймворка где-нибудь в App/libs/, добавить эту папку и включить рекурсивно.
  3. Убедитесь, что ваши пути к файлам .a добавлены в Build Settings -> Library Search Paths.

enter image description here

Ответ 10

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

Ответ 11

Я установил сторонние библиотеки, используя Cocoapods. Получил ту же ошибку, попробовал все, но наконец понял, что у меня не было use_frameworks! в моем файле под.

Так что удалил установленную на данный момент библиотеку, добавил use_frameworks! строка в файле pod, переустановил библиотеки и у меня все заработало.