2013-04-30 20:45:23 +02:00
ios-deploy
2011-09-16 16:06:56 +02:00
==========
2014-11-14 08:47:50 +01:00
Install and debug iOS apps without using Xcode. Designed to work on un-jailbroken devices.
2011-09-16 16:06:56 +02:00
## Requirements
2015-05-13 00:38:03 +02:00
* Mac OS X. Tested on 10.10 Yosemite and iOS 8.3
* You need to have a valid iOS Development certificate installed.
* Xcode 6 or greater should be installed
2011-09-16 16:06:56 +02:00
2014-12-15 12:28:13 +01:00
## Installation
2015-05-13 00:38:03 +02:00
ios-deploy installation is made simple using the node.js package manager. If you use [Homebrew ](http://brew.sh/ ), install [node.js ](https://nodejs.org ):
```
2014-12-23 13:53:35 +01:00
brew install node
```
2014-12-15 12:28:13 +01:00
2015-05-13 00:38:03 +02:00
Now install ios-deploy with the [node.js ](https://nodejs.org ) package manager:
```
npm install -g ios-deploy
2014-12-15 12:28:13 +01:00
```
2015-05-13 00:38:03 +02:00
To install from source:
```
make install prefix=/usr/local
```
This will install ios-deploy in the `bin` folder of `/usr/local` , i.e. `/usr/local/bin`
2011-09-16 16:06:56 +02:00
## Usage
2014-11-14 08:24:51 +01:00
Usage: ios-deploy [OPTION]...
-d, --debug launch the app in GDB after installation
-i, --id < device_id > the id of the device to connect to
-c, --detect only detect if the device is connected
-b, --bundle < bundle.app > the path to the app bundle to be installed
-a, --args < args > command line arguments to pass to the app when launching it
-t, --timeout < timeout > number of seconds to wait for a device to be connected
-u, --unbuffered don't buffer stdout
-n, --nostart do not start the app when debugging
-I, --noninteractive start in non interactive mode (quit when app crashes or exits)
-L, --justlaunch just launch the app and exit lldb
-v, --verbose enable verbose output
-m, --noinstall directly start debugging without app install (-d not required)
2015-04-06 22:43:15 +02:00
-p, --port < number > port used for device, default: 12345
-r, --uninstall uninstall the app before install (do not use with -m; app cache and data are cleared)
2015-05-13 00:25:41 +02:00
-9, --uninstall_only uninstall the app ONLY. Use only with -1 < bundle_id >
2015-05-13 00:01:06 +02:00
-1, --bundle_id < bundle id > specify bundle id for list, upload, and uninstall_only
2014-11-14 08:24:51 +01:00
-l, --list list files
-o, --upload < file > upload file
-w, --download download app tree
-2, --to < target pathname > use together with up/download file/tree. specify target
2015-04-22 13:43:31 +02:00
-D, --mkdir < dir > make directory on device
-R, --rm < path > remove file or directory on device (directories must be empty)
2015-04-06 22:43:15 +02:00
-V, --version print the executable version
-e, --exists check if the app with given bundle_id is installed or not
2014-11-14 08:47:50 +01:00
## Examples
The commands below assume that you have an app called `my.app` with bundle id `bundle.id` . Substitute where necessary.
// deploy and debug your app to a connected device
ios-deploy --debug --bundle my.app
// deploy and launch your app to a connected device, but quit the debugger after
ios-deploy --justlaunch --debug --bundle my.app
// deploy and launch your app to a connected device, quit when app crashes or exits
ios-deploy --noninteractive --debug --bundle my.app
// Upload a file to your app's Documents folder
ios-deploy --bundle_id 'bundle.id' --upload test.txt --to Documents/test.txt
2015-04-06 22:43:15 +02:00
2014-11-14 08:47:50 +01:00
// Download your app's Documents, Library and tmp folders
ios-deploy --bundle_id 'bundle.id' --download --to MyDestinationFolder
// List the contents of your app's Documents, Library and tmp folders
ios-deploy --bundle_id 'bundle.id' --list
// deploy and debug your app to a connected device, uninstall the app first
ios-deploy --uninstall --debug --bundle my.app
2015-04-06 22:43:15 +02:00
// check whether an app by bundle id exists on the device (check return code `echo $?` )
ios-deploy --exists --bundle_id com.apple.mobilemail
2015-04-06 23:06:52 +02:00
// Download the Documents directory of the app *only*
ios-deploy --download=/Documents -bundle_id my.app.id --to ./my_download_location
2015-05-12 23:28:21 +02:00
// List ids and names of connected devices
ios-deploy -c
2015-05-13 00:01:06 +02:00
// Uninstall an app
ios-deploy --uninstall_only --bundle_id my.bundle.id
2015-04-06 23:06:52 +02:00
2011-09-16 16:06:56 +02:00
## Demo
2015-05-13 00:38:03 +02:00
The included demo.app represents the minimum required to get code running on iOS.
* `make demo.app` will generate the demo.app executable. If it doesn't compile, modify IOS_SDK_VERSION in the Makefile.
* `make debug` will install demo.app and launch a LLDB session.
2011-09-16 16:06:56 +02:00
## Notes
2014-11-14 08:47:50 +01:00
* With some modifications, it may be possible to use this without Xcode installed; however, you would need a copy of the relevant DeveloperDiskImage.dmg (included with Xcode). lldb would also run slower as symbols would be downloaded from the device on-the-fly.