一、App Transport Security

xcode7安装后,你会发现ios9之后后默认所有http请求都无法继续有效,但是基于现状,我们并不能这么快改成https请求,所以基本上大多数app都会选择兼容老模式。

如果服务不改变,则客户端info.plist的根需加下面的键值。(这些key可以手动在project的info里直接添加和修改)

简单信任所有http服务器

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

或者另外严谨一些

<key>NSAppTransportSecurity</key>

<dict>

<key>NSExceptionDomains</key>

<dict>

<key>yourserver.com</key>

<dict>

<!--Include to allow subdomains-->

<key>NSIncludesSubdomains</key>

<true/>

<!--Include to allow insecure HTTP requests-->

<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>

<true/>

<!--Include to specify minimum TLS version-->

<key>NSTemporaryExceptionMinimumTLSVersion</key>

<string>TLSv1.2</string>

<!--whether domain support forward secrecy

using ciphers, if not support, set false-->

<key>NSExceptionRequiresForwardSecrecy</key>

<false/>

</dict>

</dict>

</dict>

另外由于苹果的https的限制(注意理论上苹果ATS生效的是调用NSURLConnection, CFURL, or NSURLSession APIs的所有连接),还不仅仅限于任何https,还必须满足一定的其他要求,比如加密算法的要求,TLS的协议版本等。(详情查看https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/)

比如网上有人分析了百度的https就不能满足默认的苹果https安全传输要求,因为它的TLS虽然满足TLS1.2,但是加密算法是:SHA-1 with RSA Encryption ,所以依然会被报警,所以,这种exception的情况也需要额外标注,上面的官方连接也有说明,即添加NSExceptionRequiresForwardSecrecy,并设置为false,禁止forword secrecy。

二、bitcode

xcode7 默认开启,bitcode(iwatch需要),则会导致部分第三方框架报错。(比如友盟的错误)

libMobClickLibrary.a(MobClick.o)‘ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7

这是要么更新库,要么可以在 build setting 中,搜索bitcode,并把enable bitcode 设置为 NO,这个因各自app情况而定,实际上本身不会降低上传包大小,只是开启后能降低用户下载的大小。苹果会自动根据用户自身的设备选择相关架构的下载。

三、iOS9安装企业证书打包的app

企业证书打包的app,安装到手机里面后第一次打开app。不会像以前一样自动提示,信任还是不信任该证书;

这是个时候需要iOS9 设置-》通用-》描述文件-》企业级应用 中信任对应的企业开发者。

四、iOS9 URL Schemes

苹果新上线urlScheme的限制

If you call the “canOpenURL” method on a URL that is not in your whitelist,

it will return “NO”, even if there is an app installed that has registered to handle this scheme.

A “This app is not allowed to query for scheme xxx” syslog entry will appear.

If you call the “openURL” method on a URL that is not in your whitelist,

it will fail silently. A “This app is not allowed to query for scheme xxx” syslog entry will appear.

更多信息:WWDC 2015 Session 703: “Privacy and Your App” https://developer.apple.com/videos/wwdc/2015/?id=703

因此现在要搞分享的时候,除了要在项目info URL Types中设置URL Schemes,还需要在info.plist里面增加可信任的调用app url scheme,否则回报如下错误。

-canOpenURL: failed for URL: “weixin://app/wx********/” - error: “This app is not allowed to query for scheme weixin”

只需要添加如下代码即可,在info.plist里加入

<key>LSApplicationQueriesSchemes</key>

<array>

<string>weixin</string>

<string>wechat</string>

<string>sina</string>

<string>weibo</string>

</array>

你也可以查看友盟分享SDK适配iOS9的文档:http://dev.umeng.com/social/ios/ios9

iOS9适配的更多相关文章

  1. 整理iOS9适配中出现的坑(图文)

    原文: http://www.cnblogs.com/dsxniubility/p/4821184.html 整理iOS9适配中出现的坑(图文)   本文主要是说一些iOS9适配中出现的坑,如果只是要 ...

  2. fir.im Weekly - iOS9 适配开发教程

    期待已久的 iOS 9 发布了,很多人更新完毕得出结论:这是值得升级的版本.随之而来的是适应 iOS9 开发技术.本期 Weekly 收集了一些关于 iOS9 相关的开发资源,希望对你有帮助. iOS ...

  3. iOS9 适配

    iOS适配的相关内容的整理 之前iOS开发者一直很庆幸自己不用像安卓开发者那样适配各种不同类型的机型,但如今随着iPhone各种机型的改变,适配也成了我们开发中必须会的内容了.首先我们来了解一下对于不 ...

  4. 整理iOS9适配

    整理iOS9适配 本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版, ...

  5. iOS开发——适配篇&iOS9适配

    iOS9适配 1. Demo1_iOS9网络适配_ATS:改用更安全的HTTPS [摘要]iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采 ...

  6. iOS9适配中出现的一些常见问题

    本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版,随着有用户陆续升级 ...

  7. 【转】iOS9适配

    Demo1_iOS9网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是 强制 ...

  8. ios9适配系列教程——ios9新变化

    Demo1_iOS9网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是 强制 ...

  9. IOS9适配 MARK

    最近做了iOS 9的适配,程序出现大量警告也做了些处理,写出来分先给大家. 一.iOS 9适配 问题一: <Error>: CGContextSaveGState: invalid con ...

随机推荐

  1. Android最佳实践指南

    Updated on 2016/1/6 修正了一些翻译段落欢迎转载,但请保留译者链接:http://www.jianshu.com/p/613d28a3c8a0 Lessons learned fro ...

  2. 【HDOJ】1720 A+B coming

    水题. #include <stdio.h> #include <string.h> #define MAXNUM 1005 int stoi(char); int main( ...

  3. string.Split函数

    正文 string str = "a---b---c"; string[] array = str.Split(new char[]{'-'}); 分割之后array中的元素为 分 ...

  4. 应付分配集 Distribution Sets

    (N) AP > Setup > Invoice > Distribution Sets (定义分配集) You can use a Distribution Set to auto ...

  5. BZOJ_[HNOI2008]_Cards_(置换+Burnside引理+乘法逆元+费马小定理+快速幂)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1004 共n个卡片,染成r,b,g三种颜色,每种颜色的个数有规定.给出一些置换,可以由置换得到的 ...

  6. 【转】OS X Mavericks: 防止 Mac 进入睡眠 -- 不错

    原文网址:https://support.apple.com/kb/PH13808?locale=zh_CN&viewlocale=zh_CN 某些 Mac 电脑将在不活跃一段时间后自动进入睡 ...

  7. Raspberry Pi使用USB摄像头远程监控

    用到了开源项目:MJPG-streamer 开源项目的下载地址: http://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/mjpg-streamer ...

  8. kafka在虚拟机环境的优化

    首先是,多磁盘的并发的问题.不管怎么说,虚拟机环境至少剥夺了单个kafka同时使用多个磁盘的优势.也就意味着,在同一个虚拟机,同一个topic,最好只有一partition:当然,不同topic之间p ...

  9. 【HTML】Intermediate6:Text: Addresses, Definitions, Bi-directional, and Editorial

    1.</address> It should be used specifically for the contact details relating either to the ent ...

  10. oracle 临时表学习

    临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别.它只能存储在临时表空间,而非用户的表空间.ORACLE临时表是会话或事务级别的,只对 ...