# Objective-C集成
# 自动集成(Cocoapods)
- 在
Podfile中加入
pod 'UMCommon' //必须集成,由原来的UMCCommon变为了UMCommon
pod 'UMDevice' //必须集成
pod 'UMLink' //可选集成,对应了智能超链产品U-Link,如想统计分享回流人数、分享新增用户指标则必选
# U-Share SDK UI模块(分享面板,建议添加)
pod 'UMShare/UI' //由原来的UMCShare/UI变为了UMShare/UI
#集成微信(完整版14.4M)
pod 'UMShare/Social/WeChat'
#集成QQ/QZone/TIM(完整版7.6M)
pod 'UMShare/Social/QQ'
#集成新浪微博(完整版25.3M)
pod 'UMShare/Social/Sina'
# 其他 应用 请 移至 官方查看
- 配置完成后在
Podfile所在目录执行
pod update
不建议加入--no-repo-update 参数,若添加后仅从本地Cocoapods库中查找SDK,不再更新线上SDK。如果本地存在SDK会直接使用本地SDK版本(不是线上最新版本),若本地不存在SDK会产生错误。 也不建议使用 pod install 命令,此命令不会更新最新版本SDK。由于 pod search 命令对新增项目可能出现无法找到的情况,建议直接使用 pod update 进行直接更新。
- 添加项目配置
在Other Linker Flags加入-ObjC ,
注意不要写为-Objc
- 加入依赖系统库
- 加入以下系统库:
CoreTelephony.framework 获取运营商标识
libz.tbd 数据压缩
libsqlite.tbd 数据缓存
//libc++.tbd 如果集成应用性能监控SDK(U-APM),请添加该依赖库
WebKit.framework
SystemConfiguration.framework 判断网络状态
- 在项目设置target -> 选项卡General ->Linked Frameworks and Libraries设置如下:
- 添加第三方平台依赖库
根据您集成的不同平台,需要加入相关的平台依赖库,未列出平台则不需添加添加方式:选中项目Target -> General -> Linked Frameworks and Libraries列表中进行添加
-微信(完整版)
SystemConfiguration.framework
CoreTelephony.framework
libsqlite3.tbd
libc++.tbd
libz.tbd
-QQ(完整版) 精简版无需添加以下依赖库
SystemConfiguration.framework
libc++.tbd
-新浪微博(完整版)
SystemConfiguration.framework
CoreTelephony.framework
ImageIO.framework
libsqlite3.tbd
libz.tbd
Photos.framework
其他平台请移步至 官网
# 第三方平台配置
# 配置SSO白名单
1.在项目中的info.plist中加入应用白名单,右键info.plist选择source code打开(plist具体设置在Build Setting -> Packaging -> Info.plist File可获取plist路径) 请根据选择的平台对以下配置进行裁剪:
<key>LSApplicationQueriesSchemes</key>
<array>
<!--微信 URL Scheme白名单-->
<string>wechat</string>
<string>weixin</string>
<string>weixinULAPI</string>
<!-- QQ、Qzone URL Scheme白名单-->
<string>mqqopensdklaunchminiapp</string>
<string>mqqopensdkminiapp</string>
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>tim</string>
<string>timapi</string>
<string>timopensdkfriend</string>
<string>timwpa</string>
<string>timgamebindinggroup</string>
<string>timapiwallet</string>
<string>timOpensdkSSoLogin</string>
<string>wtlogintim</string>
<string>timopensdkgrouptribeshare</string>
<string>timopensdkapiV4</string>
<string>timgamebindinggroup</string>
<string>timopensdkdataline</string>
<string>wtlogintimV1</string>
<string>timapiV1</string>
<!--新浪微博 URL Scheme白名单-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<!--支付宝 URL Scheme白名单-->
<string>alipay</string>
<string>alipayshare</string>
<!--钉钉 URL Scheme白名单-->
<string>dingtalk</string>
<string>dingtalk-open</string>
<!--企业微信-->
<string>wxwork</string>
<string>wxworkdebug</string>
<string>wxworkrdm</string>
<string>wxworkrelease</string>
<!--抖音-->
<string>douyinopensdk</string>
<string>douyinsharesdk</string>
<string>snssdk1128</string>
<!--Linkedin URL Scheme白名单-->
<string>linkedin</string>
<string>linkedin-sdk2</string>
<string>linkedin-sdk</string>
<!--易信 URL Scheme白名单-->
<string>yixin</string>
<string>yixinopenapi</string>
<!-- instagram URL Scheme白名单-->
<string>instagram</string>
<!-- whatsapp URL Scheme白名单-->
<string>whatsapp</string>
<!-- line URL Scheme白名单-->
<string>line</string>
<!--Facebook URL Scheme白名单-->
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
<!--Kakao URL Scheme白名单-->
<!--注:以下第一个参数需替换为自己的kakao appkey-->
<!--格式为 kakao +"kakao appkey"-->
<string>kakaofa63a0b2356e923f3edd6512d531f546</string>
<string>kakaokompassauth</string>
<string>storykompassauth</string>
<string>kakaolink</string>
<string>kakaotalk-4.5.0</string>
<string>kakaostory-2.9.0</string>
<!-- pinterest URL Scheme白名单-->
<string>pinterestsdk.v1</string>
<!--Tumblr URL Scheme白名单-->
<string>tumblr</string>
<!--印象笔记-->
<string>evernote</string>
<string>en</string>
<string>enx</string>
<string>evernotecid</string>
<string>evernotemsg</string>
<!--有道云笔记-->
<string>youdaonote</string>
<string>ynotedictfav</string>
<string>com.youdao.note.todayViewNote</string>
<string>ynotesharesdk</string>
<!--Pocket-->
<string>pocket</string>
<string>readitlater</string>
<string>pocket-oauth-v1</string>
<string>fb131450656879143</string>
<string>en-readitlater-5776</string>
<string>com.ideashower.ReadItLaterPro3</string>
<string>com.ideashower.ReadItLaterPro</string>
<string>com.ideashower.ReadItLaterProAlpha</string>
<string>com.ideashower.ReadItLaterProEnterprise</string>
<!--VKontakte-->
<string>vk</string>
<string>vk-share</string>
<string>vkauthorize</string>
<!--Twitter-->
<string>twitter</string>
<string>twitterauth</string>
</array>
# 配置URL Scheme
URL Scheme是通过系统找到并跳转对应app的一类设置,通过向项目中的info.plist文件中加入URL types可使用第三方平台所注册的appkey信息向系统注册你的app,当跳转到第三方应用授权或分享后,可直接跳转回你的app。
添加URL Types可工程设置面板设置
- 配置第三方平台URL Scheme未列出则不需设置
| 平台 | 格式 | 举例 | 备注 |
|---|---|---|---|
| 微信 | 微信appKey | wxdc1e388c3822c80b | |
| QQ/Qzone | 需要添加两项URL Scheme: 1、”tencent”+腾讯QQ互联应用appID 2、“QQ”+腾讯QQ互联应用appID转换成十六进制(不足8位前面补0) | 如appID:100424468 1、tencent100424468 2、QQ05fc5b14 | QQ05fc5b14为100424468转十六进制而来,因不足8位向前补0,然后加”QQ”前缀 |
| 新浪微博 | “wb”+新浪appKey | wb3921700954 |
# 权限配置
以下是集成部分平台时需要进行的一些权限配置,未列出的平台暂不需要配置
微博
从微博SDk 3.2.1,即U-Share 6.9.1版开始,支持微博分享多张图片。需在 info.plist 文件中配置相册权限
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
抖音
分享的图片通过相册进行跨进程共享手段,如需使用分享功能,还需要填相册访问权限,在 info 标签栏中添加 Privacy - Photo Library Usage Description。
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
其他请看 官方文档
# 初始化设置
- 在
#import <UMCommon/UMCommon.h>
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
[UMConfigure initWithAppkey:@"Your appkey" channel:@"App Store"];
}