提升 iOS 开发效率! Xcode 9 内置模拟器的9个技巧

Posted Cocoa开发者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提升 iOS 开发效率! Xcode 9 内置模拟器的9个技巧相关的知识,希望对你有一定的参考价值。

ios模拟器是在开发任意iOS应用程序过程中不可或缺、无法被忽视的一个部分。值得一提的是,Xcode 9的新模拟器带来了很多有用的功能,能够提升你的开发效率。对比历代模拟器的更新,这次有了很重大的改变。


所以让我们开始这篇教程的重点吧,本文会列出我在新iOS模拟器中发现的新功能(一些技巧也可以在旧的模拟器中使用)。


1. 在全屏模式下使用Xcode模拟器


当你使用13寸的 Mac 时,Xcode 的全屏模式是唯一救星,以前不能在全屏模式下使用Xcode模拟器,但现在开始可以使用了。


从Xcode 9 beta 3开始,这个功能将会是系统预设的,所以你无需做任何事情来启用它。


更新:可能某些人预设情况下是关闭此功能的,不用担心,可以随时通过 Apple Internal 选单启用此功能。如果想在新的模拟器中探索更多的秘密功能,可以启用Apple 隐藏的内部选项。



所以,你需要在根目录中创建一个名为“AppleInternal”的空文件夹,请执行下面的命令并重新启动模拟器:


sudo mkdir /AppleInternal


新的选项中项目应该会显示出来 ✌️


注意:我是从Xcode 9 beta 3 的模拟器上测试这个步骤,如果你还没有下载,请在此。


2. 一次打开多个模拟器


还记得在不同的模拟器上测试应用程序的挫败感吗?在此之前,你一次只能打开一个模拟器,虽然有许多“hacks”教你如何在旧版本的Xcode中打开多个iOS模拟器。但是在Xcode 9当中,这个功能是直接可以使用的。


3. 缩放模拟器就像调整视窗大小一样简单


在Xcode 9之前,我们只有透过”Scale options”才能调整模拟器的大小,现在Apple终于开放调整模拟器窗口的大小。如果一次有多个模拟器打开,这个小细节的调整这是非常有用,可以帮助你有效地组织工作空间。


4. 记录模拟器的视频


在Xcode 9官方的”What’s new”文档中,苹果声称现在可以录制模拟器屏幕视频,即使在旧版本中,只要使用simctl也可以做到,在界面上找不到地方可以启用视频录制(除了iOS 11中的内置屏幕录制)。

要获取视频档案,请执行以下代码:


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


booted – 表示simctl选择当前启动的模拟器,如果你有多个已启动的模拟器,simctl将选择当前正在操作的那一个模拟器。


5. 使用 Finder 共享文件到模拟器


现在,模拟器有了 Finder 扩展功能,你可以直接从 Finder 窗口共享文件。

你也可以执行以下simctl命令,使用图像/视频文件进行类似操作:


xcrun simctl addmedia booted <PATH TO MEDIA FILE>


很高兴有这样的操作方法,但是对我而言,将文件拖放至模拟器窗口似乎快很多。


6. 模拟器上打开URL


这个也能使用simctl,所以你也可以在旧版本的模拟器上打开自定义的URL schemes。

拖拽

以你指定的任何URL执行以下命令:


xcrun simctl openurl booted <URL>


关于Apple所有URL schemes的列表,请查看.


7. 快速找到应用程序的文件夹


再来介绍一个simctl的命令,你可以使用单个命令在文件系统上获取应用程序的资料夹,只需要知道应用程序的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 Line Args)在模拟器中启动应用程序


使用simctl,你也可以从终端机上启动应用程序,并在其中传递一些命令列参数(甚至可以设置一些环境变量)。如果你想在应用程序中插入一些除错行为,这将非常有用。

执行下列命令可以让你完成这项任务:


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


你可以从CommandLine.arguments获取这些命令行参数(这里是文件的链接)。


9. 透过Bundle ID获取完整的应用程序消息


有时找出应用程序的档案或暂存数据位于文件系统上的位置很有用,如果你需要比simctl get_app_container更全面的资讯,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模拟器是一个非常强大的工具,只要知道所有的细节和技巧,它可以让你的开发过程加快许多,身为一个好的工程师,熟悉你的开发工具是必然的。


在Flawless中,iOS模拟器对我们来说非常重要,这个产品是一个iOS模拟器插件,允许工程师在模拟器内部检查任何设计,对于新Xcode 9和Simulator版本的推出,我无以言表,已经等不及公开版本推出!我们可以实现更多有用的功能来保持iOS应用程序的视觉层次感。


另外,如果我在本文中错过了一些重要的内容,欢迎读者可以在评论中分享想法,相信将可以让本文增添更多的实用开发技巧 。


YouTube 视频由于被墙,没做搬运,如有需要可自行去原文查看。


翻译链接:


以上是关于提升 iOS 开发效率! Xcode 9 内置模拟器的9个技巧的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 9 —进阶的 iOS Simulator

iOS:Xcode代码块,提升敲代码的效率

UITableViewCell.textLable.text 没有出现在 xcode 9.2 的 iOS11.2 模拟器上

xcode安装

如何使用 Xcode 9.3 在 iOS 开发设备中检查 [NSUserDefaults standardUserDefaults] [重复]

Xcode 7.1 iOS 9.1 模拟器透明