第一步:安装友盟sdk
在pod中添加: pod 'UMengSocialCOM', '~> 5.2.1’
然后执行:pod install
第二步:安装库文件
在xcode->build phase->link binary with libraries中点击➕
添加:
Security.framework
libiconv.dylib
SystemConfiguration.framework
CoreGraphics.Framework
libsqlite3.dylib
CoreTelephony.framework
libstdc++.dylib
libz.dylib
SystemConfiguration.framework
添加这几个库文件
第三步:申请appkey:
这个一般是后台或者boss给的,但是有时候就你一个ios程序员没办法自己去申请吧,很简单,申请就用.
第四步:申请appID
这个同上,如果没办法还是自己去申请吧,如果公司的开发者账号的邮箱密码你不知道,你就只能用你自己的邮箱去申请了,以微信为例子,登陆:https://open.weixin.qq.com/ 登陆后拉到最下面,移动端开发,然后点进去->创建应用程序->填写相关东西->提示说需要7天以内,但是实际上只需要6个小时左右,当然运气不好申请个几天也是有可能的.
申请下来之后设置URL scheme,这个东西在xcode-> Info->URL Types,一样点击➕,点击进去之后,那个URL scheme位置写的就是你申请下来的appID,那个bundleID写你要分享应用的拼音吧,其实这个ID挺随意,图片可有可无了,自己领会.
第五步:
在Appdelegate.m里面添加头文件:#import "UMSocial.h"和#import “UMSocialWechatHandler.h"
然后在Appdelegate.m文件里面写上
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[UMSocialData setAppKey:@"你第三步申请的appkey"];
[UMSocialWechatHandler setWXAppId:@"你第四步申请的appID" appSecret:@"你第三部申请的appKey" url:你的url];
第六步:
在你需要分享的Controller上,添加这个代码,头文件也是加上前面两个.
[UMSocialData defaultData].extConfig.title = self.currentTitle;//这个位置写的你要分享的标题
[UMSocialData defaultData].extConfig.qqData.url = self.currentURL;//分享的URL
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"第三步申请的appKey"
shareText:图文分享中的文章
shareImage:[UIImage imageNamed:@"图文分享中的图片"]
shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline]
delegate:self];
[UMSocialData defaultData].extConfig.wechatSessionData.url = self.currentURL;//当分享消息类型为图文时,点击分享内容会跳转到预设的链接,设置方法如下
[UMSocialData defaultData].extConfig.wechatTimelineData.url = self.currentURL;
//如果是朋友圈,则替换平台参数名即可
出现的错误:
如果你用模拟器运行很可能出现这个错误:
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 i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果你出现这个错误,不用担心,因为这个错误你在真机测试上是不会出现的,只是在模拟器上会出现,虽然只是在模拟器上会出现,但是也还是需要解决问题是吧,之前我以为添加文件或者库漏掉的问题,后来百度了半个多小时发现不是,只需要简单的修改:
进入xcode->build setting->Architectures->Build Active Architecture Only->改为yes 就ok了