升级Xcode8后需要注意的事项
2016-09-24
升级Xcode8后需要注意的事项
随着iPhone7开卖适配iOS10成了必不可少的事情。要适配iOS10,升级Xcode8又是必须的事情。可以一旦升级Xcode8之后会发现一堆坑在里面。每次升级Xcode或者iOS系统或者Mac系统都是有一堆的坑,每次都要折腾得你死去活来不罢休。这有点像飞蛾扑火,明明知道前面是火坑,也要往下跳。
升级第一坑,注释代码快捷键失效
当你经过漫长的等待Xcode下载和安装之后,满心欢喜打开Xcode,发现字体变了,貌似看上去还不错(有同事跟我说这很丑),然后开始写代码,发现可以高亮显示当前编辑行,不错嘛,写着写着突然想注释掉一行代码,发现command+/怎么按都没反应,十分恼火。这什么破玩意儿,这么明显的bug都有。然后网上搜解决方案,确实有人也遇到这个问题。貌似需要跑一个命令什么的。实际上不用那么费劲,重启一下Xcode就好了。
升级第二坑,iOS的字体变宽了
当我Run一下程序想看看我们的程序在iOS10上有没有问题,启动之后打开引导页,发现最底下的两个按钮字显示不全了:注册账号 变成了 注···号,登录账号变成了 登···号,这是什么鬼?我没有动过这块的任何代码,甚至连这个页面的xib也没有打开过。后来才知道,运来是iOS的字体变宽了,如果你一个按钮在iOS9原来刚好放下4个字,然后iOS10它就装不下了。现在的解决办法是手动调节控件的宽度,发现问题一个解决一个。
升级第三坑,xib不兼容Xcode7了
这个坑实在试太无良知了,怎么可以这样做。由于我比较早升级到Xcode8,其他同事还没升级,我在Xcode8上编辑过一个xib文件,提交了。另外一个同事更新代码后就编译不过了:提示要使用Xcode8.这不是强制升级么?你用Xcode8编辑xib后,Xcode会加入一行代码说明
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
这就是说这是用Xcode8保存的,你必须要要用Xcode8打开。这给团队协作带来极大不便,逼着大家要升级。当然也有解决办法。在File Inspector里有个open in Latest Xcode 的选项,把它改为Xcode7.x就会重新保一下。
升级第四坑,sigining方式变了
这是个大坑,当然你可以说它是大好,如果它没有给你带来不便利的话。Xcode8里有个自动管理签名开发,即将签名改为自动管理签名后者手动管理签名。其实就是要你登录你的开发账号,然后选择你的develop team。可是一般团队里就一个开发者账号,你就必须给每个人的电脑上都登录一下这个开发者账号。如果能把账号密码公开给大家当然没问题,不能的话就只有管理者去每个人的电脑上登录一下账号。
这都还是算好的,因为我们开发者自己弄两下就可以搞定。但是有个蛋疼的地方:我们给测试同事打包是在打包机上自动打包的,采用的是Jenkins持续集成环境,并且打包采用的证书是企业版证书,打包出来之后需要给大家随意安装的。当升级Xcode8之后,signing方式改变了,然后打包就失败了。因为打包机上我们是必须重新修改BundleID,然后指定签名文件。但是我们平时开发是Xcode配置是自动签名方式,打包机是通过Jenkins重新配置了打包方式,这样就出问题了。。。
我现在尝试去解决这种冲突,但是还没搞定。develop team貌似Xcode8中新加的,以前不需要指定。我也网上找了一些资料,貌似有人想直接打包前直接用she'll脚本修改工程文件配置。这也是一个方向。接下来下周我估计要把这个问题研究一下。每次环境变动,Jenkins都要重新搞,折腾得我苦不堪言。什么时候苹果把签名和调试不要搞得那么复杂,造福一下开发者就好了。
Category: iOS Tagged: Jenkins Xcode8 iOS10