在新发布的iOS9系统上围绕用户数据的安全性和体验新增了一些安全特性,同时也影响了应用的实现以及集成方式,为了保证良好的稳定性和体验,需要做如下处理:

1.  HTTP传输安全

以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求。目前可用如下两种方式保持用HTTP进行网络连接:

A、在info.plist中加入安全域名白名单(右键info.plist用source code打开)

  1. <key>NSAppTransportSecurity</key>
  2. <dict>
  3. <key>NSExceptionDomains</key>
  4. <dict>
  5. <key>log.umsns.com</key>
  6. <dict>
  7. <key>NSIncludesSubdomains</key>
  8. <true/>
  9. <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
  10. <true/>
  11. <key>NSTemporaryExceptionMinimumTLSVersion</key>
  12. <string>TLSv1.1</string>
  13. </dict>
  14. <key>sns.whalecloud.com</key>
  15. <dict>
  16. <key>NSIncludesSubdomains</key>
  17. <true/>
  18. <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
  19. <true/>
  20. <key>NSTemporaryExceptionMinimumTLSVersion</key>
  21. <string>TLSv1.1</string>
  22. </dict>
  23.  
  24. <!-- 集成新浪微博对应的HTTP白名单-->
  25. <key>sina.cn</key>
  26. <dict>
  27. <key>NSIncludesSubdomains</key>
  28. <true/>
  29. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  30. <false/>
  31. </dict>
  32. <key>weibo.cn</key>
  33. <dict>
  34. <key>NSIncludesSubdomains</key>
  35. <true/>
  36. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  37. <false/>
  38. </dict>
  39. <key>weibo.com</key>
  40. <dict>
  41. <key>NSIncludesSubdomains</key>
  42. <true/>
  43. <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
  44. <true/>
  45. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  46. <false/>
  47. </dict>
  48. <key>sinaimg.cn</key>
  49. <dict>
  50. <key>NSIncludesSubdomains</key>
  51. <true/>
  52. <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
  53. <true/>
  54. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  55. <false/>
  56. </dict>
  57. <key>sinajs.cn</key>
  58. <dict>
  59. <key>NSIncludesSubdomains</key>
  60. <true/>
  61. <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
  62. <true/>
  63. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  64. <false/>
  65. </dict>
  66. <key>sina.com.cn</key>
  67. <dict>
  68. <key>NSIncludesSubdomains</key>
  69. <true/>
  70. <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
  71. <true/>
  72. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  73. <false/>
  74. </dict>
  75. <!-- 新浪微博-->
  76.  
  77. <!-- 集成微信、QQ、Qzone、腾讯微博授权对应的HTTP白名单-->
  78. <key>qq.com</key>
  79. <dict>
  80. <key>NSIncludesSubdomains</key>
  81. <true/>
  82. <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
  83. <true/>
  84. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  85. <false/>
  86. </dict>
  87. <!-- 腾讯授权-->
  88.  
  89. <!-- 集成人人授权对应的HTTP白名单-->
  90. <key>renren.com</key>
  91. <dict>
  92. <key>NSIncludesSubdomains</key>
  93. <true/>
  94. <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
  95. <true/>
  96. <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
  97. <false/>
  98. </dict>
  99. <!-- 人人授权-->
  100.  
  101. <!-- 集成Facebook授权对应的HTTP白名单-->
  102. <key>facebook.com</key>
  103. <dict>
  104. <key>NSIncludesSubdomains</key>
  105. <true/>
  106. <key>NSExceptionRequiresForwardSecrecy</key>
  107. <false/>
  108. </dict>
  109. <key>fbcdn.net</key>
  110. <dict>
  111. <key>NSIncludesSubdomains</key>
  112. <true/>
  113. <key>NSExceptionRequiresForwardSecrecy</key>
  114. <false/>
  115. </dict>
  116. <key>akamaihd.net</key>
  117. <dict>
  118. <key>NSIncludesSubdomains</key>
  119. <true/>
  120. <key>NSExceptionRequiresForwardSecrecy</key>
  121. <false/>
  122. </dict>
  123. <!-- Facebook授权-->
  124.  
  125. <!-- 集成Twitter授权对应的HTTP白名单-->
  126. <key>twitter.com</key>
  127. <dict>
  128. <key>NSIncludesSubdomains</key>
  129. <true/>
  130. <key>NSExceptionRequiresForwardSecrecy</key>
  131. <false/>
  132. </dict>
  133. <!-- Twitter授权-->
  134. </dict>
  135. </dict>

