科技界三巨头
如果按用户体验排名,依次是:苹果,微软,谷歌
但如果按开发体验排名,则是:微软,谷歌,苹果
当然,很多体验细节跟每个人的开发领域有关,但大体上是没问题的。
苹果的开发工具和体验做的烂,基本上是业界出名的。这个烂指的是稳定性,和基础功能。
比如,非常让人诟病的,到现在都没有解决的,文件夹资源同步机制(这个问题牵扯到XCode的底层设计,估计永远都不可能解决了。)
比如,C++的支持问题(重构,搜索,调试等)。
比如,本篇讨论的,XCode各种异常,无法编译,无法启动,无法连接到调试器。这个问题是让人沮丧的,基本上每个开发者都在这些问题上,浪费了几十小时的时间。有些人甚至浪费了数百小时。
如果遇到模拟器异常,大致的思路是:
排除自身工程问题:
1. 按照网络上资料,尝试检查工程,比如Copy Bundle Resources里面是不应该有info.plist文件的,这个鄙视一下cocos,他们的之前的工程模板里面对这个info.plist安装存在误导,在1.x2.x时代很多问题都由这个引起。不过现在好像改了。
2. Bundle重复问题
3.如果有可能check一份新的工程,重新导入修改的文件
修理XCode:
-
双清(reset模拟器,clean工程),如果没解决就step2
-
cd到目录下,删除设备资料和应用程序,然后再执行step1,再run,如果没解决就step3
-
删除XCode,进行重装。不要使用MacAppStore下载,龟速,在国内网盘中有很多搬运的。
在寻找解决办法时要注意
-
如果不行,不要反复尝试,因为XCode的错误复现率还是很高的,不要在这上面浪费时间
-
不同原因可能造成相同的错误。其他人的解决方案,不一定能解决你的问题
-
不论发生什么事,一定不要重装系统,不一定解决(XCode不像VS,一旦损坏基本只能重装系统)而且代价太高
最后,推荐一个神器AppCode。这是喷脑浆公司提供的开发IDE。对比XCode他的优势在于:
-
History ClipBoard
-
带分类的Find Usages
-
Refactor
-
各种Generate
-
Column Selection Mode,数学算法领域的排版神器
-
Unused着色提示,TODO着色提示等
-
Compare With ClipBoard
……
还有一个,如果你在一个工程里嵌入其他工程,比如你写了个lib,在很多工程里嵌入,如果你用XCode同时打开两个这种工程(这是很常见的操作),首先你是无法正常打开的,其中一个会报错,然后,你是无法编译的。AppCode很好的解决了这个问题。
还有一个,AppCode可以不调试直接运行的,如果你只是使用log,可以用这种方式救急。
还有一个,虽然AppCode是商业软件,但是如果你是开源开发者,可以申请免费的license。这点很让人称道。
最后,我第一次访问AppCode主页时,看到上面写着“iOS出来时,大家都很高兴,但是,用了XCode后,我们都诅咒JOBS”(大意是,后来找不到了,也许删掉了)。
so cool,他们是一家有态度的公司。