iOS - 集成SDK问题
1、大部分社交平台接口不支持https协议。
问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。对ShareSDK来说,具体表现可能是,无法授权、分享、获取用户信息等。
还可能造成我们的编辑界面里传http之类的网络图片的时候,我们的编辑界面不会显示图片截图,解决的办法或者全面关闭https,允许使用http请求;或者把图片的域添加;又或者选择使用https的图片
解决方案(以下方法2选1):
(1)、暂时退回到http协议。
具体方法:
在项目的info.plist中添加一个Key:App Transport Security Settings,类型为字典类型。
然后给它添加一个Key:Allow Arbitrary Loads,类型为Boolean类型,值为YES;

(2)、设置域。可以简单理解成,把不支持https协议的接口设置成http的接口。
具体方法:
1)、在项目的info.plist中添加一个Key:App Transport Security Settings,类型为字典类型。
2)、然后给它添加一个Exception Domains,类型为字典类型;
3)、把需要的支持的域添加給Exception Domains。其中域作为Key,类型为字典类型。
4)、每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。
均为Boolean类型,值分别为YES、NO、YES。(微博在ios10上授权分享需要额外配置NSExceptionMinimumTLSVersion,类型为string,值是TLSv1.0)

细节提示:在iOS9中如果使用到网络图片,也要注意网络图片是否是HTTP的哦,如果是,也要把图片的域设置哦!
|
各平台设置域 |
|||
|
新浪微博 |
|
||
|
腾讯微博 |
|
||
|
微信 |
|
||
|
QQ/QZone |
|
||
|
易信 |
|
||
|
豆瓣 |
|
||
|
人人 |
|
||
|
开心网 |
|
||
|
有道 |
|
||
|
|
facebook.com |
fbcdn.net |
akamaihd.net |
|
|
|
||
|
Google+ |
|
||
|
|
|
||
|
Tumblr |
|
||
|
Instapaper |
|
||
|
|
|
||
|
明道 |
|
||
|
Evernote印象笔记 |
|
||
|
VK |
|
||
|
|
|
||
|
|
|
||
|
Dropbox |
|
||
|
Flickr Kakao |
|
||
注意:微信,QQ,Facebook,Twitter,Google+,LinkedIn,Instapaper,Pocker,YouDaoNote,Dropbox,印象笔记这些平台都可以不设置退回http或者配置域,而且可以正常运行,其中注意新浪微博如果是要网页授权分享的话,需要配置退回http或者配置域,但是如果客户端分享的话,不需要配置。
2、小部分社交平台SDK不支持bitcode。
问题描述:iOS 9新建项目默认需要支持bitcode,而不支持bitcode的SDK会导致无法编译运行。
支持bitcode :
- 1、微信SDK
- 2、QQ SDK
- 3、新浪微博SDK
- 4、支付宝SDK
- 5、Kakao SDK
- 6、Facebook Messenger
不支持bitcode:
- 1、易信 SDK
- 2、人人 SDK
不支持 bitcode 的 SDK 解决方案:
(1)、暂时关闭对bitcode的支持(建议),方法如下图
(2)、移除不支持bitcode的平台SDK。
3、添加Scheme白名单。
问题描述:在iOS 9下涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。
具体方法:
1)、在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。
2)、然后给它添加一个需要支持的项目,类型为字符串类型;

|
各平台OpenURL白名单说明 |
|||
|
新浪微博 |
|
||
|
腾讯微博 |
|
||
|
豆瓣 |
|
||
|
开心网 |
|
||
|
微信 |
|
||
|
FacebookMessenger |
|
||
|
易信 |
|
||
|
支付宝 |
|
||
|
|
|
||
|
QZONE |
[注:若同时使用QQ和QZONE,则直接添加本格即可] |
||
|
Google+ |
|
||
|
人人网 |
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
Line |
|
||
|
KakaoTalk |
|
||
|
KaokaoStory |
|
||
|
|
|
||
|
Tumblr |
|
||
|
非平台类,如短信,复制,邮件等 |
|
||
|
钉钉 |
|
||
|
美拍 |
|
||
|
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.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。 | |||
如果没有设置白名单的话,系统的打印信息如图所示:

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