注:以上部分平台官方未给出相应白名单,由技术人员测试各个平台所收集而来,如果有所遗漏,请自行加入并向客服说明,我们会进一步补充名单。

B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求 http://dev.umeng.com/social/ios/ios9

  1. <key>NSAppTransportSecurity</key>
  2. <dict>
  3. <key>NSAllowsArbitraryLoads</key>
  4. <true/>
  5. </dict>

2.  应用跳转(SSO等)

如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。
同样在info.plist增加:

  1. <key>LSApplicationQueriesSchemes</key>
  2. <array>
  3. <!-- 微信 URL Scheme 白名单-->
  4. <string>wechat</string>
  5. <string>weixin</string>
  6.  
  7. <!-- 新浪微博 URL Scheme 白名单-->
  8. <string>sinaweibohd</string>
  9. <string>sinaweibo</string>
  10. <string>sinaweibosso</string>
  11. <string>weibosdk</string>
  12. <string>weibosdk2.5</string>
  13.  
  14. <!-- QQ、Qzone URL Scheme 白名单-->
  15. <string>mqqapi</string>
  16. <string>mqq</string>
  17. <string>mqqOpensdkSSoLogin</string>
  18. <string>mqqconnect</string>
  19. <string>mqqopensdkdataline</string>
  20. <string>mqqopensdkgrouptribeshare</string>
  21. <string>mqqopensdkfriend</string>
  22. <string>mqqopensdkapi</string>
  23. <string>mqqopensdkapiV2</string>
  24. <string>mqqopensdkapiV3</string>
  25. <string>mqzoneopensdk</string>
  26. <string>wtloginmqq</string>
  27. <string>wtloginmqq2</string>
  28. <string>mqqwpa</string>
  29. <string>mqzone</string>
  30. <string>mqzonev2</string>
  31. <string>mqzoneshare</string>
  32. <string>wtloginqzone</string>
  33. <string>mqzonewx</string>
  34. <string>mqzoneopensdkapiV2</string>
  35. <string>mqzoneopensdkapi19</string>
  36. <string>mqzoneopensdkapi</string>
  37. <string>mqqbrowser</string>
  38. <string>mttbrowser</string>
  39.  
  40. <!-- 支付宝 URL Scheme 白名单-->
  41. <string>alipay</string>
  42. <string>alipayshare</string>
  43.  
  44. <!-- 人人 URL Scheme 白名单-->
  45. <string>renrenios</string>
  46. <string>renrenapi</string>
  47. <string>renren</string>
  48. <string>renreniphone</string>
  49.  
  50. <!-- 来往 URL Scheme 白名单-->
  51. <string>laiwangsso</string>
  52.  
  53. <!-- 易信 URL Scheme 白名单-->
  54. <string>yixin</string>
  55. <string>yixinopenapi</string>
  56.  
  57. <!-- instagram URL Scheme 白名单-->
  58. <string>instagram</string>
  59.  
  60. <!-- whatsapp URL Scheme 白名单-->
  61. <string>whatsapp</string>
  62.  
  63. <!-- line URL Scheme 白名单-->
  64. <string>line</string>
  65.  
  66. <!-- Facebook URL Scheme 白名单-->
  67. <string>fbapi</string>
  68. <string>fb-messenger-api</string>
  69. <string>fbauth2</string>
  70. <string>fbshareextension</string>
  71. </array>

