iOS9适配
一、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适配的更多相关文章
- 整理iOS9适配中出现的坑(图文)
原文: http://www.cnblogs.com/dsxniubility/p/4821184.html 整理iOS9适配中出现的坑(图文) 本文主要是说一些iOS9适配中出现的坑,如果只是要 ...
- fir.im Weekly - iOS9 适配开发教程
期待已久的 iOS 9 发布了,很多人更新完毕得出结论:这是值得升级的版本.随之而来的是适应 iOS9 开发技术.本期 Weekly 收集了一些关于 iOS9 相关的开发资源,希望对你有帮助. iOS ...
- iOS9 适配
iOS适配的相关内容的整理 之前iOS开发者一直很庆幸自己不用像安卓开发者那样适配各种不同类型的机型,但如今随着iPhone各种机型的改变,适配也成了我们开发中必须会的内容了.首先我们来了解一下对于不 ...
- 整理iOS9适配
整理iOS9适配 本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版, ...
- iOS开发——适配篇&iOS9适配
iOS9适配 1. Demo1_iOS9网络适配_ATS:改用更安全的HTTPS [摘要]iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采 ...
- iOS9适配中出现的一些常见问题
本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版,随着有用户陆续升级 ...
- 【转】iOS9适配
Demo1_iOS9网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是 强制 ...
- ios9适配系列教程——ios9新变化
Demo1_iOS9网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是 强制 ...
- IOS9适配 MARK
最近做了iOS 9的适配,程序出现大量警告也做了些处理,写出来分先给大家. 一.iOS 9适配 问题一: <Error>: CGContextSaveGState: invalid con ...
随机推荐
- hadoop2.2编程:用ruby跑hadoop的完整实例
Becareful! All nodes include need to install ruby! #!/usr/bin/ruby # Ruby code for map.rb ARGF.eac ...
- 六月计划#1B(6.1-6.8)
1/7 图论 purfer_sequence
- Bat 中特殊符号
批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @\\隐藏命令的回显. ~\\在for中表示使用增强的变量扩展:在set中表示使用扩展环境变量指定位置的字符串:在set ...
- MVC3中Action返回类型ActionResult类型
MVC3中Action返回类型ActionResult在System.Web.Mvc命名空间中.这些包含在控制器中的方法,我们称为控制器中的 Action,比如:HomeController 中的 I ...
- Android Support v4、v7、v13的区别和应用场景
N久未做android了,以前做的时候,2.2才刚出来,现在android都更新到了4.3了,而从前一段时间android各个sdk版本市场占有率 来看,1.6.2.1还是占有一定的市场,故在有些时候 ...
- 热修复 RocooFix篇(一)
吐槽之前先放一张大帅图. (md 这张图貌似有点小 不纠结这个了==) 有时候项目刚刚上线或者迭代 测试或者在线上使用测出一个bug来 真让人蛋疼 不得不重新改bug测试 打包混淆上线感觉就向find ...
- [King.yue]Ext.NET相比WebForm的优势
1)更好的用户体验.(生产力++) 虽然WebForm可以使用微软的Ajax以及Ajax控件进行开发,但是用户体验还是远远不及extjs.而且你可以跟客户忽悠,这个功能多么滴难做,多么好,但是我们做出 ...
- selenium1.0和selenium2.0页面等待处理详解
一.selenium1.0页面等待 1.……AndWait 经常会看到, selenium action命令中很多有这种……AndWait后缀, 例如click和clickAndWait命令: cli ...
- Unity给力插件之ShaderForge(三)
地形模型材质: 使用Unity自带的地形会出现一些问题,所以我尽量使用手工制作的模型来制作地形.而地形又需要只使用一个材质球,于是在此制作一个简单的Shader. 效果图: 注意: 1.颜色遮罩的图片 ...
- nodejs调试工具node-inspector入门随笔
最近打算玩玩node. 众所周知,在前端,调试代码有一众天然好工具——浏览器!特别是 chrome,使得 jser 们如鱼得水,玩得风生水起.但是到了node,情况就不一样了,js 代码不再运行在单纯 ...