Xcode 9 —进阶的 iOS Simulator

前言

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

正文

一、 在 Xcode 的全屏模式下使用 Simulatorios

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

这个功能并非对全部人默认开放的,若是不幸你的 Xcode 没有默认开启这个功能也不要灰心,咱们能够经过打开 Apple Internal menu 来启用这个功能,经过 Apple Internal menu 你能挖掘出 Simulator 的更多新特性。那么问题来了,怎么开启 Apple Internal menu 呢?首先,在更目录里建立 AppleInternal 文件夹,而后重启 Simulator:github

internal-menu.png
internal-menu.png

cd ~/
sudo mkdir /AppleInternal复制代码

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

二、同时打开多个模拟器app

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

三、拖动放大或缩小 Simulator测试

在 Xcode 9 以前, 咱们须要经过 command + 一、二、三、4 来对 Simulator 的大小进行调整,Xcode 9 之后就不用这么麻烦,咱们能够经过拖拽来控制模拟器的大小了。若是您有多个模拟器打开,这是很是有用的一些细节,它能够帮助你有效地组织工做空间。url

四、Simulator 屏幕捕捉spa

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

执行 command 的命令,就能够获得咱们想要录制的视频了。

xcrun simctl io booted recordVideo --type=mp4 <PATH TO VIDEO FILE>复制代码

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

五、Finder 和 Simulator 共享文件

如今,Simulator 具备 Finder 扩展,咱们能够直接从 Finder 窗口共享文件给 Simulator 。

固然,若是你使用的是旧版本的 Xcode ,咱们也可使用 simctl 命令来进行相似操做:

xcrun simctl addmedia booted <PATH TO MEDIA FILE>复制代码

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

六、 经过 Simulator 打开 URLs
经过 simctl 也能够实现 Simulator 打开 URLs, 因此你也能够在旧的模拟器上打开自定义的 URL。

执行下面的 shell 命令

xcrun simctl openurl booted <URL>复制代码

Apple 官方文档 check out the documentation

七、快速打开 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复制代码

八、经过 Command 打开 Simulator 中的 APP
有了 simctl ,你能够经过 Command 启动 Simulator 中的 app, 或者作一些环境变量的控制,这在自动化测试中是很是重要的。

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

xcrun simctl launch --console booted <BUNDLE ID> <YOUR ARGUMENTS>复制代码

九、 经过 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

相关文章
相关标签/搜索