友盟分享适配iOS9的更多相关文章

  1. IOS9.0 之后友盟分享详细过程

    一: 申请友盟的AppKey(友盟的Key是根据应用的名称生成的!) 在友盟注册了你自己的开发者账号后就可以申请AppKey了.然后在这个方法里面设置Key - (BOOL)application:( ...

  2. iOS9.0 友盟分享详细过程

    一: 申请友盟的AppKey(友盟的Key是根据应用的名称生成的!) 在友盟注册了你自己的开发者账号后就可以申请AppKey了.然后在这个方法里面设置Key - (BOOL)application:( ...

  3. iOS开发——iOS10升级极光推送SDK、友盟分享SDK

    前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...

  4. iOS友盟分享的使用总结

    现在几乎所有的APP都会集成分享,为了可以更好的推广自己的APP. 目前市面上常用的分享无非就三个: 1.友盟分享; 2.shareSDK(mob); 3.苹果原生. 由于苹果原生的分享使用起来不方便 ...

  5. 友盟分享小结 - iOS

    因之前都写在了 AppDelegate 类中,看起来过于臃肿,此次基于友盟分享重新进行了一次优化,此次分享内容基于已经成功集成 SDK 后 code 层级部分.注:此次分享基于 SDK 6.9.3,若 ...

  6. ios中调用友盟分享时qq可以分享但是微信失败,只显示文字,网页链接没有出现

    问题如下,最后在老大各种替换的情况下,找到了原因,是因为图片失效了,友盟分享微信时必须需要图片才可以,如果服务器图片失效,则会失败: 注意下面的图片是否能够获取???????????????????? ...

  7. Android 友盟分享躺过的几个坑,大坑,坑爹啊

    前言:公司上线了一个项目,做Android 客户端集成友盟分享,在做得过程中,遇到了下面3个问题,希望其他小伙伴注意. ) 错误1: 1.错误描述 我是照着友盟的集成文档一步一步的集成的,做完后,发现 ...

  8. iOS开发-友盟分享(3)

    iOS 友盟分享 这个主要是提到如何通过友盟去自定义分享的步骤: 一.肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的工程文件夹里面去: 二.注册友盟账号,将你的APP添加到你的账号里面然后 ...

  9. iOS开发-友盟分享使用(2)

    1.友盟SDK提供功能:分享喜欢的东西到新浪微博.qq空间.为微信朋友圈等等等等社交圈. 2.友盟分享前期准备 (1)注册账号 去官网 (2)创建应用获取appkey 类似5556a53667e*** ...

随机推荐

  1. 【问题】CentOS6.5系统"libc.so.6: version 'GLIBC_2.15' not found"解决方法

    出现"libc.so.6: version 'GLIBC_2.15' not found"问题,是由于glibc版本过低,升级glibc即可. 由于CentOS系统RPM源目前gl ...

  2. 微信小程序 一些要点

    微信小程序,weixin,关于微信小程序,那些开发文档没有告诉你的-微信小程序开发资源-微信开发者平台,微信开发者社区,微信小程序开发者社区 Discuz! Team and Comsenz UI T ...

  3. 理解和使用WPF 验证机制(值得推荐)

    首先建立一个demo用以学习和实验WPF Data Validation机制.创建一个数据实体类: public class Employee { public string Name { get;  ...

  4. lua(仿单继承)

    --lua仿单继承 Account = { balance = } function Account:new(o) o = o or {} setmetatable(o, self)--Account ...

  5. MySQL (时间)日期相减取天数

    select TO_DAYS(str_to_date('12/1/2001 12:00:00 AM','%m/%d/%Y')) -TO_DAYS(str_to_date('11/28/2001 12: ...

  6. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 1)

    本节中所阐述的内容,主要适用于SharePoint文档库中的文件和文件夹,以及列表中的文件夹.系统中的其他文件(如_layouts中的文件.配置文件.程序文件等)不在本章节的讨论范围之内.   (一) ...

  7. mysql-font的理解

    mysql-front是为mysql制作的一种图形化界面工具,可以管理和操作数据库,比如建表,修改数据,拖拽方式的数据库和表格,可编辑/可增加/删除的域,可编辑/可插入/删除的记录,可显示的成员,可执 ...

  8. Springboot 1.5.x版本上读取自定义配置文件问题

    原来的解决方案: 现在1.5.x以后取消了location地址 1.5以后解决方案:

  9. <2013 10 18> Linux随机数生成器可能确实存在安全弱点

    生成随机数是密码学中的一项基本任务,是生成加密密钥和加密算法或加密协议所必不可少的.理想中的随机数是完美的,但实践中的随机数都是用伪随机数生成器(PRNG)生成,随机数的质量对安全性至关重要.安全专家 ...

  10. 常用代码页与BOM

    常用代码页:CP437 IBM437 OEM United StatesCP1252表示West European LatinCP932 日本CP949 韩国CP936表示GBK中文编码CP54936 ...