ld:找不到框架GTMOAuth2

时间:2016-11-16 12:48:52

标签: swift xcode cocoapods gtm-oauth2

一切正常,直到我的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.0Swift 2.3Cocoapods 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 个答案:

答案 0 :(得分:18)

选择.xcworkspace(不是.xcodeproj)重新打开您的项目,这3个警告和1个错误将消失。

答案 1 :(得分:1)

要解决此问题,请确保在项目构建设置中将Build Active Architecture Only设置为No。 同时在所有Pod目标中将Build Active Architecture Only设置为No,如附带的屏幕截图所示。

enter image description here

然后清理并重建项目。

答案 2 :(得分:0)

正如@ jeffrey-neo所说,它通常与工作区和项目相关。我唯一的补充是,如果您使用BitRise在云中编译它,您需要检查工作流程应用程序设置(请参阅:http://devcenter.bitrise.io/ios/frequent-ios-issues/#cocoapods-missing-dependency-issue)。它可以默认使用项目而不是工作区文件。

答案 3 :(得分:0)

当我的项目名称中包含撇号时,我遇到了这个问题,导致CocoaPods为GTMOAuth2框架生成了无效的目录路径。

我通过更改项目名称并重新生成所有文件来修复它。