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的哦,如果是,也要把图片的域设置哦!

各平台设置域

新浪微博

  • weibo.com
  • weibo.cn
  • sina.com.cn

腾讯微博

  • qq.com

微信

  • qq.com

QQ/QZone

  • qq.com

易信

  • 无需配置

豆瓣

  • 无需配置

人人

  • renren.com

开心网

  • kaixin001.com
  • kaixin001.com.cn

有道

  • youdao.com

Facebook

facebook.com

fbcdn.net

akamaihd.net

Twitter

  • twitter.com

Google+

  • 无需配置

Instagram

  • instagram.com
  • instagramstatic-a.akamaihd.net

Tumblr

  • tumblr.com

Instapaper

  • instapaper.com

Pinterest

  • 无需配置

明道

  • 无需配置

Evernote印象笔记

  • 无需配置

VK

  • 无需配置

pocket

  • 无需配置

LinkedIn

  • 无需配置

Dropbox

  • 无需配置

Flickr

Kakao

  • 无需配置

kakao.com

注意:微信,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白名单说明

新浪微博

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

腾讯微博

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

豆瓣

  • 无需配置

开心网

  • 无需配置

微信

  • wechat,
  • weixin

FacebookMessenger

  • fb-messenger

易信

  • 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

[注:若同时使用QQ和QZONE,则直接添加本格即可]

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

Twitter

  • 无需配置

Pocket

  • pocket-oauth-v1

Pinterest

  • pinit
  • pinterestsdk.v1

Instagram

  • instagram

WhatsApp

  • whatsapp

Line

  • line
  • lineauth
  • line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)

KakaoTalk

  • kakaolink

KaokaoStory

  • storylink

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.上述白名单,是技术人员通过不断的测试收集整理所得,如果各位开发者朋友发现上表格有所遗漏,请根据系统信息添加相关白名单即可。

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

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

iOS - 集成SDK问题的更多相关文章

  1. 李洪强iOS开发之-环信03_集成 SDK 基础功能

    李洪强iOS开发之-环信03_集成 SDK 基础功能 集成 SDK 基础功能 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. SDK 同步/异步方法区分 ...

  2. fir.im Weekly - 从 iOS 10 SDK 新特性说起

    从 iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 的分屏多任务特性,今年的 WWDC iOS 10 SDK ...

  3. 借助magicwindow sdk plugin快速集成sdk

    到目前为止,Android Studio已经是开发原生Android App的主流IDE,它是由Google官方设计并基于JetBrains的IntelliJ IDEA.我们魔窗开发的sdk也是使用此 ...

  4. iOS集成支付宝

    需要企业和支付宝签约这个是需要审核的[3天左右   以邮件形式告知你] 使用支付宝进行一个完整的支付功能,大致有以下步骤: 1>先与支付宝签约,获得商户ID(partner)和账号ID(sell ...

  5. iOS 集成Weex入门教程

    前言 自Weex发布伊始, 其口号 "Write Once, Run Everywhere"就吸引了大批前端与客户端程序猿纷纷入坑, 我也不能独善其中. 就我目前所学习Weex的经 ...

  6. iOS 集成百度地图 位置偏移问题

    iOS 集成百度SDK 请参考 百度地图官方文档 ,这里不就多啰嗦了 本文介绍的是在百度地图上根据经纬度,自定义气泡时,气泡位置的偏移,在我们天朝这种事是很常见的,也见怪不怪了,在项目中使用的百度地图 ...

  7. 个推数据统计产品(个数)iOS集成实践

    最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数据统计产品通过专业的 ...

  8. 使用 CocoaPods 给微信集成 SDK 打印收发消息

    使用 CocoaPods 给微信集成 SDK 打印收发消息 推荐序 本文介绍的是一套逆向工具,可以在非越狱手机上给任意应用增加插件.在文末的示例中,作者拿微信举例,展示出在微信中打印收发消息的功能. ...

  9. 李洪强iOS之集成极光推送三iOS集成指南

    李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...

随机推荐

  1. Spring积累总结

    1.spring 的优点: 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很 ...

  2. uva 1611:Crane(构造 Grade D)

    题目链接 题意: 一个序列,你可以选择其中偶数长度的一段,然后中间切开,左右两段交换.现给你一个1~n的某个排列,求一个交换方案,使得排列最终有序.(交换次数 < 9^6) 思路: 从左到右,依 ...

  3. hadoop(一)hadoop简介

    1. Hadoop 版本衍化历史 Hadoop 是一个由 Apache 基金会所开发的开源分布式系统基础架构.用户可以在不了解 分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和 ...

  4. UVA 725 division【暴力枚举】

    [题意]:输入正整数n,用0~9这10个数字不重复组成两个五位数abcde和fghij,使得abcde/fghij的商为n,按顺序输出所有结果.如果没有找到则输出“There are no solut ...

  5. TopCoder SRM 660 Div2 Problem 1000 Powerit (积性函数)

    令$f(x) = x^{2^{k}-1}$,我们可以在$O(k)$的时间内求出$f(x)$. 如果对$1$到$n$都跑一遍这个求解过程,时间复杂度$O(kn)$,在规定时间内无法通过. 所以需要优化. ...

  6. NOIP2016模拟赛三 Problem C: 不虚就是要AK

    题目大意 给定一棵带有边权的树, 问你在树上随机选两个点, 它们最短路径上的边权之和为\(4\)的倍数的概率为多少. Solution 树分治. 没什么好讲的. #include <cstdio ...

  7. MySQL备份工具收集

    说明:MySQL的备份不像SQL Server那么的简单,备份时需要分数据库引擎类型,现在主流的就两个:InnoDB和MyISAM,而这两种类型备份方式各不一样. MyISAM: mysqlhotco ...

  8. git常用命令,制作缩写命令

    目录 基础命令 常用命令列表 查看状态 添加到本地仓库 推送到远程仓库 创建分支 更新分支, 合并分支 查看分支的差异 回滚 其它 缩写命令 基础命令 # 生成SSH key ssh-keygen - ...

  9. Inno Setup打包的安装程序在Vista/Win7上自动提示需要管理员权限的方法

    来源:http://hi.baidu.com/jingrensoft/blog/item/c34575cfae4fb926f9dc617f.html 首先,在 [Setup]段 PrivilegesR ...

  10. webservice测试窗体只能用于来自本地计算机的请求

    写在前面 在编写好webservice后,发布到iis服务器,你会发现会有这样的异常“测试窗体只能用于来自本地计算机的请求”. 解决方案 在web.config中添加以下代码即可解决问题 <we ...