Install and debug iPhone apps without using Xcode. Designed to work on unjailbroken devices.
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 -g, --gdbargs <args> extra arguments to pass to GDB when starting the debugger -x, --gdbexec <file> GDB commands script file -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) -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) -1, --bundle_id <bundle id> specify bundle id for list and upload -l, --list list files -o, --upload <file> upload file -2, --to <target pathname> use together with upload file. specify target for upload -V, --version print the executable version
make install
will install demo.app to the device.make debug
will install demo.app and launch a GDB session.Device Ids are the UDIDs of the iOS devices. From the command line, you can list device ids this way:
system_profiler SPUSBDataType | sed -n -e '/iPod/,/Serial/p' | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'