不必多言,Xcode 慢得很是众所周知的了。更甚者是,我有时发觉自己太依赖于 Cocoa Touch 的自动完成功能了,这可是个天使和魔鬼的结合体!

故此我开始去寻觅一个替代的流程来通过命令行来实现我需要的功能。结果是相当让人困惑:有一些文章建议用 xctool 和 xcodebuild 来构建 Xcode 目标应用,然后用 ios-sim,simctrl 和 instruments 来管理和运行模拟器,但大部分这些信息都是老掉牙且零碎不堪的。

值得庆幸的是,我最终还是通过九牛二虎之力把这些琐碎的信息拼凑再一起来达到我自己的目的。那就是,假如现在有一个通过 Xcode 6 建立的 iOS 项目,我想要做到如下几点:
-构建目标应用
-启动一个 iOS 模拟器
-把该 app 应用安装到上面启动好的模拟器上面
-运行安装好的 app
-从模拟器上卸载掉该 app
那么我想把这些所有事情都通过命令行来实现,也就是说把 Xcode 给关闭掉的情况来完成这些工作。

在我们继续往下走之前,你需要先收集以下的一些基本信息:
-你所选择的通过 Xcode 进行构建的 scheme(比如 “AwesomeApp")
-你的应用包 id(比如"com.awesome.app")
-已经创建好的模拟器的名称 (比如"iPhone6 Plus")。如果你不想从 Xcode 的 GUI 中获取到这些信息,你大可以通过查看命令 xcrun simtl list 的输出来进行收集
准备好了吗?那我们就开始吧!

(注意以下的命令需要在你的项目文件夹下面运行)

构架目标应用
xcodebuild -scheme AwesomeApp -destination 'platform=iphonesimulator,name=iPhone 6 Plus' -derivedDataPath build

启动运行模拟器
xcrun instruments -w 'iPhone 6 Plus'

安装应用包(当然你是需要在通过以上命令构建好目标应用和启动完成模拟器之后来运行此命令了)
xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/AwesomeApp.app

启动模拟器中已经安装好的应用(在该应用已经通过如上命令安装好之后)
xcrun simctl launch booted com.awesome.app

删除该安装包
xcrun simctl uninstall booted com.awesome.app
如果你需要构建的是一个相当复杂的项目的话,你其实是需要给构建命令指定不少的一些参数的。具体请阅读 RTFMs(Read The Fucking Manuals:阅读那该死的使用手册!)。如果你是像我一样是个懒虫的话,请通过编写一些脚本来自动完成这些步骤吧。

转载请尊重原创/译
作者:天地会珠海分舵
微信资源分享公众号:techgogogo 或扫描图片二维码


↙↙↙阅读原文可查看相关链接,并与作者交流