在iOS中找不到模块“GoogleMobileAds”

我使用Pod将Google AdMob SDK更新为7.1.0。

所以在我的appDelegate.m,我试图添加这一行

@import GoogleMobileAds;

但是我收到错误说模块'GoogleMobileAds'找不到

这个问题也出现在GitHub的google上的Interstial Ad例子中。

关心Ranjit

将GoogleMobileAds.framework复制到您的应用程序时,请务必勾选“需要时复制项目”checkbox。

在这里输入图像说明

在我的情况下,我已经删除了框架,并再次添加该框架,并检查框和问题消失。

尝试将您的GoogleMobileAds.framework复制到您的根项目文件夹中,然后将其添加到库中。 这对我来说是完美的。

迄今没有其他答案为我工作。 这是做了什么:

去“build立阶段”,“与图书馆链接二进制”。 我已经在这里添加了GoogleMobileAds.framework ,所以我删除了它并重新添加了它。

要添加它,请点击“链接二进制库”部分的+符号,然后点击“添加其他…”。 导航到您存储GoogleMobileAds.framework并select它。

确保您已经通过转到“文件”>“添加文件到您的项目名称”,将GoogleMobileAds.framework添加到您的项目中。

这为我解决了这个问题。

答案是:

将其导入到.m文件中

 #import <GoogleMobileAds/GADInterstitial.h> #import <GoogleMobileAds/GADBannerView.h> 

我解决了在“构build设置”中将“定义模块”设置为YES,然后重新导入框架。

这是为我工作的解决scheme:

不要这样做
不要这样做
而不是将GoogleMobileAds.framework拖到您的项目中,并添加此处提及的所有其他框架,并在需要时拖放复选项目。

在这里输入图像说明

我在更新我的pod和使用Firebase时遇到了这个问题。 不幸的是,这里的答案都没有帮助,所以我想我会发布什么对我有用。

我发现了一个伟大的线程,帮助我在这里 。 基本上做了以下工作:

  • 删除我的豆荚 – rm -rf Pods
  • 重新安装我的豆荚 – pod install --repo-update

希望这有助于某人,因为这让我困扰了一会儿。

对我来说,问题是我没有更新我的应用程序的“部署目标”。 它被设置为<7.0,这就是为什么它可能是抱怨。 一旦我将目标更新为> 7.0,错误就消失了。 (对于未来的人来说,像我一样每年更新他们的应用几次)

这里的实际问题是,在您的应用程序的构build设置,你是缺less的设置:

框架searchpath

编辑您的project.pbxproj,以便BuildSettings包含如下内容:

 FRAMEWORK_SEARCH_PATHS = "/Users/bram/src/GoogleMobileAdsSdkiOS-7.16.0/"; 

或者使用Xcode的用户界面来更改构build设置,如下所示:

在Xcode UI中设置

我被困在这个问题几个小时,但优雅的解决scheme终于find了。 我的方法不使用“手动文件链接”,只使用纯podfile的用法。

添加另一个目标到项目后,我更新了我的pod('pod install'或'pod update')时遇到了这个问题。

我的解决scheme是:

去你的podfile, 并确保你已经为你的项目的每个目标定义“目标…”块 (瞧!似乎没有logging,至less我没有find它)。 例如,您有两个目标:“theApp”和“theApp Lite”。 在这种情况下,您的pod文件必须如下所示:

 target 'theApp' do # ...your pods and options here end target 'theApp Lite' do # ...your pods and options here end 

然后执行“pod install”或“pod update”更新您的库。

然后去每个目标的常规设置,并确保你有适当的(对应于你的目标)“libPods … a”(或“libPods …框架”,如果你使用“use_frameworks!”podfile选项) “链接的框架和库”部分。 删除垃圾/错误/困惑的链接,如果有的话。 如果丢失,请手动添加(当您点击“+”时,必须出现在“工作区”组/目录下)。

在“构build阶段”下,您应该观察“[CP]” – 每个目标的前缀项。

在此之后,我没有build设问题。

如果有人仍然发生这个错误 – 检查是否在构build设置字段“框架searchpath”填充正确的path到您的框架

Xcode版本7.2.1(7C1002)目标C

我有这个问题,不得不每次添加GoogleMobileAds项目摆脱这一点。 不知道这是否是一个错误。 首先selectGoogleMobileAds.framework,然后取消勾选Target Membership,然后尝试构build错误消失。 这对我有效。 我希望它有帮助。

