一.Xcode7,iOS9之后传出来的什么Xcode有鬼,被植入代码片段什么的,可以看看,了解一下http://drops.wooyun.org/news/8864

二.bitcode问题--未正确设置可能导致编译问题。适配iOS9

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

问题描述:在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据。对ShareSDK来说,具体表现可能是,无法授权、分享、获取用户信息等。还可能造成我们的编辑界面里传http之类的网络图片的时候,我们的编辑界面不会显示图片截图,解决的办法或者全面关闭https,允许使用http请求;或者把图片的域添加;又或者选择使用https的图片

解决方案(以下方法2选1):

(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。

示例

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)、然后给它添加一个需要支持的项目,类型为字符串类型;

示例

三.ATS  未正确设置可能导致一些网络请求出问题。

WWDC 2015上了解到iOS 9将要求网络请求使用HTTPS协议。我们知道,Apple在安全及用户隐私方面做了很多工作,包括沙盒机制、代码签名、禁用私有API等。而在今年6月份的WWDC 2015上,Apple又提出了App Transport Security(ATS)的概念。这一特性的主要意图是为我们的App与服务器之间提供一种安全的通信方式,以防止中间人窃听、篡改传输的数据。这一特性在iOS 9+和OS X 10.11+中是默认的支持项。这一概念的提出,也将意味着Apple将会慢慢转向支持HTTPS,而可能放弃HTTP。

App Transport Security技术要求

我们先来看看ATS的技术要求(参考App Transport Security Technote):

1)The server must support at least Transport Layer Security (TLS) protocol version 1.2.

2)Connection ciphers are limited to those that provide forward secrecy (see the list of ciphers below.)

3)Certificates must be signed using a SHA256 or better signature hash algorithm, with either a 2048 bit or greater RSA key or a 256 bit or greater Elliptic-Curve (ECC) key.

可以看到服务端必须支持TLS 1.2或以上版本;必须使用支持前向保密的密码;证书必须使用SHA-256或者更好的签名hash算法来签名,如果证书无效,则会导致连接失败。

Apple认为这是目前保证通信安全性的最佳实践,特别是使用TLS 1.2和前向保密。当然,相信Apple也会与时俱进,不断的修正ATS,以保证网络通信的安全性。

默认配置

在iOS 9+和OS X 10.11+中,如果我们的App使用了NSURLConnection、CFURL 或者NSURLSession相关的API来进行数据通信的话,则默认是通过ATS的方式来传输数据。在此配置下,如果我们使用HTTP来进行通信,则会导致请求失败,并报以下错误:

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

这样意味着如果使用ATS,将无法支持HTTP协议(我们测试了一下,由于我们的登录服务是使用HTTP协议,目前在iOS 9下已无法正常登录)。相信目前还有大量的应用是通过HTTP协议来访问服务器的。而要让所有的应用都转向支持HTTPS,显然是一件费时费力的事(与今年年头所有应用必须支持64位ARM不同,那次只是在客户端层面,而ATS涉及到服务端,影响面更大)。所以苹果提供了一种兼容方案,下面我们就来看看如何处理。

自定义配置

考虑到现实因素,我们可能并不想使用默认配置,或者至少需要一个过渡时期。为此,Apple允许我们在Info.plist文件中来自行配置以修改默认设置(Exceptions),下表是一些键值及对应的类型和说明:

示例

示例

示例

示例

示例

四.Scheme未正确设置可能导致应用程序间跳转会有问题
同一中的白名单

五.Requires full screen 未正确设置可能导致应用程序上传会失败 提示ITMS-90474 ITMS-90475

示例

 
 

