iOS中的AdMob库导致链接器错误(mach-o)

时间:2014-08-27 12:48:27

标签: ios xcode admob cocos2d-x

我用cocos2d-x游戏库制作了一些游戏,我想用AdMob展示横幅广告。 使用libGoogleAdMobAds.a版本6.5.0,它工作正常,但该版本不支持arm64架构。然后我迁移到版本6.11.1(最新版本)但它会导致一些链接器错误。

  

架构armv7的未定义符号:   “_UITransitionContextToViewControllerKey”   “_UITransitionContextFromViewControllerKey”   “_OBJC_METACLASS _ $ _ UIPercentDrivenInteractiveTransition”   “_OBJC_CLASS _ $ _ UIPercentDrivenInteractiveTransition”   链接器命令失败,退出代码为1(使用-v查看调用)

有什么问题?我花了3天因为这个错误。请帮帮我。


以下是完整的错误消息。

  

架构armv7的未定义符号:     “_UITransitionContextToViewControllerKey”,引自:          - libGoogleAdMobAds.a中的[GADViewControllerFullScreenSwipeAnimation animateTransition:](GADViewControllerFullScreenSwipeAnimation.o)          - 在libGoogleAdMobAds.a中的[GADViewControllerFullScreenSwipeAnimation animationContextForTopToBottomAnimationPresentationWithTransitionContext:](GADViewControllerFullScreenSwipeAnimation.o)          - 在libGoogleAdMobAds.a中的[GADViewControllerFullScreenSwipeAnimation animationContextForBottomToTopAnimationPresentationWithTransitionContext:](GADViewControllerFullScreenSwipeAnimation.o)     “_UITransitionContextFromViewControllerKey”,引自:          - libGoogleAdMobAds.a中的[GADViewControllerFullScreenSwipeAnimation animateTransition:](GADViewControllerFullScreenSwipeAnimation.o)          - libGoogleAdMobAds.a中的[GADViewControllerFullScreenSwipeAnimation animationContextForRestoringAnimationToSavedState:](GADViewControllerFullScreenSwipeAnimation.o)     “_OBJC_METACLASS _ $ _ UIPercentDrivenInteractiveTransition”,引自:         libGoogleAdMobAds.a中的_OBJC_METACLASS _ $ _ GADPercentDrivenUserInteractionAnimationController(GADPercentDrivenUserInteractionAnimationController.o)     “_OBJC_CLASS _ $ _ UIPercentDrivenInteractiveTransition”,引自:         libGoogleAdMobAds.a中的_OBJC_CLASS _ $ _ GADPercentDrivenUserInteractionAnimationController(GADPercentDrivenUserInteractionAnimationController.o)   ld:找不到架构armv7的符号   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

3 个答案:

答案 0 :(得分:0)

签入您的目标 - >构建阶段 - > Link Binary With Libraries是否添加了libGoogleAdMobAds?如果是,请检查是否添加了使用AdMob所需的所有框架!

答案 1 :(得分:0)

也许您应该查看最新版AdMob的文档,某些方法可能已在最新版本中弃用并删除,可能不再可用了?

答案 2 :(得分:0)

你可能不会喜欢这个答案,但它对我有用:)

我得到了与你完全相同的错误。当我插入iOS设备时,Xcode会在设备列表中列出设备3次。在我的其他应用程序中,我总是选择在中间应用程序上执行。使用AdMob时,我必须在列表中选择第三个,否则我会收到链接器错误。

如果Xcode为您做同样的事情,请试一试。

由于我不知道为什么Xcode会列出3个设备或者为什么目标设备会改变编译,我将在许多iOS设备上测试我的构建!