iOS - 集成SDK问题的更多相关文章
- 李洪强iOS开发之-环信03_集成 SDK 基础功能
李洪强iOS开发之-环信03_集成 SDK 基础功能 集成 SDK 基础功能 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. SDK 同步/异步方法区分 ...
- fir.im Weekly - 从 iOS 10 SDK 新特性说起
从 iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 的分屏多任务特性,今年的 WWDC iOS 10 SDK ...
- 借助magicwindow sdk plugin快速集成sdk
到目前为止,Android Studio已经是开发原生Android App的主流IDE,它是由Google官方设计并基于JetBrains的IntelliJ IDEA.我们魔窗开发的sdk也是使用此 ...
- iOS集成支付宝
需要企业和支付宝签约这个是需要审核的[3天左右 以邮件形式告知你] 使用支付宝进行一个完整的支付功能,大致有以下步骤: 1>先与支付宝签约,获得商户ID(partner)和账号ID(sell ...
- iOS 集成Weex入门教程
前言 自Weex发布伊始, 其口号 "Write Once, Run Everywhere"就吸引了大批前端与客户端程序猿纷纷入坑, 我也不能独善其中. 就我目前所学习Weex的经 ...
- iOS 集成百度地图 位置偏移问题
iOS 集成百度SDK 请参考 百度地图官方文档 ,这里不就多啰嗦了 本文介绍的是在百度地图上根据经纬度,自定义气泡时,气泡位置的偏移,在我们天朝这种事是很常见的,也见怪不怪了,在项目中使用的百度地图 ...
- 个推数据统计产品(个数)iOS集成实践
最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数据统计产品通过专业的 ...
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
使用 CocoaPods 给微信集成 SDK 打印收发消息 推荐序 本文介绍的是一套逆向工具,可以在非越狱手机上给任意应用增加插件.在文末的示例中,作者拿微信举例,展示出在微信中打印收发消息的功能. ...
- 李洪强iOS之集成极光推送三iOS集成指南
李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...
随机推荐
- Linux 6.x 下Oracle 11g R2 安装配置
Oracle 11g R2 数据库安装硬件配置要求: 最小内存 1 GB of RAM 虚拟内存容量,这个oracle也有要求,不用担心此时的swap分区不够oracle的要求 .虚拟内存swap如何 ...
- PostMan的在线安装和简单使用
Postman是一款很流行的WEB接口测试工具,因其强大的功能及清新的界面,赢得许多测试及开发者的喜爱. 1.PostMan的在线安装 因google退出中国,使得chrome上的扩展插件无法在线 ...
- CodeForces - 16E Fish
Discription n fish, numbered from 1 to n, live in a lake. Every day right one pair of fish meet, and ...
- NOI模拟题6 Problem C: Circle
Solution 首先这个矩阵, 很明显的就是Vandermonde矩阵. 我们有公式: \[ |F_n| = \prod_{1 \le j < i \le n} (a_i - a_j) \] ...
- servlet源码查看
1,下载源码,点击此处可下载 2,创建web项目 我这里以jdbc这个web项目为例讲解 在javaee libraries中有个javaee.jar包,选中它-->右击-->Proper ...
- Jenkins连接git时出现“Failed to connect to repository : Command ... HEAD" returned status code 128:”的问题解决
网上说的解决方法如下: 其实生成ssh时不应该使用当前用户去生成ssh,而是使用jenkins这个用户去生成ssh,然后再去git服务器上配置你生成key,最后再jenkins上配置返回给你的key. ...
- 转:代码管理技巧——两步创建本地SVN服务器图文教程
from: http://www.cnblogs.com/tianhonghui/archive/2012/07/22/2603454.html 当我们进行开发的时候,不论是独立开发还是处在团队中 ...
- 【SharePoint】SharePoint 2013 使用PreSaveAction自定义客户端验证
使用PreSaveAction函数实现客户端自定义验证. 例:[项目编号]为空时,必须填写[责任者]项.(其中[项目编号]为单行文本框,[责任者]为用户/组选择框.) function PreSave ...
- Linux的经常使用命令(2) - 关机
关机命令 shutdown‑h now 马上进行关机 shutdown‑r now 如今又一次启动计算机 -t sec : -t后面加秒数,即"过几秒后关机" -k : ...
- xshell中配置linux密钥登陆
参见 http://www.aiezu.com/system/linux/xshell_ssh_public-key_login.html 配置只能秘钥登陆 http://blog.csdn.net/ ...
