【问题标题】:Could not find custom event class named MPGoogleAdMobBannerCustomEvent找不到名为 MPGoogleAdMobBannerCustomEvent 的自定义事件类
【发布时间】:2016-05-28 16:45:11
【问题描述】:

我无法将 AdMob SDK 集成到 MoPub(在 Fabric 中)。我通过结构安装程序安装了 MoPub。我正在将 iOS 与 Swift、XCode 版本 7.3.1 (7D1014)、基础 SDK iOS 9.3、项目部署目标 iOS 8.0 一起使用。

我能够在我的应用中显示 MoPub 测试广告,但在通过 MoPub 显示 AdMob 广告时出现运行时错误。

在使用 Fabric MoPub 安装程序时,我找不到有关如何集成 AdMob SDK 的详细说明。只有在使用独立 MoPub SDK 时添加第三方库的说明。我想保留 Fabric MoPub 框架。

在 MoPub 测试广告正常运行后,我按照以下步骤操作:

  1. 我将 GoogleAdMobCustomEvent.framework 添加到项目中,该框架位于 mopub-ios-custom-events.zip 存档(位于 https://dev.twitter.com/mopub/ios/mediation-fabric)中

  2. 我将 GoogleMobileAds.framework(来自 Google 的最新版本:v7.8.1)添加到项目中。

  3. 在 MoPub 控制面板中,我通过 AdMob 网络创建了一个新订单,其中包含一个订单项和 2 个广告单元(横幅和排行榜)。

  4. 运行项目时出现以下错误:

    2016-05-28 12:03:57.662 moPubTest[43756:2148130] MOPUB: Banner view (*adunit id*) loading ad with MoPub server URL: *MoPub server URL*
    2016-05-28 12:04:00.909 moPubTest[43756:2148130] MOPUB: Could not find custom event class named MPGoogleAdMobBannerCustomEvent
    2016-05-28 12:04:00.910 moPubTest[43756:2148130] MOPUB: Banner ad view is fetching ad network type: admob_native
    2016-05-28 12:04:00.910 moPubTest[43756:2148130] MOPUB: Banner view (*adunit id*) loading ad with MoPub server URL: *MoPub server URL*
    2016-05-28 12:04:00.954 moPubTest[43756:2148130] MOPUB: Banner ad view is fetching ad network type: clear
    2016-05-28 12:04:00.954 moPubTest[43756:2148130] MOPUB: No ads found for ad unit: *adunit id*
    2016-05-28 12:04:02.365 moPubTest[43756:2148130] MOPUB: Banner view (*adunit id*) failed. Error: Error Domain=com.mopub.iossdk Code=0 "The operation couldn’t be completed. (com.mopub.iossdk error 0.)"
    

我好像少了一步。我猜问题出在将 MoPub 提供的 GoogleAdMobCustomEvent.framework(在 Objective-C 中,包含 MPGoogleAdMobBannerCustomEvent 标头)集成到我的 Swift 项目中时。

我尝试通过拖动和添加文件(选择复制文件选项)将框架添加到项目中。我还尝试添加框架和头文件搜索路径,添加一个桥接头文件,更改框架头文件中的路径。

在上述所有内容中,项目编译没有错误,但我在运行时仍然收到错误:找不到名为 MPGoogleAdMobBannerCustomEvent 的自定义事件类

有人知道什么地方出了问题吗?

谢谢!

更新: 通过切换要通过 CocoaPods 安装的 Fabric 和 MoPub 框架(而不是使用 Fabric 应用程序),我能够使其工作:

  1. 通过 CocoaPods 安装 Fabric 和 Mopub https://fabric.io/kits/ios/mopub/install

  2. 我没有添加 GoogleAdMobCustomEvent.framework,而是手动将以下 Objective-C 文件添加到项目中:

    MPGoogleAdMobBannerCustomEvent.h
    MPGoogleAdMobBannerCustomEvent.m
    MPGoogleAdMobInterstitialCustomEvent.h
    MPGoogleAdMobInterstitialCustomEvent.m

    这 4 个文件可以在 ios mopub SDK git repo 的 AdNetworkSupport 文件夹中找到

  3. 创建了一个桥接头文件,内容如下:

    #import <mopub_ios_sdk/MoPub-Bridging-Header.h>
    #import <GoogleMobileAds/GoogleMobileAds.h>
    
  4. 我将 GoogleMobileAds.framework(来自 Google 的最新版本:v7.8.1)添加到项目中。

  5. 在目标的“搜索路径”->“框架搜索路径”中添加了指向 GoogleMobileAds.framework/Headers 位置的路径

理论上你也可以通过 CocoaPads 安装 MoPub 的自定义事件,但目前由于一个 bug 无法实现。 (见https://stackoverflow.com/a/36830967/6394927

我希望这对将来的其他人有所帮助。

【问题讨论】:

    标签: xcode swift admob mopub twitter-fabric


    【解决方案1】:

    我知道这是一个非常古老的问题,但我现在处于这种情况。 我做了与 Cocoapods 的集成,但我仍然遇到了这个问题。

    您必须做的(在 moPub 文档中很难找到)是将您正在使用的广告中介添加到 Podfile。你可以在这里找到它https://developers.mopub.com/publishers/mediation/integrate/

    就我而言,我必须添加 AdMob,因此我只需将以下内容添加到 Podfile 中即可:

    pod 'mopub-ios-sdk'
    pod 'MoPub-AdMob-Adapters', '7.57.0.0'
    

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 2015-09-15
      • 1970-01-01
      • 2014-01-29
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 2017-05-10
      相关资源
      最近更新 更多