帮助与文档

> >
由于苹果审核政策需求,对于那些需要客户端分享的平台,例如微信,QQ,QQ空间等,我们的分享菜单的方法里已经处理,没有安装客户端是不会在分享菜单上显示的,只有安装了才会显示。

一、获取AppKey

如何在我们的官网注册应用得到appkey,请点击链接看里面的操作步骤。

二、下载SDK

获取ShareSDK-iOS :下载地址,解压压缩包之后结构如图所示:

目录结构

目录结构 (使用时直接将SDK这个文件拖入工程)

SDK
  | —– Required( MOB 基础公共库目录 )
        | —– MOBFoundation.framework:基础功能框架。(必要)
  | —– ShareSDK ( ShareSDK 目录 )
        | —– ShareSDK.framework:核心静态库。(必要)
        | —– Support (ShareSDK 各组件)
              | —– Required ( 必要 )
                   | —– ShareSDK.bundle:ShareSDK资源文件。(必要)
                   | —– ShareSDKConnector.framework:用于ShareSDK框架与外部框架连接的代理框架插件。(使用第三方SDK时必要。)
              | —– PlatformSDK 第三方平台SDK。(不需要的平台的SDK可直接移除)
              | —– PlatformConnector 对ShareSDKConnector模块架构进行优化,根据平台进行分包。(不需要的平台的库可以移除)
              | —– Optional ( 可选 )
                    | —– ShareSDKUI.bundle:分享菜单栏和分享编辑页面资源包。(如果自定义这些UI可直接移除)
                    | —– ShareSDKExtension.framework:对ShareSDK功能的扩展框架插件。(主要提供第三方平台登录、 一键分享、截屏分享、摇一摇分享等相关功能。需要使用以上功能时必要。)
                    | —– ShareSDKUI.framework:分享菜单栏和分享编辑页面。(如果自定义这些UI可直接移除)
                    | —– ShareSDKConfigFile.bundle:用xml来初始化或者构造分享参数的资源文件。(用代码来初始化,构造分享参数可直接移除,下载的时候也是可根据自己的要求勾选下载的)
                    | —– ShareSDKConfigFile.framework:用xml来初始化,构造分享参数,使用的分享的方法库。用代码来初始化,构造分享参数可直接移除,下载的时候也是可根据自己的要求勾选下载的)

三、快速集成

第一步:将下载的SDK解压后导入到您的工程中,Xcode9以前版本可以直接把SDK拖进Xcode项目里,但是XCode9需要先将SDK放在项目文件里,然后打开XCode的项目,右击添加进去才行,因为XCode9不会自动把库文件加载到库资源里,以及不会自动添加路径,见下图 :

未命名

注意:XCode9之前版本直接拖SDk进去请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源

第二步:添加依赖库 添加步骤见下图

233D16A0-E241-4D4B-ACF2-4C03259F995A

必须添加的依赖库如下(Xcode 7 之后 *.dylib库后缀名更改为*.tbd):
  • libicucore.dylib
  • libz.dylib
  • libstdc++.dylib (这个库在XCode10之后找不到,已经被废弃,以libc++替代)
  • JavaScriptCore.framework
以下依赖库根据社交平台添加:
新浪微博SDK依赖库
  • ImageIO.framework
  • libsqlite3.dylib
  • Photos.framework
QQ好友和QQ空间SDK依赖库
  • libsqlite3.dylib
微信SDK依赖库
  • libsqlite3.dylib
Instagram需要依赖库
  • AssetsLibrary.framework
  • Photos.framework
美拍需要依赖库
  • AssetsLibrary.framework

第三步:设置ShareSDK的Appkey并初始化对应的第三方社交平台

