【发布时间】: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 测试广告正常运行后,我按照以下步骤操作:
我将 GoogleAdMobCustomEvent.framework 添加到项目中,该框架位于 mopub-ios-custom-events.zip 存档(位于 https://dev.twitter.com/mopub/ios/mediation-fabric)中
我将 GoogleMobileAds.framework(来自 Google 的最新版本:v7.8.1)添加到项目中。
在 MoPub 控制面板中,我通过 AdMob 网络创建了一个新订单,其中包含一个订单项和 2 个广告单元(横幅和排行榜)。
-
运行项目时出现以下错误:
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 应用程序),我能够使其工作:
通过 CocoaPods 安装 Fabric 和 Mopub https://fabric.io/kits/ios/mopub/install
-
我没有添加 GoogleAdMobCustomEvent.framework,而是手动将以下 Objective-C 文件添加到项目中:
MPGoogleAdMobBannerCustomEvent.h
MPGoogleAdMobBannerCustomEvent.m
MPGoogleAdMobInterstitialCustomEvent.h
MPGoogleAdMobInterstitialCustomEvent.m这 4 个文件可以在 ios mopub SDK git repo 的 AdNetworkSupport 文件夹中找到
-
创建了一个桥接头文件,内容如下:
#import <mopub_ios_sdk/MoPub-Bridging-Header.h> #import <GoogleMobileAds/GoogleMobileAds.h> 我将 GoogleMobileAds.framework(来自 Google 的最新版本:v7.8.1)添加到项目中。
在目标的“搜索路径”->“框架搜索路径”中添加了指向 GoogleMobileAds.framework/Headers 位置的路径
理论上你也可以通过 CocoaPads 安装 MoPub 的自定义事件,但目前由于一个 bug 无法实现。 (见https://stackoverflow.com/a/36830967/6394927)
我希望这对将来的其他人有所帮助。
【问题讨论】:
标签: xcode swift admob mopub twitter-fabric