zoukankan      html  css  js  c++  java
  • iOS9对SDK的影响(iOS9适配必看)

     

    1、大部分社交平台接口不支持https协议。

    问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。对ShareSDK来说,具体表现可能是,无法授权、分享、获取用户信息等。

    解决:

    (1)、暂时退回到http协议。

     具体方法:

    在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。

    然后给它添加一个Key:NSAllowsArbitraryLoads,类型为Boolean类型,值为YES; 

     

    (2)、设置域。可以简单理解成,把不支持https协议的接口设置成http的接口。

    具体方法:

    1)、在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型。

    2)、然后给它添加一个NSExceptionDomains,类型为字典类型;

    3)、把需要的支持的域添加給NSExceptionDomains。其中域作为Key,类型为字典类型。

    4)、每个域下面需要设置3个属性:NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。

    均为Boolean类型,值分别为YES、NO、YES。

     

    细节提示:在iOS9中如果使用到网络图片,也要注意网络图片是否是HTTP的哦,如果是,也要把图片的域设置哦!

    2、大部分社交平台SDK不支持bitcode。

    问题描述:iOS 9新建项目默认需要支持bitcode,而不支持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

    易信

    yixin,yixinopenapi

    支付宝

    alipay,alipayshare

    QQ

    mqqOpensdkSSoLogin,

    mqqopensdkapiV2,

    mqqopensdkapiV3,

    wtloginmqq2,

    mqq,

    mqqapi

    QZONE

    mqzoneopensdk,

    mqzoneopensdkapi,

    mqzoneopensdkapi19,

    mqzoneopensdkapiV2,

    mqqOpensdkSSoLogin,

    mqqopensdkapiV2,

    mqqopensdkapiV3,

    wtloginmqq2,

    mqqapi,

    mqqwpa

    mqzone,

    mqq

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

    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

    Twitter

    无需配置

    Pocket

    pocket-oauth-v1

    Pinterest

    pinit

    Instagram

    instagram

    WhatsApp

    whatsapp

    Line

    line

    KakaoTalk

    kakaolink

    KaokaoStory

    storylink

    LinkedIn

    无需配置

    Tumblr

    无需配置

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

    无需配置

    必看注意:

    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: 

     

  • 相关阅读:
    图数据库-Neo4j使用
    [原创]networkx 画中文节点
    python networkx:绘制网络图
    Python二维数组,坑苦了
    xgboost
    python 机器学习
    计算机网络知识
    前端优化不完全指南(转)
    FlashFXP 4.3.1 注册码
    你真的会使用Chrome开发者工具吗?
  • 原文地址:https://www.cnblogs.com/levy/p/4835113.html
Copyright © 2011-2022 走看看