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

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

值得庆幸的是,我最终还是通过九牛二虎之力把这些琐碎的信息拼凑再一起来达到我自己的目的。那就是,假如现在有一个通过Xcode 6建立的iOS项目,我想要做到如下几点:

  1. 构建目标应用
  2. 启动一个iOS模拟器
  3. 把该app应用安装到上面启动好的模拟器上面
  4. 运行安装好的app
  5. 从模拟器上卸载掉该app

那么我想把这些所有事情都通过命令行来实现,也就是说把Xcode给关闭掉的情况来完成这些工作。

在我们继续往下走之前,你需要先收集以下的一些基本信息:

  1. 你所选择的通过Xcode进行构建的scheme(比如“AwesomeApp")
  2. 你的应用包id(比如"com.awesome.app")
  3. 已经创建好的模拟器的名称(比如"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:阅读那该死的使用手册!)。如果你是像我一样是个懒虫的话,请通过编写一些脚本来自动完成这些步骤吧。

-----------完------------------

英文原文:http://dduan.net/post/2015/02/build-and-run-ios-apps-in-commmand-line/

最新文章

  1. Python 局部变量与全局变量
  2. 解决Window Azure: Failed to start Development Storage: the SQL Server instance ‘localhost\SQLExpress’ could not be found.
  3. windows环境下修改Mysql的root密码
  4. spring mvc mybatis 搭建 配置文件信息
  5. HDU3466背包01
  6. hdu 4745 Two Rabbits
  7. Python练习册--PIL处理图片之加水印
  8. 跟着Android学设计模式:代理(proxy)
  9. U盘读写速度测试
  10. ms sql 获取字符串首字母
  11. ffmpeg.exe下载
  12. hibernate框架学习之数据模型-POJO
  13. Day8--------------RPM包管理
  14. Docker:Docker打包Web API成镜像并上传到Docker Hub(2)
  15. Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'
  16. 冲刺博客NO.3
  17. ARC 特性
  18. Unity下的开发框架--适应web和微端游戏异步资源请求的框架
  19. MySQL MHA搭建
  20. sea.js模块化工具

热门文章

  1. hdu4499 Cannon (DFS+回溯)
  2. Jquery在线咨询地址
  3. 【翻译】Ext JS最新技巧——2014-10-30
  4. HDU 1541 Stars (树状数组)
  5. 【Java编码准则】の #02不要在client存储未加密的敏感信息
  6. WebService之CXF注解报错(一)
  7. Android MenuItem 设置文本颜色-TextColor设置
  8. 一旦rhel5.8造成只读文件系统ORA-00354: corrupt redo log block header
  9. VisualStudio 怎么使用Visual Leak Detector
  10. 一个SQL面试题