Xcode7之后常见问题整理-b的更多相关文章

  1. Maven使用常见问题整理

    Maven使用常见问题整理  1.更新eclipse的classpath加入新依赖  1.在dependencyManagement里面加入包括版本在内的依赖信息,如:   <dependenc ...

  2. LoadRunner常见问题整理(转)

    首先要感谢群友的无私分享,才能得到这篇好的学习资料,整理得太好了,所以收藏保存,方便以后学习. 一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消 ...

  3. [转]LoadRunner脚本录制常见问题整理

    LoadRunner脚本录制常见问题整理 1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面 ...

  4. [转帖]kubernetes 常见问题整理

    kubernetes 常见问题整理 https://www.cnblogs.com/qingfeng2010/p/10642408.html 使用kubectl 命令报错 报错: [root@k8s- ...

  5. LR常见问题整理

    1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决. LR11 无法弹出ie浏览 ...

  6. Git 常见问题整理

    在学习git的过程中,遇到如下问题,特整理如下: 1 error:src refspec master does not match any 问题产生 a git服务器使用如下命令新建一个项目 $ c ...

  7. web标准常见问题整理

    1.超链接访问过后hover样式就不出现的问题 2.FF下如何使连续长字段自动换行 3.ff下为什么父容器的高度不能自适应 4. IE6的双倍边距BUG 5. IE6下绝对定位的容器内文本无法正常选择 ...

  8. Microsoft Mole原理及常见问题整理

     Moles与Moq(Rhino.Mocks)比较 作用范围 Moq与Rhino.Mocks这类的Mock是对Interface或AbstractClass做Mock, 而Moles是Mock整个 ...

  9. 手机移动端web前端常见问题整理

    移动端常见问题及解决方案 一.meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="w ...

随机推荐

  1. HTML5 简单画图,切片,变形

    本人是在校学生,由于这段时间不知道怎么回事,心情比较无聊没有事干,所以利用这段时间学一下HTML5,发博客的目的是为了以后可以查询,也希望各位大神能够指导像我们这样的菜鸟,告别菜鸟的时段 我学东西时候 ...

  2. WEB DYNPRO SAP HELP

    http://help.sap.com/saphelp_nw70ehp1/helpdata/EN/43/70d83e8cb23d67e10000000a114084/content.htm

  3. java读取properties

    Java读取properties文件的方法比较多,网上我最多的文章是“Java读取properties文件的六种方法”,我看了好多的文章,在读到“博客之星-熔岩”的“Java读取properties文 ...

  4. LabVIEW系列——合并错误(VI)的用法

    Merge Errors.vi的功能:1.按顺序搜索错误输入1,2,3,以及错误数组输入中的错误,输出第一个错误.                        2.如果没有错误,也就是错误状态都为F ...

  5. Java基础知识强化之集合框架笔记64:Map集合之ArrayList嵌套HashMap

    1. ArrayList集合嵌套HashMap集合并遍历.  需求:         假设ArrayList集合的元素是HashMap.有3个.         每一个HashMap集合的键和值都是字 ...

  6. CentOS 6.7 final编译安装Python 2.7.11

    CentOS 6.7默认的Python版本为2.6.6,现升级为Python 2.7.11 1.安装编译环境 yum groupinstall "Development tools" ...

  7. JDK1.8聚合操作

    在java8 JDK包含许多聚合操作(如平均值,总和,最小,最大,和计数),返回一个计算流stream的聚合结果.这些聚合操作被称为聚合操作.JDK除返回单个值的聚合操作外,还有很多聚合操作返回一个c ...

  8. .Net程序员学习Linux(二)

    本次知识点:递归命令符,wc命令,文档编辑器 vi的简单使用,文本常用操作命令,find查询文件命令,grep匹配文本中对应的关键字 递归命令符 递归对于程序猿来说不默认,经常用于级联关系,一层套一层 ...

  9. ManualResetEvent的使用与介绍

    它可以通知一个或多个正在等待的线程已发生事件,允许线程通过发信号互相通信,来控制线程是否可心访问资源 当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Reset 以将 Manu ...

  10. 一个library,相当于一个rootfolder

    picLib.RootFolder.SubFolders 操作library的方式:                         SPList oList = web.Lists[ListName ...