XCode9的一些变化之处

一直也没时间看xcode9的一些坑,今天看了一下,写一下个人对xcode9的一些改变的总结,希望对你有用。

1、代码折叠

在XCode9之前,在变量或方法上,按comman+单击,是直接Jump to Definition,但是现在,是弹出这个菜单,对于跳转到变量的定义,就多了一步了 。焦点在方法的实现体的方法名上,按comman键,则整个函数会被框住.用来标志这个方法的起点和终点
此时单击,出现菜单

comman弹框

在对应的方法选中的时候也会出现弹框

方法的弹框

当中的fold方法相当于以前的将方法折叠成一行,不过xcode9取消了这些而已

取消了以前的折叠方法

开始大家可能会觉得不方便,对于想直接跳转到变量定义,现在是 control+command+单击
当然,如果你还是觉得以前的cmd+单击 跳转到变量定义,你更习惯,可以在这里设置一下就变为原来的方式了。

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账户,登录后如下

登录git账号

登录后,通过Xcode的菜单
Source Control 最下方的clone,就可以clone你的github上的工程了,是不是非常方便

clone项目
clone项目

打开任意一个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了,这样,就很方便的同步联系人等信息到模拟器上了,以前要测试联系人相关的功能,还要自己一个个的新建,现在就方便多了

登录appid

如果开启了Photo的Share,那么模拟器中应该也能同步照片过来了,以前那种一个个的导入图片的方式终于可以说再见的时候了。

8、打包的调整

打包xcode9也做了一些调整,变得更加简洁,功能也增强了,直接上图说明。

1
2
3

4
5
6

crash可以直接在本机上看到了
当然了,这要用户在机器上允许,还有你提交到appstore时候允许了才会有.

网上找的图

9、xcode9无线调试

xcode9可以无限调试,那么需要有哪些条件呢?
条件:
Mac OSX 10.12.6以及以上的系统
手机要是 iOS 11 以上系统
xcode需要升级到 Xcode 9以上
首先保证Mac 和 iPhone 通过wifi连接的是同一个路由器,也即同一个局域网。
接下来需要这样操作

1
2
3

运行成功之后就可以调试了,不过你可能会遇到这些问题:
1、


问题1

这个需要你重新插拔你的设备
2、可能会报类似这样的错误。

  Failed to initiate service connection to simulator Error returned in reply: Connection invalid

可能原因是:你的手机刚开始设置过密码,然后将手机密码功能关闭了,你需要打开手机密码功能,然后再进行调试,如果成功以后就不影响了。这个密码功能就是手机中设置->Touch ID 与密码功能.
这个我遇到的是这种情况,然后这样解决的。

10、一些问题

1)、拖入的文件不会自动添加到工程(target)里面。
拖入第三方库不能自动编译,包括自己别的项目中写到的一些文件拖入,会导致类似这样的错误。

报错
原因

解决方法有这几种:
1>、手动一个个加入

1

2
自己一个一个勾选

2>、切换到xcode8版本,导入后,再切换回来,这样就得下载一个xcode8,需要装两个xcode,比较蛋疼,希望苹果下一版这个问题能解决。
3>、有个哥们这样回复,大家可以试一下。


文件不能target的问题

大概知道的就这些,如果你有遇到一些坑,或者发现一些新大陆,希望留言,我自己再加上去。
希望大家能提出宝贵的意见,可以给我留言,也可以发邮件到我的邮箱:namezyqyx@163.com
谢谢大家,,不胜感激。

推荐阅读更多精彩内容

  • 新增内容: 在使用的过程中,还发现了以下的变化1 在OC工程中,新的关键字和新的警告如果我们工程的deploy t...
    yohunl阅读 1,436评论 4 11
  • 收 集 文 章 / 超 人文章来源 XCode9的新变化 折叠代码 焦点在方法的实现体的方法名上,按comm...
    树下敲代码的超人阅读 267评论 3 9
  • XCode9已经随着ios11的发布发布了,那么在这个XCode9版本中有哪些变化呢? 1 折叠代码 焦点在方法的...
    庄欲以莘阅读 208评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 105,289评论 12 126
  • 导航栏 导航栏高度的变化 iOS11之前导航栏默认高度为64pt(这里高度指statusBar + Navigat...
    lllaa阅读 421评论 1 1