ld: framework не найден GTMOAuth2
Все работало нормально, пока я не отформатировал свой Mac. После форматирования (перенесено из El Capitan
в Sierra
), Я клонировал репозиторий, установил Cocoapods
, сделал pod update
, И все перепуталось с pods
, Я не могу собрать приложение. Ошибка с Cocoapods
(Я думаю так). Ошибка заключается в следующем:
ld: framework not found GTMOAuth2
clang: error: linker command failed with exit code 1 (use -v to see invocation)
я использую Xcode 8.0
а также Swift 2.3
, с Cocoapods 1.1.1
,
мой Podfile
является:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'ProjectName' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Firebase Pods
pod 'Firebase'
pod 'Firebase/Messaging'
pod 'Firebase/Auth'
pod 'Firebase/Crash'
# Google Pods
pod 'Google/SignIn'
pod 'Google/Analytics'
# Crashlytics
pod 'Fabric'
pod 'Crashlytics'
# Facebook
# pod 'FacebookCore'
# Pods for ProjectName
target 'ProjectName Tests' do
inherit! :search_paths
# Pods for testing
end
target 'ProjectName UITests' do
inherit! :search_paths
# Pods for testing
end
end
Также получать предупреждение о путях фреймворка. Это следующие:
ld: warning: directory not found for option '-F/Users/<user>/Library/Developer/Xcode/DerivedData/<project-name>-ftvbhpamiyfzmwdfpxknyvpcypde/Build/Products/Debug-iphonesimulator/GTMOAuth2'
ld: warning: directory not found for option '-F/Users/<user>/Library/Developer/Xcode/DerivedData/<project-name>-ftvbhpamiyfzmwdfpxknyvpcypde/Build/Products/Debug-iphonesimulator/GTMSessionFetcher'
ld: warning: directory not found for option '-F/Users/<user>/Library/Developer/Xcode/DerivedData/<project-name>-ftvbhpamiyfzmwdfpxknyvpcypde/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac'
4 ответа
Откройте свой проект, выбрав .xcworkspace
(не .xcodeproj
), эти 3 предупреждения и 1 ошибка исчезнут.
У меня была эта проблема, когда у меня было имя проекта, включающее апостроф, в результате которого CocoaPods генерировал неверный путь к каталогу для платформы GTMOAuth2.
Я исправил это, изменив имя проекта и восстановив все файлы.
Чтобы решить эту проблему, убедитесь, что Build Active Architecture Only
установлен в No
в ваших проектах соберите настройки. Также установлено Build Active Architecture Only
в No
во всех целях Pod, как показано на прикрепленном скриншоте.
Затем очистите и перестройте проект.
Как говорит @jeffrey-neo, обычно это связано с рабочим пространством или проектом. Единственное добавление к этому - если вы используете BitRise для компиляции в облаке, вам нужно проверить настройки приложения рабочего процесса (см.: http://devcenter.bitrise.io/ios/frequent-ios-issues/). По умолчанию он может использовать проект, а не файл рабочей области.