前言
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没反应过来也正常,我自己下模拟器。
又和公司的破网斗争了几个小时之后,成功下载到了4s模拟器。然后继续
trunk push
,又报错:
再次报错
让我在验证期间用/Users/nuomi/.cocoapods/repos/master
代替/Users/nuomi/NMKit/NMPageViewController/lib.
是什么鬼?网上搜了半天找不到啊。。。于是我改改代码,提交下git到github又发现问题了:
我提交到自己的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
,然后一切都是熟悉的感觉。。
灵异事件
升级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。
总结
本来只想写技术文章,不想吐槽什么,但是这次经历真的让人不吐不快。。苹果大大还是任性啊。
总结一句话:
网友评论