iOS移动开发社区iOSSwift开发

关于Xcode8更新的坑

2016-09-19  本文已影响6011人  o翻滚的牛宝宝o

前言


xcode8在9月14日开放下载,抱着满满的热情,我也在第一时间,顶着公司破网下载了5个小时成功体验了一次Xcode8。以往每一次更新总有很多很多坑,这一点我早有觉悟,但是没想到这个坑一踩下去就坑了整整2天
。下面我就讲讲亲身经历的一些事:

注释快捷键失效

一打开界面,第一感觉就是字体变了,好像比xcode7好看多了。那就敲几句代码试试吧。敲着敲着突然发现command + /失效了。。。当时心中一万个草泥马崩腾啊,一开始还以为我的电脑问题,问了下旁边一起更新的同事发现也一样。好吧,这是事实。。然后各种查资料,网上论坛貌似这个问题只会出现在一部电脑上。

注释无效
解决方法: 重启下电脑就好了。(试了各种偏方都不行,最后同事重启下电脑告诉我好了。。。。有惊无险)

插件不能用

苹果为了避免类似 Xcode Ghost 事件的再次发生,Xcode8 禁用了插件机制,而开放了另一种形式:Source Editor extensions,但是这种形式局限性太大。MakeXcodeGr8Again 只是去除了它的签名,这样使得 Xcode8 也可以继续使用插件了。由于签名被移除,所以它的安全性又重回 Xcode7 时代,也就是还有可能受到类似 Xcode Ghost 的攻击。所以不推荐用 XcodeGr8 来提交应用到 Appstore。Use at your own risk.

xcode版本升级插件不能用这个是很正常的事,但是我按以前的方式修改插件的plist文件加DVTPlugInCompatibilityUUID后,发现还是不能用。。于是问题就严重了。。没了ESJsonformat以后生成Json转Model要一个一个手敲啊。看了一眼新的接口返回的json心中不寒而栗。。

我们后台返回字段个数的例子。。

赶紧找找办法抢救下。

解决办法:使用XcodeGr8,参考文章,但是这个办法不敢上传到Appstore,所有并没有完美解决。

CocoaPods pod trunk push 出错

之所以坑了2天,其实有大部分时间都在解决这个坑。在更新之前,我写了个NMPageViewController,但是在0.0.4版本中不小心写了个bug,本想在Xcode8升级后再推个0.0.5补救下,原本很简单只要一个pod trunk push命令就推上去了,但是各种奇葩问题都来了。首先是报错simulator iphone 4s is not available.这个可以理解,xcode8去掉4s模拟器,编译出错理所当然,可能是CocoaPods不是最新版吧。于是用命令sudo gem install cocoapods --pre经过漫长的等待升级到bate版。然后还是报simulator iphone 4s is not available.好吧,毕竟是第一天发布Xcode8正式版,CocoaPods没反应过来也正常,我自己下模拟器。

下载ios9.3模拟器
又和公司的破网斗争了几个小时之后,成功下载到了4s模拟器。然后继续trunk push,又报错: 再次报错

让我在验证期间用/Users/nuomi/.cocoapods/repos/master代替/Users/nuomi/NMKit/NMPageViewController/lib.是什么鬼?网上搜了半天找不到啊。。。于是我改改代码,提交下git到github又发现问题了:

gitpush
我提交到自己的git库关https://github.com/CocoaPods/Specs.git什么事?于是看了下本地.git文件。 git config

我惊奇的发现我的库地址被改了。。。(事后多次尝试发现是trunk push修改的)有话好好说,你动不动就改我地址干嘛。突然想起前面报错提示:在验证期间要临时修改下。那我就忍忍呗,再pod trunk push。刚才的错误不见了,有来了新的:

新错误
我的项目明明叫NMPageViewControllerDemo.xcworkspace你找App.xcworkspace肯定找不到啊。这里我已经想到,估计CocoaPods还没兼容Xcode8,我记得我的笔记本还是Xcode7,先用笔记本传代码解决燃眉之急。
结果Xcode7编译不了了,显示: Xcode7编译出错

网上都说删除xib源码中的<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>,我试了试,Xcode7直接闪退。。。心中再一次一万只草泥马崩腾。

正确的打开方式是:打开公司电脑,用Xcode8打开xib按下图修改

修改为Xcode 7.x

然后上传到git,然后笔记本从git拉下来,再编译。

然后pod trunk push,然后一切都是熟悉的感觉。。

Paste_Image.png

灵异事件

升级Xcode8后,有一个xib的图片显示不出来。看了下这个图片的约束感觉没有什么问题,而且其他cell的图片都能显示出来,就这个cell不行。

奇怪的图片

后来在IOS9系统的手机上尝试是能出现的,在IOS10中不显示,不知道是IOS10的问题还是Xcode8的问题。由于就这么一个xib出错,也没深究,重新生成一个xib继续用。

ps:今天找到原因了,因为xcode8从xib上拿到的view frame的height和width都是1000,而我设了个圆角是height/2。也就是说我设了一个500的圆角,因此图片不显示了!

其他实用的变化tip

这篇文章已经总结的很好了,因此不再累述。文章地址:http://www.jianshu.com/p/0cc7aad638d9

总结


本来只想写技术文章,不想吐槽什么,但是这次经历真的让人不吐不快。。苹果大大还是任性啊。
总结一句话:

升级有风险,更新需谨慎。

上一篇下一篇

猜你喜欢

热点阅读