在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设置,如下所示:
我被困在这个问题几个小时,但优雅的解决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
我遇到了同样的问题。 这是我做的。 它为我工作(希望它可以帮助别人)。
- 将GoogleMobileAds.framework复制到某处并将其从pod中移除。
- 手动添加这个框架到你的项目(select“如果需要复制项目”)。 检查构build阶段,以确保您在“链接二进制…”部分有它。
- 清除并重新构build它=>成功。
我遇到了同样的问题。 这是我做的。 希望它可以帮助别人。
- 从您的项目中删除
GoogleMobileAds.framework
(或将其存储在另一个文件夹中)。 - 去
Build Phases
,Link 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