Dyld: библиотека не загружена кокоаподами 0.37 и Xcode 6.3
Я читал все проблемы об ошибке:
dyld: Library not loaded: @rpath/Bolts.framework/Bolts
Referenced from: /private/var/mobile/Containers/Bundle/Application/1542F906-CCE1-4181-AC7C-B5E3EE50E7D7/eBikeMotion.app/eBikeMotion
Reason: no suitable image found. Did find:
Что делает мое приложение неспособным работать на реальном устройстве (но оно работает без каких-либо проблем в симуляторе.
До некоторой степени я думал, что это проблема с фреймами, которые я устанавливал, но после установки вручную оригинальной, которая выбрасывала ошибку, Alamofire и следующая Framework, бросающая ошибку, были следующей в алфавитном порядке (Bolts, as вы можете увидеть в фрагменте кода)
Поэтому я пришел к выводу, что это действительно CocoaPods, который производит эти ошибки. У меня есть последняя версия (0.37) с чистой установкой, Iv'e попытался создать новый проект, я пробовал все предлагаемые решения по этой проблеме без везения, поэтому мне нужно открыть проблему, надеюсь, что кто-то может мне помочь.
С уважением.
Ответы
Ответ 1
После переустановки всей системы и не найдя решение, я обнаружил, что некоторые из фаз сборки, необходимые для правильной работы CocoaPods, отсутствовали.
Решение этой проблемы касается следующих шагов:
- Деинтегрируйте проект cocoapods (вы можете установить инструмент с помощью
sudo gem install cocoapods-deintegrate
).
cocoapods-deintegrate на Github
-
Измените свой подфайл:
Вы должны определить целевое соединение с помощью link_with 'ProjectName'
.
Вы должны определить цель для своих контейнеров: target 'ProjectName' do
[pods here] end
.
-
Сделайте установку с помощью pod install
-
После этого перейдите в XCode и проверьте следующие настройки:
В настройках проекта в разделе "Конфигурации" проверьте, что в Debug and Release у вас есть набор конфигурации с именем Pods-ProjectName.[debug|release]
В вашу цель в разделе "Фазы сборки" вы должны иметь три новые фазы, которые следует называть: Check Pods Manifest
, Embed Pods Frameworks
и Copy Pods Resources
.
-
Выполните очистку, затем выполните сборку, а затем запустите на свое устройство.
Что это.
Ответ 2
В моем случае я выполнил вышеупомянутый ответ @Jorge, но это не решило проблему. Точная ошибка была немного иной, поскольку отсутствующий файл был @rpath Pods.framework/Pods
. Я, наконец, разрешил его с помощью проблемы CocoaPods # 3586:
Перейдите в раздел цели > Общие > Связанные структуры и библиотеки
установите для Pods.framework и Pods_target.framework значение Optional
.
По-прежнему пытаюсь выяснить, почему именно... этот ответ содержит некоторую информацию: what-does-it-mean-to-weak-link-a-framework
Ответ 3
Мне пришлось исправить две проблемы:
-
Перейдите к каждой цели, затем Build Phases
затем Link Binary With Libraries
и выберите Pods.framework
. Установите его на Optional
.
-
Cocoapods не создали необходимые сценарии запуска для моей второй цели. У моей первой цели были все сценарии. Второй нет. Поэтому я скопировал все недостающие сценарии запуска от первой до второй цели. Вам нужно нажать на маленький знак "+" в верхнем левом углу, добавить пробег script и вставить script из другой цели. Я сделал это для Check Pods Manifest.lock
, Copy Pods Resources
и Embed Pods Frameworks
.
Затем он запустился на устройстве. Наконец-то.
Ответ 4
Имел такой же вопрос, добавляя контейнеры в WatchKit Extension. Связывание основной цели с приложением Watch не является лучшим вариантом. Выяснилось, что cocoapod 0.37.2 не добавил 'Embed Pods Frameworks' script в фазу сборки.
Script:
"${SRCROOT}/Pods/Target Support Files/Pods-ExtensionName/Pods-ExtensionName-frameworks.sh"
Ответ 5
Для того, чтобы кокоаподы генерировали фазы сборки, проверьте подписи Manifest, Embed Pods Framework и Copy Pods Ресурсы:
1 - Перейдите к этапам сборки и удалите любые пользовательские изменения. Мне пришлось удалить все, что было в разделе "Бинарные ссылки с библиотеками".
2 - Деинтегрируйте блок (или просто удалите файлы самостоятельно)
3 - Запустите новую установку pod
Это сработало для меня. Без первого шага он никогда этого не делал.
Ответ 6
Чтобы решить эту проблему, вам нужно изменить статус в Link Binary с библиотеками в фазе сборки для pod_projectName.framework и Bolt.framework
У меня такая же ошибка в моем проекте.
получить ошибку в CommonCrypto.framework
Устранена ошибка, изменив параметр Обязательный к Дополнительно