一直也没时间看xcode9的一些坑,今天看了一下,写一下个人对xcode9的一些改变的总结,希望对你有用。
1、代码折叠
在XCode9之前,在变量或方法上,按comman+单击
,是直接Jump to Definition,但是现在,是弹出这个菜单,对于跳转到变量的定义,就多了一步了 。焦点在方法的实现体的方法名上,按comman键,则整个函数会被框住.用来标志这个方法的起点和终点
此时单击,出现菜单
在对应的方法选中的时候也会出现弹框
当中的fold方法相当于以前的将方法折叠成一行,不过xcode9取消了这些而已
开始大家可能会觉得不方便,对于想直接跳转到变量定义,现在是 control+command+单击
当然,如果你还是觉得以前的cmd+单击 跳转到变量定义,你更习惯,可以在这里设置一下就变为原来的方式了。
2、警告
有可能你定义block可能会出现这样的警告,或者是原来的代码出现了这样的警告
我们定义一个不带参数的block,通常是如下的方式
typedef void(^federationTokenGetter)();
在xcode9中会提示一个警告
解决方式可以是如下的几种
1)、直接改代码
typedef void(^federationTokenGetter)(void);
2)、第一种方式这样,很多第三方要改,涉及的面太大了,目前可能不太适合,虽然这个是趋势.或者,如果只是很少的地方,也可以使用这种方式。还有就是彻底的暂时解决所有这种警告的方式,如下:
在工程的 Build Settings 中的
将Yes(Error)设置为NO,则这些警告就消失了
3、xcode9可以用来直接调整编辑器的字体大小了
在展示代码的时候将很有用 ,快捷键如下
cmd + /-
4、Source Control的极大增强
XCode内置的git系统感觉是越来越强大了,感觉以后可以抛弃三方的了
5、xcode9支持Github账户了
XCode - Preferences -Accouts 可以登录你的GitHub账户,登录后如下
登录后,通过Xcode的菜单
Source Control 最下方的clone,就可以clone你的github上的工程了,是不是非常方便
打开任意一个git工程,提供了一列新的 Show the Source COntrol navigator
这里列出来了你的branch的相关信息,可以很方便的切换分支,等等git操作
当然你也可以进行一些分支的操作
有人问如何切换分支,这里贴出来一下
6、Folder和Group的同步性
之前,我们在XCode中,更改Folder的名字,在FInder中工程对应的文件夹的名字并不会同步的改变,这会造成我们重命名文件夹变得非常不方便,往往要先在XCode中移除,然后在Finder中重命名,再添加回Xcode,现在 在Xcode9中重名命Folder,Finder中的也同步的改变了
我们之前建议一个虚拟的group,并不会在对应的文件夹中建立真实的目录,当然,这可能是你需要的,也可能是你不需要的功能.在9中,默认行为改变了.变成了会建立对应的真实文件夹.如果还想像之前那样只是建立虚拟的group,需要选择New Group without Folder
你可能你会担心,区分不了这个group到底是虚拟的,还是实际的
放心,苹果给出了标识来区分的,虚拟的左下角有个小的三角形,如图
当你移动一个Group的时候真实的文件夹,它会同步的把对应的真实文件夹中的所有内容也移动到对应的位置,这个极大的方便了我们后期调整工程的目录结构,之前调整那才叫痛苦,在工程中调整了后,工程中的结构和真实的文件夹下的对应不上,以后不会出现这种情况了;至于虚拟文件的话,文件在哪里的话仍然会在哪里。
7、模拟器的调整
模拟器可以多开了,并且,模拟器可以登录
模拟器的外观样式也回归了,直接是iPhone的外观了。同时也可以任意的调节大小。
当然如果你不喜欢这样的外观,也可以调整成原来的样式
现在模拟器也可以登录你的appid了,这样,就很方便的同步联系人等信息到模拟器上了,以前要测试联系人相关的功能,还要自己一个个的新建,现在就方便多了
如果开启了Photo的Share,那么模拟器中应该也能同步照片过来了,以前那种一个个的导入图片的方式终于可以说再见的时候了。
8、打包的调整
打包xcode9也做了一些调整,变得更加简洁,功能也增强了,直接上图说明。
crash可以直接在本机上看到了
当然了,这要用户在机器上允许,还有你提交到appstore时候允许了才会有.
9、xcode9无线调试
xcode9可以无限调试,那么需要有哪些条件呢?
条件:
Mac OSX 10.12.6以及以上的系统
手机要是 iOS 11 以上系统
xcode需要升级到 Xcode 9以上
首先保证Mac 和 iPhone 通过wifi连接的是同一个路由器,也即同一个局域网。
接下来需要这样操作
运行成功之后就可以调试了,不过你可能会遇到这些问题:
1、
这个需要你重新插拔你的设备
2、可能会报类似这样的错误。
Failed to initiate service connection to simulator Error returned in reply: Connection invalid
可能原因是:你的手机刚开始设置过密码,然后将手机密码功能关闭了,你需要打开手机密码功能,然后再进行调试,如果成功以后就不影响了。这个密码功能就是手机中设置->Touch ID 与密码功能.
这个我遇到的是这种情况,然后这样解决的。
10、一些问题
1)、拖入的文件不会自动添加到工程(target)里面。
拖入第三方库不能自动编译,包括自己别的项目中写到的一些文件拖入,会导致类似这样的错误。
解决方法有这几种:
1>、手动一个个加入
2>、切换到xcode8版本,导入后,再切换回来,这样就得下载一个xcode8,需要装两个xcode,比较蛋疼,希望苹果下一版这个问题能解决。
3>、有个哥们这样回复,大家可以试一下。
大概知道的就这些,如果你有遇到一些坑,或者发现一些新大陆,希望留言,我自己再加上去。
希望大家能提出宝贵的意见,可以给我留言,也可以发邮件到我的邮箱:namezyqyx@163.com
谢谢大家,,不胜感激。