7ca72695b6
Fixed the hang when the device is locked. When the device is locked, we get empty packets in the server. Now fixed by closing both the lldb and server sockets. Also after safequit, we need to detach to make the "justlaunch" option to be less error prone. Multiple bug fixes: 1. When multiple devices are connected, the detect was not listing all the devices ios-deploy -c -t 1 2. Fixes for issue #75 - non-interactive mode broken lldb and ios-deploy may still be running ios-deploy -b ... -d -I -L 3. Fixes for issue #60 - -L option not working properly ios-deploy will not quit or sometimes hang 4. When multiple devices are connected, cannot use -i option to specify the device ios-deploy -b ... -i -d -I -L 5. Allow timeout when downloading |
||
---|---|---|
resources/buildbox | ||
.gitignore | ||
CONTRIBUTING.md | ||
demo.c | ||
Entitlements.plist | ||
Info.plist | ||
ios-deploy.c | ||
LICENSE | ||
Makefile | ||
MobileDevice.h | ||
package.json | ||
README.md | ||
ResourceRules.plist |
ios-deploy
Install and debug iPhone apps without using Xcode. Designed to work on unjailbroken devices.
Requirements
- Mac OS X. Tested on Snow Leopard only.
- You need to have a valid iPhone development certificate installed.
- Xcode must be installed, along with the SDK for your iOS version.
Usage
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
Demo
- The included demo.app represents the minimum required to get code running on iOS.
make install
will install demo.app to the device.make debug
will install demo.app and launch a GDB session.
Notes
- 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). GDB would also run slower as symbols would be downloaded from the device on-the-fly.
Listing Device Ids
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}'