一切正常,直到我的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'
答案 0 :(得分:18)
选择.xcworkspace
(不是.xcodeproj
)重新打开您的项目,这3个警告和1个错误将消失。
答案 1 :(得分:1)
要解决此问题,请确保在项目构建设置中将Build Active Architecture Only
设置为No
。
同时在所有Pod目标中将Build Active Architecture Only
设置为No
,如附带的屏幕截图所示。
然后清理并重建项目。
答案 2 :(得分:0)
正如@ jeffrey-neo所说,它通常与工作区和项目相关。我唯一的补充是,如果您使用BitRise在云中编译它,您需要检查工作流程应用程序设置(请参阅:http://devcenter.bitrise.io/ios/frequent-ios-issues/#cocoapods-missing-dependency-issue)。它可以默认使用项目而不是工作区文件。
答案 3 :(得分:0)
当我的项目名称中包含撇号时,我遇到了这个问题,导致CocoaPods为GTMOAuth2框架生成了无效的目录路径。
我通过更改项目名称并重新生成所有文件来修复它。