【问题标题】:Xcode 9 + Cocoapods: 'No such module' even though I can use the moduleXcode 9 + Cocoapods:“没有这样的模块”,即使我可以使用该模块
【发布时间】:2017-12-22 01:27:14
【问题描述】:

我遇到了Xcode 9.2 (9C40b)Cocoapods 1.3.1 的一个特殊问题。当我尝试导入 GoogleSignIn 框架时,Xcode 抱怨:

但是整个文件中没有关于GoogleSignIn中的类的其他错误,当我CMD+单击一个类时,我可以查看它的标题(注意顶部的路径,这意味着框架肯定存在于我的工作区):

因此,无论我在何处导入 GoogleSignIn 所涉及的类,我仍然可以引用类型,但我无法构建,因为 Xcode 认为框架丢失。

这是我的 Podfile。我已经运行了pod update,我正在Xcode 中打开MyApp.xcworkspace 文件。

platform :ios, '10.3'

target 'MyApp' do
  use_frameworks!

  # Pods for MyApp
  pod 'Firebase/Core'
  pod 'Firebase/Database'
  pod 'Firebase/Auth'
  pod 'ActionsList', '~> 0.9.1'
  pod 'GoogleAPIClientForREST/Classroom'
  pod 'Google/SignIn', '~> 3.0.3'
end

GoogleSignIn 是唯一出现此问题的框架——我可以完美地使用其他所有内容,当我注释掉与GoogleSignIn 相关的所有代码(import 语句、所有引用等)时,应用程序构建得很好。我应该注意到我已经能够在另一个使用 Cocoapods 的项目中成功 import GoogleSignIn

如何解决这个问题并让 Xcode 相信该框架存在?

【问题讨论】:

  • 尝试将其全部导入到桥接头中。然后您就不必键入该导入语句。您将能够使用它。
  • @Brandon 不幸的是,这似乎也不起作用。我可以 @import 其他模块,例如 Firebase 到桥接头中,但是当我尝试导入 GoogleSignIn 时,它仍然显示“找不到模块”。嗯……
  • 这可能是一个愚蠢的问题,但是您是否明确尝试过构建?如果项目处于干净状态,Xcode 将无法找到该模块(因为它尚未构建),因此会显示此错误。如果仍有问题,请尝试删除 DerivedData 文件夹的内容。
  • @Wilsonator5000;我的意思不是在桥接头中使用@import。例如,我的意思是使用#import <BlahBlah/Foo.h>。 GoogleSigning 可能不支持模块。

标签: ios swift xcode cocoapods


【解决方案1】:
  • 首先制作那个 pod:pod 'GoogleSignIn'

  • 在您应用的 project-Bridging-Header.h 文件中,导入 Google Sign-In SDK 标头:#import <Google/SignIn.h>

    GoogleSignInDOcs了解更多信息

【讨论】:

  • 这仍然不起作用...我也尝试了Google/SignIn/SignIn.h,因为我在Pods 中看到了该文件,但仍然无济于事。我应该注意到,我已经能够在另一个使用 Cocoapods 的项目中成功 import GoogleSignIn — 我将把它添加到我的问题中。
【解决方案2】:

在终端执行cd project/directory; pod install分析、下载和安装你的项目依赖可以解决问题。

我的 pod 文件包含:

  pod 'Firebase'
  pod 'Firebase/Auth'
  pod 'Firebase/Core'

  pod 'GoogleSignIn'

它正在工作。

祝你好运!

【讨论】:

    猜你喜欢
    • 2023-02-16
    • 2015-09-12
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多