【发布时间】:2012-02-12 11:20:21
【问题描述】:
谁在 MonoTouch iPhone 应用中使用 AdMob?
我们为admob获取的当前sdk是admob_iphone_sdk_20100908.tar.gz
它有两个 lib 文件,但由于 Apple 链接器中众所周知的错误,只有 NoThumb 文件有用:
libAdMobNoThumb.a (2.464.412 bytes, created on 16 september 2010 at 14:41)
当我们使用以下额外标志链接一个测试应用程序(只是一个新生成的基于 iPhone Windows 的项目,没有任何更改)时:
-gcc_flags "-L${ProjectDir} -lAdMobNoThumb -force_load ${ProjectDir}/libAdMobNoThumb.a"
mtouch 惨遭失败 mtouch 失败,无输出 (1)
(我们使用 -force_load 选项而不是 -ObjC 选项,如末尾注释所示:
http://developer.apple.com/library/mac/#qa/qa2006/qa1490.html)
MT_SampleAdMob.zip 测试项目可从博客
获得http://sabonrai.wordpress.com/2009/09/27/monotouch-binding-for-admob/
包含两个较旧的 NoThumb 库:
libAdMobDeviceNoThumb3_0.a (539.288 bytes, created 15 jan 2010 at 03:26)
libAdMobSimulator3_0.a (488.464 bytes, created 5 september 2009)
使用带有以下 gcc_flags 的 libAdMobDeviceNoThumb3_0.a 库时:
-gcc_flags "-L${ProjectDir} -lAdMobDeviceNoThumb3_0 -force_load ${ProjectDir}/libAdMobDeviceNoThumb3_0.a"
构建成功并生成一个应用程序。
我们还没有在这个应用程序中集成任何 admob 的东西,所以我们没有说明任何关于 admob 功能的内容。仅仅关于能够与库链接,这在尝试使用其功能之前似乎是必不可少的。
我们对官方库没有链接的事实感到沮丧,旧版本的链接。而且,大小差异很大:官方文件膨胀了4.5倍!
因此,如果有人在单点触控应用中使用 admob,请提供任何相关信息,以便我们继续使用我们的应用。
TIA,
莫莉克。
【问题讨论】:
-
这听起来像是直接属于 AdMob 网站的帖子。
-
我们也给他们发了邮件。只是急切地想听到一些关于这方面的积极消息。如果一个人用谷歌搜索,有几个人在为此苦苦挣扎,所以我们认为最好有一个关于它的开放论坛。
-
在 -gcc_flags 之前添加 -v -v -v 以便我们查看详细输出并帮助您解决问题。
-
这确定了问题所在。 admob 库还使用了一个客观的 c 源 TouchJSON 部分。我还没有理会它,认为最好先尝试解决链接器问题。然而 -v -v -v 显示 TouchJSON 是原因:
-
未定义符号:“_OBJC_CLASS_$_CJSONSerializer”,引用自:libAdMobNoThumb.a(AdMobAd.o) 中的 objc-class-ref-to-CJSONSerializer (AdMobAd.o) libAdMobNoThumb 中的 objc-class-ref-to-CJSONSerializer。 a(AdMobWebView.o) libAdMobNoThumb.a(AdMobFlexWebView.o) "_OBJC_CLASS_$_CJSONDeserializer" 中的 objc-class-ref-to-CJSONSerializer,引用自:libAdMobNoThumb.a(AdMobOpener.o) 中的 objc-class-ref-to-CJSONDeserializer ) objc-class-ref-to-CJSONDeserializer in libAdMobNoThumb.a(AdMobSearchViewController.o) objc-class-ref-to-CJSONDeserializer in libAdMobNoThumb.a(AdMobAd.o)
标签: c# iphone objective-c xamarin.ios admob