XCode7的使用与iOS 9适配的小结

iOS 9 已经发布,就更新XCode由6.4 到7,应用瞬间不能使用,做些小结,虽然有点晚,自己记录下

一. bitcode

bitcode是xcode7新出的属性,默认打开状态,在新的游戏接入xcode6.4打包的sdk时并没有该属性,可以理解为bitcode为关闭状态,因此在程序中导入该sdk时会报一下错误

lib**SDK.a(****.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 arm64

打开程序如图设置即可
这里写图片描述

据说bitcode是被编译程序的一种中间形式的代码。包含bitcode配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化我们程序的二进制文件。到App store上时,Xcode会将程序编译为一个中间表现形(bitcode),这个就是所谓的瘦身行动。

二.sdk瘦身成功(有参考相关博文)

xocde6.4时,我的静态库大小为4.3M,升到xcode7时,没有更改任何配置静态库变为2.4,说实话第一次打包出来时吓了一跳,立马跑去找了另一个做sdk的同学,他的sdk也小了一些,比例没我这么大而已。
先来说三个xcode生成二进制指令包相关的设置项:
这里写图片描述

Architectures

该选项指定了工程将被编译成支持哪些指令集,如果支持的指令集数目有多个,就会编译出包含多个指令集数据包,最后编译的包会很大。

Valid Architectures

该选项指定可能支持的指令集,该列表和Architectures列表的交集,将是Xcode最终生成二进制包所支持的指令集。
比如Valid Architectures设置的支持arm指令集有:armv7/armv7s/arm64,对应的Architectures设置的支持arm指令集有:armv7s,这时Xcode只会生成一个armv7s指令集的二进制包。

Build Active Architecture Only

该编译项用于设置是否只编译当前使用的设备对应的arm指令集。
当该选项设置成YES时,你连上一个armv7指令集的设备,就算你的Valid Architectures和Architectures都设置成armv7/armv7s/arm64,还是依然只会生成一个armv7指令集的二进制包。
如果Xcode没有连接任何设备,该选项即便是设置成YES依然还会编译Valid Architectures和Architectures指定的二进制包。
大越是xcode默认Architectures为armv7/arm64,xcode6.4时为的armv7/armv7s/arm64,这个待我证明再更贴

三.http 到https

由于iOS9引入了App Transport Security(ATS)特性,要求App访问的网络使用HTTPS协议,如果不做特殊设置,http请求会失败,所以需要开发者在工程中增加设置以便可以发送http请求`,如下:

在info plist中增加字段:

  <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

这个方法很直接了断的彻底回到http协议,如果有特殊需求可以另外处理(ps:网上解释一大推,就不累述)。
暂且写到这,如有更新,随时添加

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值