当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

更新admob ios sdk到GoogleAdMobAdsSdkiOS-6.2.1时编译报错

发表于: 2012-11-06   作者:bsr1983   来源:转载   浏览次数:
摘要:         因修改游戏代码,增加admob点击广告监听事件后,发现在iphone4 ios5.1.1下没有捕获到到对应的事件 //点击广告后切换回游戏时 - (void)adViewDidDismissScreen:(GADBannerView *)adView 因此使用的是切出游戏时的事件 - (void)adVi
        因修改游戏代码,增加admob点击广告监听事件后,发现在iphone4 ios5.1.1下没有捕获到到对应的事件
//点击广告后切换回游戏时
- (void)adViewDidDismissScreen:(GADBannerView *)adView
因此使用的是切出游戏时的事件
- (void)adViewWillLeaveApplication:(GADBannerView *)adView
将sdk升级到最近版本,尝试解决点击广告未触发- (void)adViewDidDismissScreen:(GADBannerView *)adView的问题。
下载地址
http://dl.google.com/googleadmobadssdk/googleadmobadssdkios.zip
解压后发现相比之前用的sdk多了几个头文件,将相关代码拷贝到原来sdk目录下进行覆盖。
clear后build,报错。
(1)错误1
Undefined symbols for architecture armv7:
  "CGSizeFromGADAdSize(GADAdSize)", referenced from:
      -[iFarmerAppDelegate buildADmobADView] in iFarmerAppDelegate.o
      -[iFarmerAppDelegate setAdViewPostion:withY:] in iFarmerAppDelegate.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

查询相关代码,发现此处报错是因为之前版本与最新版本中的GAD_SIZE相关预定义值发生了变化,之前版本中GAD_SIZE的定义是放在GADBannerView.h中:
// iPhone and iPod Touch ad size.
#define GAD_SIZE_320x50     CGSizeMake(320, 50)

// Medium Rectangle size for the iPad (especially in a UISplitView's left pane).
#define GAD_SIZE_300x250    CGSizeMake(300, 250)

// Full Banner size for the iPad (especially in a UIPopoverController or in
// UIModalPresentationFormSheet).
#define GAD_SIZE_468x60     CGSizeMake(468, 60)

// Leaderboard size for the iPad.
#define GAD_SIZE_728x90     CGSizeMake(728, 90)
而最新版本中增加了一个GADAdSize.h,所有的 GAD_SIZE的定义放到了该头文件中,且内容和之前的也不一样:
#define GAD_SIZE_320x50     CGSizeFromGADAdSize(kGADAdSizeBanner)
#define GAD_SIZE_300x250    CGSizeFromGADAdSize(kGADAdSizeMediumRectangle)
#define GAD_SIZE_468x60     CGSizeFromGADAdSize(kGADAdSizeFullBanner)
#define GAD_SIZE_728x90     CGSizeFromGADAdSize(kGADAdSizeLeaderboard)
#define GAD_SIZE_120x600    CGSizeFromGADAdSize(kGADAdSizeSkyscraper)

因此,最简单的修改方式就是将使用预定义变量的地方直接替换为原来版本中其对应文本即可

(2)错误2
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADIdentifierUtilities.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

"_OBJC_CLASS_$_ASIdentifierManager", referenced from:

Objc-class-ref in libGoogleAdMobAds.a(GADIdentifierUtilities.o)

Symbol(s) not found for architecture armv7

:Linker command failed with exit code 1 (use -v to see invocation)

查询后发现是缺少了AdSupport.framework,添加后解决该编译错误。

更新admob ios sdk到GoogleAdMobAdsSdkiOS-6.2.1时编译报错

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
用Android自带的SDK Manager更新SDK时,更新到revision 7就报错,如下: 但用eclipse中的ADT进行更
不多说,看步骤。 下载admob广告sdk. 把SDK中的如下文件,除了那个文件夹,全部拖到工程里。 导入文
费了很大功夫总算完成android studio启动时sdk更新问题。 现把安装过程总结一下: 1、下载并安装and
一,问题描述 ADT或者Android Studio有时候会经常遇到SDK Manage无法更新SDK 的情况,这种情况的出
最新版本的SDK下载地址:https://developers.google.com/mobile-ads-sdk/download#downloadios SDK
Failed to fectch URl https://dl-ssl.google.com/android/repository/addons_list.xml, reason: Co
转自: https://developers.google.com/mobile-ads-sdk/docs/ios/fundamentals?hl=zh-cn 转载仅为防
转自: https://developers.google.com/mobile-ads-sdk/docs/ios/fundamentals?hl=zh-cn 转载仅为防
转自: https://developers.google.com/mobile-ads-sdk/docs/ios/fundamentals?hl=zh-cn 转载仅为防
转自: https://developers.google.com/mobile-ads-sdk/docs/ios/fundamentals?hl=zh-cn 转载仅为防
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号