2016-11-01 8 views
52

После того как я обновлю свою Firebase через "обновление стручок", я получил сообщение об ошибке, как это:Framework не найден GoogleToolboxForMac

ld: warning: directory not found for option '-F/Users/bennysantoso/Library/Developer/Xcode/DerivedData/FCM-atfcxuircoryufazlomgwfgmvaqm/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac' 
ld: framework not found GoogleToolboxForMac 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Вот мой Podfile:

# Uncomment this line to define a global platform for your project 
# platform :ios, '9.0' 
pod 'Firebase/Core' 
pod 'Firebase/Messaging' 

target 'BB' do 
    # Comment this line if you're not using Swift and don't want to use dynamic frameworks 
    use_frameworks! 

    # Pods for BB 

    target 'BBTests' do 
    inherit! :search_paths 
    # Pods for testing 
    end 

    target 'BBUITests' do 
    inherit! :search_paths 
    # Pods for testing 
    end 

end 

Кто-нибудь знает об этой ошибке?

Я ищу отношения GoogleToolboxForMac и Firebase, но я просто получаю немного информации.

FYI, я использую Swift 2.3 и Firebase 3.8.0.

Буду благодарен за любую помощь, которую вы можете предоставить. Благодаря!

+1

То же самое для меня .. кто-нибудь может помочь?Я весь день работаю над этим:/Я замечаю, что использование более старых версий одной и той же библиотеки не использует GoogleToolboxForMac и отлично работает :( –

+0

Из других ответов stackoverflow я попытался добавить все следующее в мой файл подкачки, но все еще не работая: стручка 'Google/Аналитика' стручка 'Firebase/Core' стручка 'Firebase/AdMob' # Попытки исправить GoogleToolboxForMac отсутствующей ошибке стручка 'Firebase/сообщения' стручка 'GoogleToolboxForMac/Logger' стручка «GoogleToolboxForMac ',' ~> 2.1 ' –

+0

Прежде всего, формат вашего подфайла является старым (Q4/2016). Удалите его и создайте новый с помощью «pod init». Используйте рабочую область, а не xcodeproj, как предложено ниже. – igraczech

ответ

117

У меня была такая же ошибка. После установки контейнеров вы увидите следующее сообщение.

[!] Пожалуйста, закройте все текущие сеансы Xcode и использовать MyApp.xcworkspace для этого проекта теперь.

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

Как только вы откроете этот проект, вы заметите, что у вас есть два подпроекта. Один из них будет вашим проектом, а другой - проектом Pods.

+13

Ты бог среди мужчин. – user435779

+1

Спасибо, лучший ответ – Vicky

+0

Я использовал стручки по меньшей мере в дюжине или около того проектов, и я всегда закрываю Xcode перед установкой модулей. На этот раз я забыл. После установки я попытался построить свой проект и получил это. Я серьезно потратил хотя бы пару часов на то, чтобы устранить эту проблему. спасибо – froggomad

9

GoogleToolboxForMac - это зависимость Firebase/Messaging. Подробности в podspec. Когда вы выполняете «обновление pod», Cocoapods должны настроить рабочее пространство для создания и соединения GoogleToolboxForMac.

Звучит так, как будто ваше рабочее пространство находится в плохом состоянии. Does Product -> Clean help? Как удалить Исходные данные и ModuleCache (Xcode -> Настройки -> Местоположение -> Производные данные)?

Это не обязательно, но вы также можете попробовать явно добавить pod 'GoogleToolboxForMac/Logger' в ваш подфайл.

+0

Удаление данных Derived трюк k для меня. Благодаря! –

+0

Нет, это не сработало для меня ... путем открытия проекта из рабочего пространства! –

+0

@JayprakashDubey Этот ответ предполагает, что вы начинаете с рабочей области. См. Первый абзац. Ответ решает другой сценарий, который приводит к одному и тому же симптому. –

11

В моем случае вся интеграция выполнена хорошо, а также попробовал столько раз, чтобы удалить и переустановить модуль, но не получило успеха.

Наконец попробуйте ниже шага

Projetc-> Управление Схемы -> установите флажок "Бобы-MyProjectName"

и получить успех.

+0

Я получил эту ошибку при запуске в симуляторе, но не получил ее на самом устройстве. – mpwhitt

+0

Это работало для меня, но я должен был создать проект pods явно, прежде чем пытаться построить свой проект. Не знаю, почему. – pieSquared

+0

Я сделал это, но я не могу запустить приложение на своем симуляторе? –

0

Закрыл проект, который я пытался создать после того, как я установил программу, затем открыл .workspace, а затем все построено отлично.

3

Это было исправлено, добавив $ (унаследованный) в настройках сборки -> Найти LIBRARY_SEARCH_PATHS.

Это понятно, так как при обновлении файла стручок для последних версий библиотек, которые ваш проект зависит от, отладочный вывод говорит вам, где нужно добавить все $ (наследственными) флаги: LIBRARY_SEARCH_PATHS OTHER_LD_FLAGS GCC_PREPROCESSOR_DEFINITIONS

+0

где положить $ (унаследованный), я должен нажать +, затем набрать $ (унаследованный)? –

+0

Да, вы можете нажать + и ввести $ (унаследованный) или просто дважды щелкнуть по редактируемому прямоугольнику, а затем вы можете ввести $ (унаследованный) – TomV

-2
Friends, you must be confused with the exact result, as i was. So, i feel to share the 
screenshot that might be helpful. We all had to be careful that we need to change the flag for property **"Build Active architecture Only"** for **pod target** to **NO** And build, it would not show the linking error. 

    See the attached screenshot. 
    Screen Shot 1, Screen Shot 2, Screen Shot 3 
    [Select Pods][1] 
    [Select Targets in the pod][2] 
    [Change flag to No][3] 


    [1]: https://i.stack.imgur.com/E7mjX.png 
    [2]: https://i.stack.imgur.com/wCwET.png 
    [3]: https://i.stack.imgur.com/KVGKM.png 
+0

Не публикуйте целые скриншоты, пожалуйста, предоставьте только часть с подкладкой, мой друг. – igraczech

+0

Это сработало, хотя было бы лучше объяснить решения, а не размещать скриншоты. Решение состоит в том, чтобы изменить значение Valid Arch Only только на «Нет» в объектах проекта и Pods. –

11

Framework не найден

При использовании Бобов, мы обычно сталкиваемся с этой проблемой.

Есть две основные причины для этого

  1. Когда мы открываем файл .xcodeproj вместо .xcworkspace как было упомянуто izaaz-Юнуса в этом Answer

  2. Когда Только встроенная активная архитектура установлена ​​в Да в Настройки Построить

    Это относится и к цели проектов, а также для всех целей в стручок проекта

Main Project Скриншот Set Build Active Architecture Only to No

Pod Проект Скриншот enter image description here

  1. Выберите Построить Настройки (основного проекта, проект стручка оба)
  2. Выберите каждый Target один на один
  3. Набор Построить Активные Architectures к Нет для каждой цели

Наконец, очистите и перестройте свой проект.

+0

Спаситель. Это сработало отлично !!! –

+0

Прекрасно боролся через это пару дней. – rmeier

0

Откройте свое Project.xcworks в своем проекте.

1) Открыть терминал -> 2) $ кд/project_destination -> 3) $ открыть свой-project.xcworkspace

или просто открыть файл в искателе

2
 
its work's 
1. select your project in directories 
2. select General 
3. Add "GoogleToolboxForMac.framework" to the Linked "frameworks and Libraries" 
+0

Связывание библиотеки явно решило это для меня. Thanx! – Liquinaut

0

Убедитесь, что ваш «Строить Параметры активной архитектуры "для вашей целевой цели проекта и для модуля являются такими же. Установка NO в обоих этих случаях исправила мою проблему.

Смежные вопросы