Swift ld:未找到框架GTMOAuth2
在我把mac格式化之前,一切都很好。格式化后(从El Capitan移动到Sierra),我克隆了存储库,安装了Cocoapods,进行了pod更新。所有的东西都被Swift ld:未找到框架GTMOAuth2,swift,xcode,cocoapods,gtm-oauth2,Swift,Xcode,Cocoapods,Gtm Oauth2,在我把mac格式化之前,一切都很好。格式化后(从El Capitan移动到Sierra),我克隆了存储库,安装了Cocoapods,进行了pod更新。所有的东西都被豆荚弄得一团糟。我无法构建应用程序。错误在于Cocoapods(我想是的)。错误如下: ld: framework not found GTMOAuth2 clang: error: linker command failed with exit code 1 (use -v to see invocation) ld: warni
豆荚弄得一团糟。我无法构建应用程序。错误在于Cocoapods
(我想是的)。错误如下:
ld: framework not found GTMOAuth2
clang: error: linker command failed with exit code 1 (use -v to see invocation)
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'
我使用的是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: framework not found GTMOAuth2
clang: error: linker command failed with exit code 1 (use -v to see invocation)
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'
ld:警告:未找到选项'-F/Users//Library/Developer/Xcode/DerivedData/-ftvbhpamiyfzmwdfpxknyvpcypde/Build/Products/Debug iphonesimulator/GTMOAuth2'的目录
ld:警告:未找到选项'-F/Users//Library/Developer/Xcode/DerivedData/-ftvbhpamiyfzmwdfpxknyvpcypde/Build/Products/Debug iphonesimulator/GTMSessionFetcher'的目录
ld:警告:未找到选项'-F/Users//Library/Developer/Xcode/DerivedData/-ftvbhpamiyfzmwdfpxknyvpcypde/Build/Products/Debug iphonesimulator/GoogleToolboxForMac'的目录
通过选择.xcworkspace
(而不是.xcodeproj
)重新打开项目,这3个警告和1个错误将消失。要解决此问题,请确保在项目生成设置中将仅构建活动体系结构
设置为否
。
在所有Pod目标中也将Build Active Architecture Only
设置为No
,如所附屏幕截图所示
然后清理并重建项目。正如@jeffrey neo所说,它通常与工作区和项目相关。我唯一的补充是,如果您使用BitRise在云中编译它,您需要检查工作流应用程序设置(请参阅:)。它可以默认使用项目而不是工作区文件。当我有一个包含撇号的项目名称时,我遇到了这个问题,导致CocoaPods为GTMOAuth2框架生成了一个无效的目录路径
我通过更改项目名称并重新生成所有文件来修复它。可能的重复项