在iOS中找不到“GoogleMobileAds”模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在iOS中找不到“GoogleMobileAds”模块相关的知识,希望对你有一定的参考价值。

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

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

@import GoogleMobileAds;

但我得到错误,说找不到模块'GoogleMobileAds'。

谷歌在gitHub上的插页式广告示例中也存在此问题。

问候Ranjit

答案

将GoogleMobileAds.framework复制到您的应用时,请务必选中“如果需要,请复制项目”框。

enter image description here

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

另一答案

我删除了pod并再次安装...解决了我的问题

rm -Rf Pods; pod install

在我的项目目录。

另一答案

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

另一答案

我遇到了同样的问题。这就是我做的。它对我有用(希望它可以帮助某人)。

  1. 将GoogleMobileAds.framework复制到某个位置并将其从pod中删除(如果有)。
  2. 手动将此框架添加到项目中(选择“如果需要,复制项目”)。检查构建阶段以确保在“链接二进制文件...”部分中有它。
  3. 清除并重建它=>成功。
另一答案

如果某人仍然出现此错误 - 请检查构建设置字段“框架搜索路径”中是否填充了正确的框架路径

另一答案

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
另一答案

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

  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 [功能]

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.frameworkand选择它。

确保您首先通过转到'文件'>'将文件添加到您的项目名称'将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的问题。

另一答案

这是适合我的解决方案: 不要这样做 don't do this 而不是将GoogleMobileAds.framework拖到您的项目中,并添加所有其他框架提到here,并在需要时拖放检查复制项目。

enter image description here

另一答案

这里的实际问题是,在您的应用的构建设置中,您缺少设置:

框架搜索路径

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

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

或者使用Xcode的UI来更改构建设置,如下所示:

setting in Xcode UI

另一答案

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

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

我的解决方案是:

转到您的podfile并确保为项目的每个目标定义了“target ...”块(瞧!好像没有记录,至少我没有找到它)。例如,您有两个目标:“theApp”和“th

以上是关于在iOS中找不到“GoogleMobileAds”模块的主要内容,如果未能解决你的问题,请参考以下文章

GoogleMobileAds.framework:捆绑格式无法识别、无效或不合适

为啥在 iOS 10 中找不到 com.apple.nsurlsessiond 文件夹?

在应用购买 ios 中找不到产品

在 iOS 中找不到 opencv 框架

在 iOS 6.0 中找不到 AVAudioPlayer

iOS 程序约束:“在容器层次结构中找不到视图”