IOS使用命令行在模拟器上安装运行app

转载 2015年07月06日 18:37:39

While Apple doesn’t provide an “official” way to launch an app in the iOS Simulator from the command line, there’s a few private tricks we can employ. First, the iOS Simulator app itself is located in:

/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications

But running that will only bring up the simulator in the last state it was in. How do we install an application in there and then run it automatically like Xcode does?

The trick is in the private iPhoneSimulatorRemoteClient.framework.
Now before you freak out, don’t worry! This isn’t something you compile your app against and submit to the store. This is a framework that we can use on our local machines to control the simulator just like Xcode does. The best part is, all the work of hooking
into it has been done for us!

There are two command line utilities I’ve seen that do this best. I used to useiphonesim and
it works great. But I recently switched to WaxSim since
it also records video of the simulator in motion. They both are functionally equivalent and small enough to understand. It’s your call, but I recommend the later.1

THE RECIPE

First, we need to pull down the WaxSim source and install it. Run the following:

git clone https://github.com/square/WaxSim
cd WaxSim
xcodebuild install DSTROOT=/

Now, you have the waxsim binary in /usr/local/bin which
should already be on your path. You can now invoke your application in the simulator like this:

waxsim [application path]

So, where is your application path? That depends on how you build it! First, we’ll need to do a quick walkthrough about building Xcode projects from the command line.

cd into your iOS application’s project directory (the one with the
Xcode project file). Then, invoke the xcodebuild command like so:

xcodebuild -sdk iphonesimulator5.0 \
           -arch i386 \
           install DSTROOT=/tmp/MyApp

For most projects, this command will work just fine. However, if you have an explicit workspace set up, you’ll need to use man
xcodebuild
 to learn how to teach thexcodebuild binary to interpret
your setup. There’s a lot of good stuff in there about how to specify whether to build for the simulator or device, too.

The DSTROOT environment variable on the command above is the most important
part. DSTROOT is used by Xcode when run with the “install” build action
to figure out where to put the results. We’re specifying /tmp/MyApp explicitly
so that we know where the resulting application bundle will be to hand in to waxsim.

Once the xcodebuild command completes, you should now have an *.app
bundle in /tmp/MyApp/Applications/[YourAppName].app. Of course, subtitute
your own application name in the path. Invoke waxsim and you’re up
and running:

waxsim /tmp/MyApp/Applications/[YourAppName].app

This runs the iPhone simulator with the latest SDK that waxsim is aware
of. Usewaxsim -h to find out other options like running the iPad simulator
or other using other available SDKs.

You can also record a low resolution video of the simulator like so

waxsim -v myvideo.mov /tmp/MyApp/Applications/[YourAppName].app

And now you’ll have myvideo.mov in the current directory. It’s a pretty
low res and stuttery video, probably not something you’d use for a promotional demo, but it’s a nice feature if you need to review results of automated testing workflows.

SCRIPT IT

So, for completeness sake, here’s a shell script that you can modify to build and run your application:

#!/bin/bash

# Tell bash to abort the script if any error happens
set -e

APPNAME=MyApp
DSTROOT=/tmp/MyApp

xcodebuild -sdk iphonesimulator5.0 \
           -arch i386 \
           install DSTROOT="$DSTROOT"

waxsim "$DSTROOT"/Applications/"$APPNAME".app

Drop this in your project directory and tweak to taste.

THE END!

So, there you have it. We’ve built the waxsim binary, learned briefly
how to build with xcodebuild, and learned how to launch your application
in the iOS simulator on demand and from the command line. Vive la Unix!

相关文章推荐

IOS使用命令行在模拟器上安装运行app

While Apple doesn’t provide an “official” way to launch an app in the iOS Simulator from the command...

命令行编译/安装/运行/卸载IOS APP

介绍在模拟器和真机环境下,使用命令行安装、卸载app的方法。

使用SecureCRT的SFTP命令行在WINDOWS与LINUX之间传输文件

背景:   有一台主机,安装了windows7,在其安装了virtualbox,然后安装了ubuntu虚拟机。在windows7上安装SecureCRT来ssh连接ubuntu虚拟机。一般在wind...

如何使用命令行在github搭建项目?

[转载地址]http://www.cnblogs.com/lijiayi/p/githubpages.html最近发现 github 改版了,已没有像原来的 Launch automatic page...

命令行下面创建Rhodes程序项目Hello World,编译并启动BlackBerry模拟器运行程序

================================================================== 启动DOS窗口,执行RhoStudio的Ruby命令创建程序...

命令行运行iphone模拟器以及运行Unit test

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 20.0px; font: 13.0px Arial} p.p2 {margin: 0.0px ...
  • mebusw
  • mebusw
  • 2011-07-19 15:07
  • 4082
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)