Xcode 9 —进阶的 iOS Simulator

前言

iOS Simulator 是 iOS 开发过程中不可或缺的一部分,我平时工作中也有很大一部分时间在使用 iOS Simulator, 相比于 Android ,iOS Simulator 具有启动时间快,运行效率高等显著的特点。 因此,用好 iOS Simulator 对于提高我们的开发效率是有很大帮助的. Xcode 9 中,有一大堆新特新等你来撩!!

正文

1、 在 Xcode 的全屏模式下使用 Simulator

如果你用的是 13 寸的电脑,那么 Xcode 的全屏模式你应该早已习惯,其实即使是配有显示器,我还是习惯在 Xcode 的全屏模式下开发😎。很可惜的是不能在 Xcode 的全屏模式下使用 Simulator, 自 Xcode 9b3 以后,这个问题便不存在了:

这个功能并不是对所有人默认开放的,如果不幸你的 Xcode 没有默认开启这个功能也不要灰心,我们可以通过打开 Apple Internal menu 来启用这个功能,通过 Apple Internal menu 你能挖掘出 Simulator 的更多新特性。那么问题来了,怎么开启 Apple Internal menu 呢?首先,在更目录里创建 AppleInternal 文件夹,然后重启 Simulator:

internal-menu.png
cd ~/
sudo mkdir /AppleInternal

重启 Simulator 后就可以看到 internal 选项 ☝️
再次重申,你需要下载 Xcode 9b3 或更新的版本才行

2、同时打开多个模拟器

还记以前我们在不同尺寸的手机上去适配吗?通常情况下,我们通过 Storyboard 可以直观的看到 View 在不同尺寸设备上的形态,然而纯 Code 码出的界面就得多次启动不同的模拟器来进行可视化调试了。作为开发者,你肯定也想过,要是能同时启动多个模拟器多好,那么很高兴的告诉你,在 Xcode 9 中这已不再是问题了。

3、拖动放大或缩小 Simulator

在 Xcode 9 之前, 我们需要通过 command + 1、2、3、4 来对 Simulator 的大小进行调整,Xcode 9 以后就不用这么麻烦,我们可以通过拖拽来控制模拟器的大小了。如果您有多个模拟器打开,这是非常有用的一些细节,它可以帮助你有效地组织工作空间。

4、Simulator 屏幕捕捉

在 Apple 官方的 “What's new” Xcode 9 文档中,苹果声称现在可以录制模拟器屏幕的视频。 其实这并不新鲜,即使在旧版本中我们也可以通过 simctl 实现这样的功能。 您可以从界面启用视频录制(除了iOS 11中的内置屏幕录制)。

执行 command 的命令,就可以得到我们想要录制的视频了。

xcrun simctl io booted recordVideo --type=mp4 <PATH TO VIDEO FILE>

booted —— 即是 simctl 当前选中的模拟器,如果当前有多个模拟器,那么选中的活动的 Simulator 为准。

5、Finder 和 Simulator 共享文件

现在,Simulator 具有 Finder 扩展,我们可以直接从 Finder 窗口共享文件给 Simulator 。

当然,如果你使用的是旧版本的 Xcode ,我们也可以使用 simctl 命令来进行类似操作:

xcrun simctl addmedia booted <PATH TO MEDIA FILE>

这个功能太棒了,毕竟,我更喜欢通过拖拽来实现 Simulator 和 Finder 的文件共享。

6、 通过 Simulator 打开 URLs
通过 simctl 也可以实现 Simulator 打开 URLs, 所以你也可以在旧的模拟器上打开自定义的 URL。

执行下面的 shell 命令

xcrun simctl openurl booted <URL>

Apple 官方文档 check out the documentation

7、快速打开 app 的文件系统

通过 simctl 你只需要简单的执行下面一句命令,你就能获取 app 的文件系统,但是,你得知道 bundle identifier:

xcrun simctl get_app_container booted <APPS BUNDLE ID>

或者您可以通过 open 命令在 Finder 中快速打开目标文件夹:

open `xcrun simctl get_app_container booted <APPS BUNDLE ID>` -a Finder

8、通过 Command 打开 Simulator 中的 APP
有了 simctl ,你可以通过 Command 启动 Simulator 中的 app, 或者做一些环境变量的控制,这在自动化测试中是非常重要的。

你只要使用一下命令即可实现:

xcrun simctl launch --console booted <BUNDLE ID> <YOUR ARGUMENTS>

9、 通过 Bundle ID 获取 app 的 info 信息

有时候,我们想获得 app 的 更多的信息,可以通过 simctl appinfo 获得以下格式的信息:

{
   ApplicationType = User;
   Bundle = <PATH TO APP FILE>;
   BundleContainer = <PATH TO FOLDER WITH APP FILE>;
   CFBundleDisplayName = TestiOSApp;
   CFBundleExecutable = TestiOSApp;
   CFBundleIdentifier = "com.ahmed.app.TestiOSApp";
   CFBundleName = TestiOSApp;
   CFBundleVersion = 1;
   DataContainer = <PATH TO YOUR DATA>;
   GroupContainers =     {
   };
   Path = <PATH TO APP FILE>;
   SBAppTags =     (
   );
}

执行以下命令你就能获取以上格式的信息:

xcrun simctl appinfo booted <BUNDLE ID>

最后......

iOS Simulator 功能强大,是我们开发中必备的神器,当你掌握了它的相关细节以及使用技巧可以极大的提高你的开发效率。当然,作为一个有追求的 iOS 工程师,你更应该去挖掘它那些鲜为人知的功能,然后记得要告诉我哟😊!

参考

iOS Simulator on Steroids: Tips & Tricks in Xcode 9

水平有限,如有疏漏,望指正
欢迎交流,欢迎 star CNKCQ
遗人🌹,手有余香 blog

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容