2014-08-27 66 views
0

我使用cocos2d-x遊戲庫製作了一些遊戲,並且我想用AdMob展示橫幅廣告。 使用libGoogleAdMobAds.a版本6.5.0,它工作正常,但該版本不支持arm64體系結構。然後我遷移到版本6.11.1(最新版本),但它會導致一些鏈接器錯誤。iOS中的AdMob libara導致鏈接器錯誤(mach-o)

Undefined symbols for architecture armv7: "_UITransitionContextToViewControllerKey" "_UITransitionContextFromViewControllerKey" "_OBJC_METACLASS_$_UIPercentDrivenInteractiveTransition" "_OBJC_CLASS_$_UIPercentDrivenInteractiveTransition" linker command failed with exit code 1 (use -v to see invocation)

什麼問題?我花了3天,因爲這個錯誤。請幫幫我。


以下是整個錯誤消息。

Undefined symbols for architecture armv7: "_UITransitionContextToViewControllerKey", referenced from: -[GADViewControllerFullScreenSwipeAnimation animateTransition:] in libGoogleAdMobAds.a(GADViewControllerFullScreenSwipeAnimation.o) -[GADViewControllerFullScreenSwipeAnimation animationContextForTopToBottomAnimationPresentationWithTransitionContext:] in libGoogleAdMobAds.a(GADViewControllerFullScreenSwipeAnimation.o) -[GADViewControllerFullScreenSwipeAnimation animationContextForBottomToTopAnimationPresentationWithTransitionContext:] in libGoogleAdMobAds.a(GADViewControllerFullScreenSwipeAnimation.o) "_UITransitionContextFromViewControllerKey", referenced from: -[GADViewControllerFullScreenSwipeAnimation animateTransition:] in libGoogleAdMobAds.a(GADViewControllerFullScreenSwipeAnimation.o) -[GADViewControllerFullScreenSwipeAnimation animationContextForRestoringAnimationToSavedState:] in libGoogleAdMobAds.a(GADViewControllerFullScreenSwipeAnimation.o) "_OBJC_METACLASS_$_UIPercentDrivenInteractiveTransition", referenced from: _OBJC_METACLASS_$_GADPercentDrivenUserInteractionAnimationController in libGoogleAdMobAds.a(GADPercentDrivenUserInteractionAnimationController.o) "_OBJC_CLASS_$_UIPercentDrivenInteractiveTransition", referenced from: _OBJC_CLASS_$_GADPercentDrivenUserInteractionAnimationController in libGoogleAdMobAds.a(GADPercentDrivenUserInteractionAnimationController.o) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)

回答

0

檢查您的目標 - >構建階段 - >鏈接與Labraries的二進制文件是libGoogleAdMobAds添加?如果是,則檢查是否添加了使用AdMob所需的所有框架!

+0

對不起,我遲到了。 libGoogleAdMobAds.a已添加,並且還添加了所有必需的框架。無論如何,我上傳與版本6.5.0的二進制文件,並等待蘋果的審查。感謝您的回答。 – GaeJem 2014-09-03 14:46:23

0

也許您應該查看最新版AdMob的文檔,某些方法可能已被棄用並在最新版本中被刪除,並且可能不再可用?

+0

對不起,我遲到了。我認爲沒有棄用的方法調用。因爲當我用iOS模擬器(x86架構)構建它時,構建是成功的,一切都很好。但在iPhone5設備中,構建失敗並出現以上鍊接器錯誤消息。感謝您的回答。 – GaeJem 2014-09-03 14:52:48

0

你可能不會喜歡這個答案,但它爲我工作:)

我得到確切同樣的錯誤你。當我插入iOS設備時,Xcode在設備列表中列出設備三次。在我的其他應用程序中,我一直選擇在中間執行。使用AdMob時,我必須選擇列表中的第三個,否則會出現鏈接器錯誤。

如果Xcode爲你做了同樣的事情,試試吧。

因爲我不知道爲什麼Xcode列出3個設備或爲什麼目標設備改變編譯,我會測試我的構建在一些iOS設備上!

+0

它列出了3個設備,因爲您可能在您的Xcode Sdk文件夾中有多個sdks @'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs '。代表該SDK的每個設備 – rahulg 2014-10-13 05:11:48

+0

就我而言,Xcode中只有一個設備,但這很有趣,這可能是我的問題的暗示。我已經在AppStore中提交了另一個版本的AdMob SDK。謝謝。 :) – GaeJem 2014-10-15 12:06:56