在iOS中找不到“GoogleMobileAds”模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在iOS中找不到“GoogleMobileAds”模块相关的知识,希望对你有一定的参考价值。
我使用Pod将Google AdMob SDK更新为7.1.0。
所以在我的appDelegate.m中,我试图添加这一行
@import GoogleMobileAds;
但我得到错误,说找不到模块'GoogleMobileAds'。
谷歌在gitHub上的插页式广告示例中也存在此问题。
问候Ranjit
将GoogleMobileAds.framework复制到您的应用时,请务必选中“如果需要,请复制项目”框。
在我的情况下,我删除了框架并再次添加该框架并检查该框并且问题消失了。
我删除了pod并再次安装...解决了我的问题
rm -Rf Pods; pod install
在我的项目目录。
对我来说,问题是我没有更新我的应用程序的“部署目标”。它被设置为<7.0,这就是它可能抱怨的原因。一旦我将目标更新到> 7.0,错误就消失了。 (对于未来的人来说,像我这样一年只更新几次他们的应用程序)
我遇到了同样的问题。这就是我做的。它对我有用(希望它可以帮助某人)。
- 将GoogleMobileAds.framework复制到某个位置并将其从pod中删除(如果有)。
- 手动将此框架添加到项目中(选择“如果需要,复制项目”)。检查构建阶段以确保在“链接二进制文件...”部分中有它。
- 清除并重建它=>成功。
如果某人仍然出现此错误 - 请检查构建设置字段“框架搜索路径”中是否填充了正确的框架路径
Xcode版本7.2.1(7C1002)目标C.
我遇到了这个问题,每次都要继续添加GoogleMobileAds以解决这个问题。不确定这是不是一个bug。首先选择GoogleMobileAds.framework,然后取消勾选并勾选目标成员资格,然后尝试构建错误消失。这对我有用。我希望它有所帮助。
如果有人仍然遇到同样的问题,我只能找到解决方案。我花了几个小时尝试到目前为止推荐的所有内容并且没有工作,我仍然不知道我做错了什么,但这里有一个对我有用的小黑客:无论我从Google下载什么框架(我试过手册和Cocoa Pods方法)不起作用,但是当我刚下载他们的小测试器xCode项目(我相信BannerExample.xcodeproj)时,我复制了与该测试项目捆绑在一起的框架,将其粘贴到我的目标项目文件中,然后添加了框架并链接它。在这样做后,我能够很好地导入框架,adMob工作得很好。我不能为我的生活弄清楚会有什么不同,但这确实有效。我希望这个解决方案可以帮助其他任何人解决同样的问题。我相信我撕掉了头上最后五根头发中的一根。祝好运!
不要在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
(或将其存储在另一个文件夹中)。 - 去
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 [功能]
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!("
").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}
"}
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
尝试将GoogleMobileAds.framework
复制到根项目文件夹中,然后将其添加到库中。它对我来说很完美。
这种情况有时会发生在尝试不使用GoogleMobileAds时,如果是这种情况(就像我在查看时那样):1-单击项目名称。 2-构建设置。 3-链接框架。 4-选择GoogleMobileAds,然后选择按钮上的( - )按钮。
这样就解决了从应用模板中删除广告时的问题。
迄今为止的其他答案都没有为我工作。这是做了什么:
转到“构建阶段”,“将二进制文件链接到库”。我已经在这里添加了GoogleMobileAds.framework
,所以我将其删除并重新添加。
要添加它,请单击“链接二进制文件库”部分的+号,然后单击“添加其他...”。导航到您存储的位置GoogleMobileAds.framework
and选择它。
确保您首先通过转到'文件'>'将文件添加到您的项目名称'将GoogleMobileAds.framework
添加到您的项目中。
这解决了我的问题。
这是答案:
将其导入.m文件:
#import <GoogleMobileAds/GADInterstitial.h>
#import <GoogleMobileAds/GADBannerView.h>
我在更新我的pod并使用Firebase时遇到了这个问题。不幸的是,这里的答案都没有帮助,所以我想我会发布对我有用的东西。
我找到了一个帮助我here的好线程。基本上做了以下工作:
- 删除我的豆荚 -
rm -rf Pods
- 重新安装我的pods -
pod install --repo-update
希望这对某人有所帮助,因为这让我困扰了一段时间。
我解决了在Build Settings中将“Defines Modules”设置为YES并重新导入Framework的问题。
这是适合我的解决方案: 不要这样做 而不是将GoogleMobileAds.framework拖到您的项目中,并添加所有其他框架提到here,并在需要时拖放检查复制项目。
这里的实际问题是,在您的应用的构建设置中,您缺少设置:
框架搜索路径
编辑project.pbxproj,以便BuildSettings包含以下内容:
FRAMEWORK_SEARCH_PATHS = "/Users/bram/src/GoogleMobileAdsSdkiOS-7.16.0/";
或者使用Xcode的UI来更改构建设置,如下所示:
我被困这个问题几个小时,但终于找到了优雅的解决方案。我的方法不使用“手动文件链接”,只使用纯podfile文件。
当我在向项目添加另一个目标后更新我的pod('pod install'或'pod update')时,我遇到了这个问题。
我的解决方案是:
转到您的podfile并确保为项目的每个目标定义了“target ...”块(瞧!好像没有记录,至少我没有找到它)。例如,您有两个目标:“theApp”和“th
以上是关于在iOS中找不到“GoogleMobileAds”模块的主要内容,如果未能解决你的问题,请参考以下文章
GoogleMobileAds.framework:捆绑格式无法识别、无效或不合适