iOS9友盟社会化分享SDK应用的几个要点

来源:互联网 发布:归并排序算法过程图解 编辑:程序博客网 时间:2024/05/16 01:31

最近自己的项目上需要实现向各大平台的分享功能,于是选择友盟社会化分享SDK来实现,其官方文档写的非常详细,但在应用过程中仍然遇到诸多问题,因此将几个细节但却关键的地方记录下来。至于完整的实现过程,我觉得官方提供的文档已经非常详尽,所以没必要自己再写一篇或者demo,所以刚使用的朋友可以按官方文档的指导完成整个实现。

1.原则:按文档目录一步一步来

iOS社会化分享SDK的文档地址:http://dev.umeng.com/social/ios/operation#1

如果你和我一样是个新手,那么还是按照官方文档目录一步一步来进行吧,因为我在向项目集成SDK的过程中,遇到的问题在官方文档中都给出了解决方法,并且其在文档中位置靠前,只是我略过了这些内容。本想能节省时间,跳跃阅读,不料南辕北辙,反而花了更多的时间。下图左侧为官方目录,建议按照目录一步一步的进行操作。



2. 错误:linker command failed with exit code 1 (use -v to see invocation)

当我在项目中集成友盟SDK之后使用模拟器进行调试并未发现问题,但改为真机调试却不能成功编译,出现:“linker command failed with exit code 1 (use -v to see invocation)”,看红框范围内提示:“library 中不包含 bitcode,你需要使其支持bitcode 或者将项目中 bitcode 关闭”,直接关闭 bitcode就可以了。





进入到 PROJECT -> Build Setting -> Build Options -> Enalbe Bitcode = NO .

其实官方文档中已经在集成SDK步骤之前,“适配iOS9系统 -> 3.应用瘦身(App Thining)”就有写应当更改此处设置,如下图:


至于为什么模拟器能成功编译但真机却不能通过,查了一下,应该是debug版本和release版本对第三发静态库设置不一样吧,具体没有深入研究,还望懂得朋友指点一下。

相关阅读:

[1] 苹果应用瘦身功能介绍

[2] iOS调试错误 linker command failed with exit code 1 (use -v to see invocation)


3.友盟分享 无法打开其他应用,提示“您的设备没有安装XX”

官方文档在“适配iOS9系统 -> 2.应用跳转(SSO等)”部分给出了解决方案,即向项目配置文件info.plist添加相应的跳转白名单,全部内容在:[2.应用跳转(SSO等)]



4.iPhone5,iPhone4s模拟器调试失败

Undefined symbols for architecture i386:  "_OBJC_CLASS_$_QQApiAudioObject", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)  "_OBJC_CLASS_$_QQApiImageObject", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)  "_OBJC_CLASS_$_QQApiInterface", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)  "_OBJC_CLASS_$_QQApiNewsObject", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)  "_OBJC_CLASS_$_QQApiTextObject", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)  "_OBJC_CLASS_$_QQApiVideoObject", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)  "_OBJC_CLASS_$_SendMessageToQQReq", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)  "_OBJC_CLASS_$_TencentOAuth", referenced from:      objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o)ld: symbol(s) not found for architecture i386clang: error: linker command failed with exit code 1 (use -v to see invocation)

错误提示:i386框架缺少对象的定义

腾讯开放平台官方API调用说明[网址]中找到了原因:


iPhone5s之前的手机,即iPhone 5,iPhone 4s 都是i386框架的设备,而腾讯官方去除了对 i386框架的支持,因此项目无法成功编译。

在官方论坛上查了一下解决办法,有人说只要真机调试通过即可。由于手上没有iPhone 5和 iPhone 4s,无法测试真机是否能通过编译。今天刚把App打包上传,晚上提交审核,我会在第一时间更新审核结果。

------------------------------------------------------------------------------------------------------ 7.9 更新 ----------------------------------------------------------------------------------------------------------------

提交的App通过审核了,应该不用担心这个问题,只是提交3.5吋屏幕截屏的时候会麻烦一些。

ps:google 和 stackOverFlow 真是神器,绝大多数问题的答案都能找到,最近蓝灯挂了,建议大家自己租个服务器装ShadowSocks翻墙。



0 0
原创粉丝点击