如果任何人仍然遇到同样的问题,我只能find一个解决scheme。 我花了几个小时尝试所有迄今为止推荐的东西,没有任何工作,我仍然不知道我在做什么错,但是这里有一点对我有用的破解:无论我从Google下载的任何框架(我试过手册, Cocoa Pods的方法)不起作用,但是当我刚刚下载他们的小testingxCode项目(BannerExample.xcodeproj我相信),我复制了与该testing项目捆绑在一起的框架,粘贴在我的目标项目文件,然后添加框架并链接它。 做完这个之后,我能够很好地导入框架,adMob的效果很好。 我不能为了我的生活弄清楚会有什么不同,但这确实奏效。 我希望这个解决scheme可以帮助其他人解决同样的问题。 我相信我甩掉了我头上最后五根头发中的一根。 祝你好运!

不要在Windows下解压lib文件,它不能正确处理符号链接。

我只是添加“use_frameworks!” 在podfile中,更新pod,它的工作原理。 当我更新我的操作系统到El Captain(10.11.15)和XCode到8版本时出现这个问题。 我的podfile现在:

  target 'My Target' do use_frameworks! pod 'MagicalRecord' pod 'AFNetworking' pod 'Firebase' pod 'Firebase/Core' pod 'Firebase/AdMob' end 

我遇到了同样的问题。 这是我做的。 它为我工作(希望它可以帮助别人)。

  1. 将GoogleMobileAds.framework复制到某处并将其从pod中移除。
  2. 手动添加这个框架到你的项目(select“如果需要复制项目”)。 检查构build阶段,以确保您在“链接二进制…”部分有它。
  3. 清除并重新构build它=>成功。

我遇到了同样的问题。 这是我做的。 希望它可以帮助别人。

  1. 从您的项目中删除GoogleMobileAds.framework (或将其存储在另一个文件夹中)。
  2. Build PhasesLink Binary with Libraries 。 单击Link Binary with Libraries部分的+符号,然后单击Add Other... 导航到您存储GoogleMobileAds.framework > Versions > A > GoogleMobileAds并将其打开的位置。

这完全解决了我的问题。

我留下一个脚本,生成注入静态框架

 pod --version 1.3.1 Version 9.1 (9B55) 

Podfile [目标]

 target 'generic' do #Google pod 'GoogleAds-IMA-iOS-SDK', '~> 3.6.1' pod 'Google-Mobile-Ads-SDK', '~> 7.25.0' #pod Module 'GoogleMobileAds' not found pod '#LIB_ERROR#' sd end 

Podfile [function]

 def inject_frameworks(installer, targetName, listPaths) def print_info(text) puts "\e[33m[!] #{text}\e[0m" end installer.pods_project.targets.each do |target| if target.name == targetName print_info "Inject frameworks in #{target.name}" config = target.build_configurations.first if config xcconfig_path = config.base_configuration_reference.real_path build_settings = Hash[*File.read(xcconfig_path).lines.map{|x| x.split(/\s*=\s*/, 2)}.flatten] frameworks_paths = Array.new if build_settings['FRAMEWORK_SEARCH_PATHS'] frameworks_paths.concat(build_settings['FRAMEWORK_SEARCH_PATHS'].delete!("\n").split(/ /)) end listPaths.each do |frameworks_path| print_info "[#{target.name}] Add search path frameworks #{File.dirname frameworks_path}" frameworks_paths.push(File.dirname frameworks_path) end build_settings['FRAMEWORK_SEARCH_PATHS'] = frameworks_paths.join(" ") File.open(xcconfig_path, "w") { |file| file << "" } build_settings.each do |key,value| File.open(xcconfig_path, "a") {|file| file << "#{key} = #{value.strip}\n"} end listPaths.each do |frameworks_path| print_info "[#{target.name}] Add frameworks #{File.basename frameworks_path}" new_file_framework = config.project.frameworks_group.new_file(frameworks_path) target.frameworks_build_phase.add_file_reference(new_file_framework, true) end end end end end 

Podfile [运行function]

 post_install do |installer| inject_frameworks(installer, "#LIB_ERROR#", [ '$(PROJECT_DIR)/Google-Mobile-Ads-SDK/Frameworks/frameworks/GoogleMobileAds.framework', '$(PROJECT_DIR)/GoogleAds-IMA-iOS-SDK/GoogleInteractiveMediaAds/GoogleInteractiveMediaAds.framework' ]) end