我使用Pod将Google AdMob SDK更新为7.1.0。
所以在我的appDelegate.m中,我正在尝试添加此行
@import GoogleMobileAds;
但我收到的错误是未找到模块'GoogleMobileAds'。
谷歌在gitHub上的Interstial Ad示例中也存在此问题。
此致 兰吉特
答案 0 :(得分:23)
答案 1 :(得分:16)
尝试将GoogleMobileAds.framework
复制到根项目文件夹中,然后将其添加到库中。它对我来说很完美。
答案 2 :(得分:9)
对于我来说,其他任何答案都没有。这就是:
转到“构建阶段”,“将二进制文件链接到库”。我已经在这里添加了GoogleMobileAds.framework
,所以我将其删除并重新添加。
要添加它,请单击“链接二进制文件库”部分的+号,然后单击“添加其他...”。导航到您存储的位置GoogleMobileAds.framework
并选择它。
通过转到'文件'>确保您首先将GoogleMobileAds.framework
添加到您的项目中'将文件添加到您的项目名称'。
这解决了我的问题。
答案 3 :(得分:7)
以下是答案:
将其导入 .m文件:
#import <GoogleMobileAds/GADInterstitial.h>
#import <GoogleMobileAds/GADBannerView.h>
答案 4 :(得分:6)
我在更新我的pod并使用Firebase时遇到了这个问题。不幸的是,这里没有任何答案有帮助,所以我想我会发布对我有用的内容。
我找到了一个帮助我here的好线程。基本上做了以下工作:
rm -rf Pods
pod install --repo-update
希望这对某人有所帮助,因为这让我困扰了一段时间。
答案 5 :(得分:4)
我解决了在Build Settings中将“Defines Modules”设置为YES并重新导入Framework的问题。
答案 6 :(得分:4)
这是适用于我的解决方案:
不要这样做
˙而不是将 GoogleMobileAds.framework 拖到您的项目中添加提到的所有其他框架here,并在需要时拖放检查复制项目。
答案 7 :(得分:2)
我删除了pod并重新安装...解决了我的问题
rm -Rf Pods; pod install
在我的项目目录中。
答案 8 :(得分:2)
我被这个问题困住了几个小时,但终于找到了优雅的解决方案。 我的方法不使用“手动文件链接”,只使用纯podfile文件。
我在向项目添加另一个目标后更新了我的pod('pod install'或'pod update')时遇到了这个问题。
我的解决方案是:
转到您的podfile并确保为项目的每个目标定义了“target ...”块(瞧!好像没有记录,至少我没有找到它) 。 例如,您有两个目标:“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选项)链接在“链接的框架和库”部分下的文件。删除垃圾/错误/混淆链接(如果有)。如果缺少则手动添加(当您点击“+”时必须出现在“工作区”组/目录下)。
在“构建阶段”下,您应该观察“[CP]” - 每个目标的前缀项目。
在此之后我没有建筑问题。
答案 9 :(得分:2)
这里的实际问题是,在您的应用的构建设置中,您缺少设置:
框架搜索路径
编辑project.pbxproj,以便BuildSettings包含类似的内容:
FRAMEWORK_SEARCH_PATHS = "/Users/bram/src/GoogleMobileAdsSdkiOS-7.16.0/";
或者使用Xcode的UI更改构建设置,如下所示:
答案 10 :(得分:1)
我遇到了同样的问题。这就是我做的。它对我有用(希望它可以帮助某人)。
答案 11 :(得分:1)
对我来说,问题是我没有更新我的应用程序的“部署目标”。它被设定为&lt; 7.0这就是为什么它可能在抱怨。一旦我将目标更新为&gt; 7.0,错误消失了。 (对于未来的人一年只更新他们的应用程序几次)
答案 12 :(得分:0)
不要在windows下解压缩lib文件,它无法正确处理符号链接。
答案 13 :(得分:0)
我只是添加“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
答案 14 :(得分:0)
如果有人仍然遇到同样的问题,我只能找到解决方案。我花了几个小时尝试到目前为止所推荐的所有内容并且没有工作,我仍然不知道我做错了什么,但这里有一个对我有用的小黑客: 无论我从谷歌下载什么框架(我尝试过手册和Cocoa Pods方法)都行不通,但是当我刚下载他们的小测试人员xCode项目(我相信BannerExample.xcodeproj)时,我复制了与该测试项目捆绑在一起的框架,将其粘贴到我的目标项目文件中,然后添加框架并将其链接。在这样做后,我能够很好地导入框架,adMob工作得很好。我不能为我的生活弄清楚会有什么不同,但这确实有效。我希望这个解决方案可以帮助其他任何人解决同样的问题。我相信我撕掉了头上最后五根头发中的一根。祝你好运!
答案 15 :(得分:0)
我遇到了同样的问题。这就是我做的。希望它可以帮到某人。
GoogleMobileAds.framework
(或将其存储在其他文件夹中)。Build Phases
,Link Binary with Libraries
。
点击+
部分的Link Binary with Libraries
符号,然后点击Add Other...
。导航到您已存储的位置GoogleMobileAds.framework > Versions > A > GoogleMobileAds
并将其打开。这完全解决了我的问题。
答案 16 :(得分:0)
Xcode版本7.2.1(7C1002) 目标C
我遇到了这个问题,每次都要继续添加GoogleMobileAds以解决这个问题。 不确定这是不是一个bug。 首先选择GoogleMobileAds.framework,然后取消勾选并勾选目标成员资格,然后尝试构建错误消失。 这对我有用。我希望它有所帮助。
答案 17 :(得分:0)
我留下了一个生成注入静态框架的脚本
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 [功能]
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 [运行功能]
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
答案 18 :(得分:0)
这种情况有时会发生在尝试不使用GoogleMobileAds时,如果是这种情况(就像我查看时那样): 1-单击项目名称。 2-构建设置。 3-链接框架。 4-选择GoogleMobileAds,然后选择按钮上的( - )按钮。
这解决了从应用模板中移除广告时的问题。
答案 19 :(得分:0)
如果某人仍然出现此错误 - 请检查是否在构建设置字段&#34;框架搜索路径&#34;填充了框架的正确路径