在项目工程的Info.plist 中如图增加 MOBAppKey 和 MOBAppSecret 两个字段
在 MOBAppKey中 设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到登录后台进行应用注册  也可以点击链接看里面的操作步骤。
appkey
友情提示:如果您同时多个MOBSDK产品 在info.plist中的设置一次就可以了。
打开*AppDelegate.m(*代表你的工程名字)导入头文件
在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerActivePlatforms方法来初始化SDK并且初始化第三方平台(各社交平台申请AppKey的网址及申请流程汇总

第四步:添加实现代码 打开需要集成分享功能的视图源码,把如下代码复制并粘贴到你要分享的位置,例如到响应分享按钮的方法中。并且修改相应的参数即可。

1.需要在分享的试图中导入的头文件

2.调用构造分享参数接口和分享的接口

编译并运行后,点击分享按钮就成功发送到社交平台的话说明你已经基本集成成功了。但是,为了使您的用户有更好的分享体验,以及您的应用有更多的分享量,更好地在社交平台上传播,我们建议您参考进行SSO(免登录)和更多社交平台的设置。

可选:支持微信所需的相关配置及代码 在微信开放平台(http://open.weixin.qq.com/ )注册应用并取得应用的AppID,然后打开下图位置,在URL Types中添加微信AppID  55BDA8FD-90BF-472B-999C-4C57680AB210

打开*AppDelegate.m(*代表你的工程名字)文件,导入微信SDK的头文件并初始化:

可选:支持QQ所需的相关配置及代码 登录腾讯开放平台(http://open.qq.com/ )注册成为开发者并登记应用取得AppId,然后打开下图位置,在URL Types中添加QQ的AppID,其格式为:”QQ” + AppId的16进制(如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 注意:转换后的字母要大写) 转换16进制的方法:echo ‘ibase=10;obase=16;801312852′|bc,其中801312852为QQ的AppID,见下图 9406F13D-F78B-4261-A52B-CFBC7ECF489080548F94-3DAE-45D5-9627-A76E9D514585

然后打开工程中的*AppDelegate.m(*代表你的工程名字)文件,导入QQSDK的头文件并初始化:

可选:配置新浪微博、Facebook的SSO 登录新浪微博和facebook的开放平台,获取AppID 。新浪微博的url scheme的设置格式为wb+Appkey(这个appkey是在微博上注册应用得到的appkey),facebook的设置格式为fb+AppID(这个appid是在facebook上注册应用得到的appkey)。具体参考下图:49C4BF10-26ED-4553-9626-7110A15B8B9A

附:目前的新浪微博SDK需要在项目的Build Settings中的Other Linker Flags添加”-ObjC”,如果不配置有可能会崩溃。步骤如下:  8

当新浪微博需要客户端分享或者增加关注微博的功能,需要打开工程中的*AppDelegate.m(*代表你的工程名字)文件,导入新浪微博SDK的头文件并初始化:

 

注意:最后ios9+还需要配置对应的平台的白名单

问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。

具体方法:

1)、在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。

2)、然后给它添加一个需要支持的项目,类型为字符串类型;

FBEF076A-611A-4B43-B8A9-F1825CC08FDA

各平台OpenURL白名单说明

新浪微博

  • sinaweibo,
  • sinaweibohd,
  • sinaweibosso,
  • sinaweibohdsso,
  • weibosdk,
  • weibosdk2.5
  • [后两个若导入新浪SDK则需要]

腾讯微博

  • TencentWeibo,
  • tencentweiboSdkv2
  • [控制台会提示这两个,但是腾讯微博SDK已经弃用,可以忽略不配置]

豆瓣

  • 无需配置

开心网

  • 无需配置

微信

  • wechat,
  • weixin

FacebookMessenger

  • fb-messenger
  • fb-messenger-platform-20150714

易信

  • yixin,
  • yixinopenapi
  • yixinoauth
  • yixinfav

支付宝

  • alipay,
  • alipayshare

QQ

  • mqqOpensdkSSoLogin, 
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqq,
  • mqqapi
  • timapi

QZONE

  • mqzoneopensdk, 
  • mqzoneopensdkapi,
  • mqzoneopensdkapi19,
  • mqzoneopensdkapiV2,
  • mqqOpensdkSSoLogin,
  • mqqopensdkapiV2,
  • mqqopensdkapiV3,
  • wtloginmqq2,
  • mqqapi,
  • mqqwpa
  • mqzone,
  • mqq
  • mqqopensdkapiV4

[:若同时使用QQQZONE,则直接添加本格即可]

TIM

  • mqq 
  • mqqapi
  • mqqwpa
  • mqqbrowser
  • mttbrowser
  • mqqOpensdkSSoLogin
  • mqqopensdkapiV2
  • mqqopensdkapiV3
  • mqqopensdkapiV4
  • wtloginmqq2
  • mqzone
  • mqzoneopensdk
  • mqzoneopensdkapi
  • mqzoneopensdkapi19
  • mqzoneopensdkapiV2
  • mqqapiwallet
  • mqqopensdkfriend
  • mqqopensdkdataline
  • mqqgamebindinggroup
  • mqqopensdkgrouptribeshare
  • tencentapi.qq.reqContent
  • tencentapi.qzone.reqContent
  • tim
  • timapi
  • timopensdkfriend
  • timwpa
  • timgamebindinggroup
  • timapiwallet
  • timOpensdkSSoLogin
  • timopensdkgrouptribeshare
  • wtlogintim
  • timopensdkapiV4
  • timgamebindinggroup
  • timopensdkdataline
  • wtlogintimV1
  • timapiV1

Google+

  • googlechrome, 
  • googlechrome-x-callback,
  • hasgplus4,
  • com.google.gppconsent,
  • com.google.gppconsent.2.2.0,
  • com.google.gppconsent.2.3.0,
  • com.google.gppconsent.2.4.0,
  • com.google.gppconsent.2.4.1

人人网

  • renrenapi,
  • renrenios,
  • renreniphone,
  • renren,
  • 以及在使用人人SDK时所需配置的URL Scheme,例如:rm226427com.mob.demoShareSDK

Facebook

  • fbauth2
  • fbauth
  • fbapi20130214

Twitter

  • twitterauth

Telegram

  • telegram
  • tg

Pocket

  • pocket-oauth-v1

Pinterest

  • pinit
  • pinterestsdk.v1

Instagram

  • instagram

WhatsApp

  • whatsapp

Line

  • line
  • lineauth
  • line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)

KakaoTalk

  • kakaolink

KaokaoStory

  • storylink
  • kakaokompassauth
  • storykompassauth
  • kakao+appid 例kakao48d3f524e4a636b08d81b3ceb50f1003

LinkedIn

  • 无需配置

Tumblr

  • 无需配置

非平台类,如短信,复制,邮件等

  • 无需配置

钉钉

  • dingtalk
  • dingtalk-open

美拍

  • mtmv
  • mpsharesdk10
  • mpsharesdk11

YouTube

  • youtube
必看注意:
1.iOS9中,如果没有添加上述白名单,系统会打印类似如下提示:.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “This app is not allowed to query for scheme sinaweibohdsso”(如下图)如没有添加相关白名单,有可能导致分享失败,例如不会跳转微信,不会跳转QQ
2.添加完上述所需的名单,系统依然会打印类似信息:.-canOpenURL: failed for URL: “sinaweibohdsso://xxx” – error: “null”这是系统打印的信息,目前是无法阻止其打印,即无法消除的
3.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。

如果没有设置白名单的话,系统的打印信息如图所示:

屏幕快照 2015-09-17 下午7.03.30

添加完后,系统是依然会打印的,不过error会变成null:

屏幕快照 2015-09-17 下午7.03.36

 

相关文档