Install and debug iPhone apps from the command line, without using Xcode

Overview

Build Status

ios-deploy

Install and debug iOS apps from the command line. Designed to work on un-jailbroken devices.

Requirements

  • macOS
  • You need to have a valid iOS Development certificate installed
  • Xcode (NOT just Command Line Tools!)

Tested Configurations

The ios-deploy binary in Homebrew should work on macOS 10.0+ with Xcode7+. It has been most recently tested with the following configurations:

  • macOS 10.14 Mojave, 10.15 Catalina and preliminary testing on 11.0b BigSur
  • iOS 13.0 and preliminary testing on iOS 14.0b
  • Xcode 11.3, 11.6 and preliminary testing on Xcode 12 betas
  • x86 and preliminary testing on Arm64e based Apple Macintosh Computers

Roadmap

See our milestones.

Development

The 1.x branch has been archived (renamed for now), all development is to be on the master branch for simplicity, since the planned 2.x development (break out commands into their own files) has been abandoned for now.

Installation

If you have previously installed ios-deploy via npm, uninstall it by running:

sudo npm uninstall -g ios-deploy

Install ios-deploy via Homebrew by running:

brew install ios-deploy

Testing

Run:

python -m py_compile src/scripts/*.py && xcodebuild -target ios-deploy && xcodebuild test -scheme ios-deploy-tests

Usage

Usage: ios-deploy [OPTION]...
  -d, --debug                  launch the app in lldb after installation
  -i, --id <device_id>         the id of the device to connect to
  -c, --detect                 list all connected devices
  -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
  -s, --envs <envs>            environment variables, space separated key-value pairs, 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
  -N, --nolldb                 start debugserver only. do not run lldb. Can not be used with args or envs options
  -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)
  -A, --app_deltas             incremental install. must specify a directory to store app deltas to determine what needs to be installed
  -p, --port <number>          port used for device, default: dynamic
  -r, --uninstall              uninstall the app before install (do not use with -m; app cache and data are cleared) 
  -9, --uninstall_only         uninstall the app ONLY. Use only with -1 <bundle_id> 
  -1, --bundle_id <bundle id>  specify bundle id for list and upload
  -l, --list[=<dir>]           list all app files or the specified directory
  -o, --upload <file>          upload file
  -w, --download[=<path>]      download app tree or the specified file/directory
  -2, --to <target pathname>   use together with up/download file/tree. specify target
  -D, --mkdir <dir>            make directory on device
  -R, --rm <path>              remove file or directory on device (directories must be empty)
  -X, --rmtree <path>          remove directory and all contained files recursively on device
  -V, --version                print the executable version 
  -e, --exists                 check if the app with given bundle_id is installed or not 
  -B, --list_bundle_id         list bundle_id 
  -W, --no-wifi                ignore wifi devices
  -C, --get_battery_level      get battery current capacity 
  -O, --output <file>          write stdout to this file
  -E, --error_output <file>    write stderr to this file
  --detect_deadlocks <sec>     start printing backtraces for all threads periodically after specific amount of seconds
  -f, --file_system            specify file system for mkdir / list / upload / download / rm
  -k, --key                    keys for the properties of the bundle. Joined by ',' and used only with -B <list_bundle_id> and -j <json>
  -F, --non-recursively        specify non-recursively walk directory
  -j, --json                   format output as JSON

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, debug and pass environment variables to a connected device
ios-deploy --debug --envs DYLD_PRINT_STATISTICS=1 --bundle my.app

// deploy and debug your app to a connected device, skipping any wi-fi connection (use USB)
ios-deploy --debug --bundle my.app --no-wifi

// 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

// deploy your app to a connected device using incremental installation
ios-deploy --app_deltas /tmp --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

// 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

// check whether an app by bundle id exists on the device (check return code `echo $?`)
ios-deploy --exists --bundle_id com.apple.mobilemail

// Download the Documents directory of the app *only*
ios-deploy --download=/Documents --bundle_id my.app.id --to ./my_download_location

// List ids and names of connected devices
ios-deploy -c

// Uninstall an app
ios-deploy --uninstall_only --bundle_id my.bundle.id

// list all bundle ids of all apps on your device
ios-deploy --list_bundle_id

// list the files in cameral roll, a.k.a /DCIM
ios-deploy -f -l/DCIM

// download the file in /DCIM
ios-deploy -f -w/DCIM/100APPLE/IMG_001.jpg

// remove the file /DCIM
ios-deploy -f -R /DCIM/100APPLE/IMG_001.jpg

// make directoly in /DCIM
ios-deploy -f -D/DCIM/test

// upload file to /DCIM
ios-deploy -f -o/Users/ryan/Downloads/test.png -2/DCIM/test.png

// get more properties of the bundle
ios-deploy -B -j --key=UIFileSharingEnabled,CFBundlePackageType
ios-deploy -B -j --key=UIFileSharingEnabled --key=CFBundlePackageType

Demo

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.

Notes

  • --detect_deadlocks can help to identify an exact state of application's threads in case of a deadlock. It works like this: The user specifies the amount of time ios-deploy runs the app as usual. When the timeout is elapsed ios-deploy starts to print call-stacks of all threads every 5 seconds and the app keeps running. Comparing threads' call-stacks between each other helps to identify the threads which were stuck.

License

ios-deploy is available under the provisions of the GNU General Public License, version 3 (or later), available here: http://www.gnu.org/licenses/gpl-3.0.html

Error codes used for error messages were taken from SDMMobileDevice framework, originally reverse engineered by Sam Marshall. SDMMobileDevice is distributed under BSD 3-Clause license and is available here: https://github.com/samdmarshall/SDMMobileDevice

Comments
  • Command fails: npm install ios-deploy -g

    Command fails: npm install ios-deploy -g

    OSX 10.10.2. ios-deploy: command not found Xcode 6.2 (Build 6C131e) /Applications/Xcode.app/Contents/Developer

    gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) Target: x86_64-apple-darwin14.1.0 Thread model: posix

    clang --version Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) Target: x86_64-apple-darwin14.1.0 Thread model: posix

    Doing an upgrade from Cordova iOS 3.5. Updated cordova to 4.3.

    Running command (as root):

    npm install ios-deploy -g

    Error:

    [email protected] preinstall /usr/local/lib/node_modules/ios-deploy make ios-deploy

    shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied make: getcwd: Permission denied rm -rf .app demo ios-deploy shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied gcc -ObjC -g -o ios-deploy -framework Foundation -framework CoreFoundation -framework MobileDevice -F/System/Library/PrivateFrameworks ios-deploy.c clang: error: unable to make temporary file: Permission denied make: ** [ios-deploy] Error 1 npm ERR! [email protected] preinstall: make ios-deploy npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the [email protected] preinstall script. npm ERR! This is most likely a problem with the ios-deploy package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! make ios-deploy npm ERR! You can get their info via: npm ERR! npm owner ls ios-deploy npm ERR! There is likely additional logging output above.

    npm ERR! System Darwin 14.1.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "ios-deploy" "-g" npm ERR! cwd /usr/local/bin npm ERR! node -v v0.10.30 npm ERR! npm -v 1.4.21 npm ERR! code ELIFECYCLE npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /usr/local/bin/npm-debug.log npm ERR! not ok code 0

    Have tried switching from gcc to clang. Both produce the same error.

    I had tried to fix permissions where it had indicated. The script successfully creates (and later removes) the directory:

    /usr/local/lib/node_modules/ios-deploy

    But can't seem to write inside the directory it creates (even as root). Unless there's another location it is trying to access?

    opened by doomsy 109
  • ERROR: Assertion Failed

    ERROR: Assertion Failed

    I get the following error whenever I try to deploy anything to a device:

    Assertion failed: (AMDeviceStartService(device, CFSTR("com.apple.debugserver"), &gdbfd, NULL) == 0), function start_remote_debug_server, file ios-deploy.c, line 524.

    /Developer/Projects/Pathem/App/Platforms/ios/cordova/run: line 125: 15533 Abort trap: 6 ios-deploy -d -b "$DEVICE_APP_PATH"

    I'm using the most recent version of ios-deploy and cordova (3.1.0).

    bug 
    opened by camdagr8 57
  • unable to locate DeviceSupport directory

    unable to locate DeviceSupport directory

    When i run the command ionic cordova run ios --device, it fails with the following error message:

    2017-06-08 14:09:23.954 ios-deploy[8886:63961] [ !! ] Unable to locate DeviceSupport directory. This probably means you don't have Xcode installed, you will need to launch the app manually and logging output will not be shown! Error: Error code 253 for command: ios-deploy with args: --justlaunch,--no-wifi,-d,-b,/Users/robert/code/bitscanapp/platforms/ios/build/device/bitscanapp.app

    The full command ionic/cordova tries to execute: 'ios-deploy with args: --justlaunch,--no-wifi,-d,-b,/Users/robert/code/bitscanapp/platforms/ios/build/device/bitscanapp.app'

    What could be the issue? I reinstalled cordova, ionic, npm and xcode..

    System Specs

    Please run the commands below in your Terminal.app and include it in the issue. Check when done and include results below.

    • [x] 1. system_profiler SPSoftwareDataType system_profiler SPSoftwareDataType Software:

      System Software Overview:

      System Version: macOS 10.12.4 (16E195)
      Kernel Version: Darwin 16.5.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: MacBook Pro van Robert
      User Name: Robert Baelde (robert)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 44 minutes
      
    • [x] 2. ios-deploy -V 1.9.1

    • [x] 3. xcodebuild -version Xcode 8.3.3 Build version 8E3004b

    • [x] 4. xcode-select --print-path /Applications/Xcode.app/Contents/Developer

    • [x] 5. gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 8.1.0 (clang-802.0.42) Target: x86_64-apple-darwin16.5.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

    • [x] 6. lldb --version lldb-370.0.42 Swift-3.1

    bug 
    opened by Robertbaelde 46
  • enhancement on python run_command

    enhancement on python run_command

    1. In the justlaunch scenario, the python script should move forward only if it launches the app successfully. If it fails, it should propagate the exit code out to notify the the users to handle the failure (perhaps relaunch?), instead of being trapped in the following loop in the safequit method.
    2. The changes aim to solve the hanging issue #189 of ios-deploy --justlaunch --debug --bundle my.app.
    3. I only tested the changes in the -justlaunch scenario.
    opened by hackjutsu 44
  • Ios-deploy install doesn't work

    Ios-deploy install doesn't work

    Hi,

    Command line arguments than I used for ios-deploy.

    sudo npm install -g ios-deploy --unsafe-perm --allow-root

    Expected behavior

    Install ios-deploy global via NPM

    Actual behavior.

    Ios-deploy not installed and get the error 65:

    /bin/sh -c /usr/local/lib/node_modules/ios-deploy/build/ios-deploy.build/Release/ios-deploy.build/Script-C0CD3D981F59D20100F954DB.sh cp: /System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices: No such file or directory

    ** BUILD FAILED **

    The following build commands failed: PhaseScriptExecution Run\ Script build/ios-deploy.build/Release/ios-deploy.build/Script-C0CD3D981F59D20100F954DB.sh (1 failure) npm ERR! code ELIFECYCLE npm ERR! errno 65 npm ERR! [email protected] preinstall: ./src/scripts/check_reqs.js && xcodebuild npm ERR! Exit status 65 npm ERR! npm ERR! Failed at the [email protected] preinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in: npm ERR! /Users/vinicius/.npm/_logs/2018-06-20T10_50_13_426Z-debug.log

    Steps to reproduce the problem

    I run the command: npm install -g ios-deploy

    System Specs

    • [x] 1. system_profiler SPSoftwareDataType System Version: macOS 10.13.5 (17F77) Kernel Version: Darwin 17.6.0 Boot Volume: Macintosh HD Boot Mode: Normal Computer Name: Mac mini de Vinicius User Name: Vinicius Ribeiro (vinicius) Secure Virtual Memory: Enabled System Integrity Protection: Enabled Time since boot: 36 minutes
    • [ ] 2. ios-deploy -V -bash: ios-deploy: command not found
    • [x] 3. xcodebuild -version Xcode 9.4.1 Build version 9F2000
    • [x] 4. xcode-select --print-path /Applications/Xcode.app/Contents/Developer
    • [x] 5. gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 9.1.0 (clang-902.0.39.2) Target: x86_64-apple-darwin17.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
    • [x] 6. lldb --version lldb-902.0.79.7 Swift-4.1
    bug 
    opened by vinigabriel 43
  • npm install of ios-deploy fails with

    npm install of ios-deploy fails with "ld: framework not found MobileDevice" on macOS Catalina

    Expected behavior

    can install ios-deploy with npm

    Actual behavior

    install ios-deploy fails with error

    ld: framework not found MobileDevice
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    see attached logs for details 2019-10-21T21_18_50_387Z-debug.log

    Steps to reproduce the problem

    Install iso-deploy using npm

    sudo npm install -g -unsafe-perm=true ios-deploy
    

    System Specs

    Please run the commands below in your Terminal.app and include it in the issue. Check when done and include results below.

    • [x] 1. system_profiler SPSoftwareDataType Software:

      System Software Overview:

      System Version: macOS 10.15 (19A603)
      Kernel Version: Darwin 19.0.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: macminimdd
      User Name: mdd (mdd)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 2:07
      
    • [ ] 2. ios-deploy -V n/a. cannot install ios-deploy

    • [x] 3. xcodebuild -version Xcode 11.1 Build version 11A1027

    • [x] 4. xcode-select --print-path /Applications/Xcode.app/Contents/Developer

    • [x] 5. gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 11.0.0 (clang-1100.0.33.8) Target: x86_64-apple-darwin19.0.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

    • [x] 6. lldb --version lldb-1100.0.28.19 Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7)

    opened by michelleangela 36
  • "Error: the platform is not currently connected" with XCode 5.1

    I think this has to do with lldb being updated:

    lldb --version lldb-310.2.36

    My error message is as follows:

    (lldb) run Executing commands in '/tmp/fruitstrap-lldb-prep-cmds-'. (lldb) platform select remote-ios --sysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/* Platform: remote-ios Connected: no SDK Path: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/*" (lldb) target create "/Users/jkingyens/recur/platforms/ios/build/device/Recur.app" Current executable set to '/Users/jkingyens/recur/platforms/ios/build/device/Recur.app' (armv7). (lldb) script fruitstrap_device_app="/private/var/mobile/Applications/6D53CF72-AD0D-4632-AB4E-DB75A8DB2B03/Recur.app" (lldb) script fruitstrap_connect_url="connect://127.0.0.1:12345" (lldb) script fruitstrap_handle_command="command script add -s asynchronous -f fruitstrap_.fsrun_command run" (lldb) command script import "/tmp/fruitstrap_.py" error: the platform is not currently connected

    bug 
    opened by jkingyens 33
  • 1.10.0-beta testing thread

    1.10.0-beta testing thread

    Pre-release Release Notes: https://github.com/ios-control/ios-deploy/releases/tag/1.10.0-beta.2

    Please add your test results or issues to this discussion.

    If you filed a new issue, paste it here so I can go and tag the 1.10.0 milestone to it. Please refer to the original PR that the bug originated from if you can (see link in the Release Notes).

    Install: npm install ios-deploy@beta

    beta 
    opened by shazron 32
  • cp: /System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices: No such file or directory

    cp: /System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices: No such file or directory

    System Software Overview:

      System Version: macOS 10.13.5 (17F77)
      Kernel Version: Darwin 17.6.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: jack的MacBook Pro
      User Name: jack (jack)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 4 days 20:36   
    
    bug 
    opened by CoderDuMeng 30
  • Unable to find bundle with id

    Unable to find bundle with id

    ios-deploy -B

    com.xiami.spark com.opera.Coast com.xunlei.ithunder

    ios-deploy -l --bundle_id "com.xunlei.ithunder"

    [....] Waiting for iOS device to be connected [....] Using iPhone 6s 'mingx' (41215e403df7610ec8ff258b5e13a06500afd1bc). 2016-07-19 16:09:13.338 ios-deploy[22734:1098163] [ !! ] Unable to find bundle with id: com.xunlei.ithunder

    bug 
    opened by gaecom 29
  • ios-deploy installing over both USB and WiFi

    ios-deploy installing over both USB and WiFi

    Even though the device is detected over USB and installation is initiated and completed over USB, after installation and entry into the debug phase, ios-deploy will detect the device over WIFI subsequently install the app over the air, even though it had just done so over USB. This also seems to step on any attempt to engage the debugger over USB. This only happens when WiFi is turned on, on the device. Seems like a bug that a duplicate install would happen. Specifying the device identifier with -i doesn't change the outcome. ios-deploy -c only lists one device, connected via USB.

    bug 
    opened by paulshapiro 27
  •  ios-deploy --debug Incomplete log display

    ios-deploy --debug Incomplete log display

    ios-deploy -V:1.11.4 Xcode 12.5.1 Build version 12E507 hi~ When I debug with iOS deploy --debug, the output log is incomplete. What is the problem?

    image

    Hope to get an answer,tanks~

    opened by yanhongyan419 0
  • I can't download the files from iphone by ios-deploy

    I can't download the files from iphone by ios-deploy

    Include the command line arguments you used for ios-deploy.

    install_bundle cmd: ios-deploy -W --id {id} --bundle /Users/jenkins/Jenkins_Home/Workspace/workspace/Test.app install successfully

    push file to app:
    ios-deploy -W --id {id} --upload alexhua_gestures_1280_720.yuv --to /Documents/input/alexhua_gestures_1280_720.yuv --bundle_id {bundle_id}

    ios-deploy -W --id {id} --upload video_vbg_quality_gating_@alexhua_gestures_1280_720@[email protected] --to /Documents/video_vbg_quality_gating_@alexhua_gestures_1280_720@[email protected] --bundle_id {bundle_id}

    push file successfully

    create_dir_in_device: ios-deploy -W --id {id} --mkdir /Documents/output --bundle_id {bundle_id}

    make directory successfully

    run_app_cmd: ios-deploy -L -W -m --id {id} -b Test.app --args "--mpt --trace_level 3 --pipeline_file /Documents/video_vbg_quality_gating_@alexhua_gestures_1280_720@[email protected]"

    run app successfully

    pull output from device pull_cmd: ios-deploy -W --id {id} --download=/Documents/output --to /video_vbg/video_vbg_quality_gating_@alexhua_gestures_1280_720@[email protected] --bundle_id {bundle_id}

    pull file succeeded.

    So the problem is: didn't get any file on output under this folder.

    Expected behavior

    We should get files by pull command. It should have the mask file(1M),log file(47K), dump file(6k)

    Actual behavior.

    It didn't get anything. But the second run is work. We also check the device log is also work.

    Steps to reproduce the problem

    Actually, it can't reproduce, but we met this issue sometimes. We don't know how to handle this issue.

    System Specs

    Please run the commands below in your Terminal.app and include it in the issue. Check when done and include results below.

    device: iphone6s, ios: 14.7

    The version: (base) MACMINI-SJC-DEV2:MPTTEMP jenkins$ ios-deploy -V 1.11.3 (base) MACMINI-SJC-DEV2:MPTTEMP jenkins$ sw_vers -productVersion 11.4 (base) MACMINI-SJC-DEV2:MPTTEMP jenkins$ xcodebuild -version Xcode 12.5 Build version 12E262 (base) MACMINI-SJC-DEV2:MPTTEMP jenkins$ xcode-select --print-path /Applications/Xcode.app/Contents/Developer (base) MACMINI-SJC-DEV2:MPTTEMP jenkins$ gcc --version shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 12.0.5 (clang-1205.0.22.9) Target: x86_64-apple-darwin20.5.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin (base) MACMINI-SJC-DEV2:MPTTEMP jenkins$ lldb --version lldb-1205.0.27.3 Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55) (base) MACMINI-SJC-DEV2:MPTTEMP jenkins$

    opened by chengjzh 0
  • Use ios-deploy --debug without specifying any app

    Use ios-deploy --debug without specifying any app

    Include the command line arguments you used for ios-deploy.

    $ ios-deploy --debug

    Expected behavior

    I'd like this to launch a debug session such that I can use lldb to attach to any PID, launch an existing (already installed) app and debug.

    Actual behavior.

    $ ios-deploy --debug 2022-04-05 07:09:57.961 ios-deploy[91234:1321025] Usage: ios-deploy [OPTION]... ... shows help menu...

    Steps to reproduce the problem

    System Specs

    Please run the commands below in your Terminal.app and include it in the issue. Check when done and include results below.

    • [x] 1. system_profiler SPSoftwareDataType
    • [x] 2. ios-deploy -V
    • [x] 3. xcodebuild -version
    • [x] 4. xcode-select --print-path
    • [x] 5. gcc --version
    • [x] 6. lldb --version
    • [ ] If using NodeJS/npm
      • [ ] 7. npm -v
      • [ ] 8. node -v
    $ system_profiler SPSoftwareDataType
    Software:
    
        System Software Overview:
    
          System Version: macOS 12.3 (21E230)
          Kernel Version: Darwin 21.4.0
          Boot Volume: Macintosh HD
          Boot Mode: Normal
          Secure Virtual Memory: Enabled
          System Integrity Protection: Disabled
    
    $  ios-deploy -V
    1.11.4
    
    $ xcodebuild -version
    Xcode 13.0
    Build version 13A233
    
    $ xcode-select --print-path
    /Applications/Xcode.app/Contents/Developer
    
    $ gcc --version
    Apple clang version 13.0.0 (clang-1300.0.29.3)
    
    $ lldb --version
    lldb-1300.0.32.2
    Swift version 5.5-dev
    
    
    opened by hiraditya 1
  • Could not download apps content (app downloaded from appstore)

    Could not download apps content (app downloaded from appstore)

    I can see the bundle id is listed if I try ios-deploy -W -B flag (-B)

    Also return true when I try ios-deploy --bundle_id com.myapp.bundle.id -e.

    For both --list or --download fails with Unable to find bundle with id: com.myapp.bundle.id

    I do have the appstore certificate for the app both distribution and development installed on my machine.

    Expected behavior

    I would expect to explore/download the content of the app

    Actual behavior.

    Throws in correct error saying could not find bundle.

    Steps to reproduce the problem

    1. Download any app from app store
    2. Find the bundle id with -B
    3. Try to download content (most app should have something in library/preferences or documents directory or atleast empty content

    System Specs

    Please run the commands below in your Terminal.app and include it in the issue. Check when done and include results below.

    • [x] 1. system_profiler SPSoftwareDataType

      System Version: macOS 11.4 (20F71)
      Kernel Version: Darwin 20.5.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: XXXXXXXX
      User Name:XXXXXXX
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 1 day 14:34
      
    • [x] 2. ios-deploy -V

    1.11.3 and 1.11.4 installed via homebrew

    • [x] 3. xcodebuild -version

    Xcode 13.2.1 Build version 13C100

    • [x] 4. xcode-select --print-path

    /Applications/Xcode.app/Contents/Developer

    • [x] 5. gcc --version

    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 13.0.0 (clang-1300.0.29.30) Target: x86_64-apple-darwin20.5.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

    • [x] 6. lldb --version

    11.1.0 and 13.0.1

    lldb version 13.0.1

    • [x] If using NodeJS/npm

    N/A

    • [x] 7. npm -v

    8.1.0

    • [x] 8. node -v

    v17.0.1

    opened by palaniraja 0
  • Upload file doesn't reflect in the app while browsing

    Upload file doesn't reflect in the app while browsing

    Uploaded file using ios-deploy -f -o test.jpg -2/Downloads/test.jpg uploads the file as per the command. The uploaded file however cannot be viewed using Files app or Photo app in the phone. Is there any setting that needs to be enabled to view the uploaded files using ios-deploy?

    opened by kristeedev 1
Releases(1.12.1)
  • 1.12.1(Dec 8, 2022)

    • Add workaround needed for Xcode-13.3+ for --noninteract crashes.
    • Moved the command to check whether a device has enabled developer mode behind a define flag to prevent breaking builds with older versions of Xcode.
    • ios-deploy is now more lenient when searching for a compatible DeveloperDiskImage.
    • Fixed symbols downloading on newer versions of Xcode.
    • Fix an issue introduced by #503 where installing an IPA requires explicitly providing a bundle id. #569
    • Devices db updated with latest iOS devices
    Source code(tar.gz)
    Source code(zip)
  • 1.12.0(Jun 28, 2022)

    • New --check-developer-mode command to check whether a device has developer mode enabled or not (pre-iOS 16 devices print an error). #556
    • Device detection JSON output includes the connection interface (e.g. WiFi or USB). #554
    • New commands to list, download, install, and uninstall provisioning profiles to a device. #549
    • New --symbols command to download dyld caches from a device. #534
    • Respects DEVELOPER_DIR environment variable when available. #533
    • Skip removing FIFOs from device #528
    • Speed up --copy_find_path command. #526
    • Log DeviceDisconnected event when running with --json #516
    • Show finer progress when installing #515
    • Allow --nolldb to run without providing an app bundle such that ios-deploy only starts debugserver on a device. #507
    • Basic support for watchos. #502
    • Devices db updated with latest iOS devices
    Source code(tar.gz)
    Source code(zip)
  • 1.11.4(Jan 25, 2021)

    • Add -k/--key option. Allow getting more properties of the app when using --list_bundle_id #497
    • Show iOS version and build version in "Device found" message #491
    • Show connection type in "Disconnected" messages #490
    • Always emit "Symbol Path: ", even when running --nolldb #488
    Source code(tar.gz)
    Source code(zip)
  • 1.11.3(Oct 23, 2020)

    • Fix issue with script generation that commented out the first line of the python lldb script. (#481 )
    • Add support for iPad 8, iPad Air 4, and all the iPhone 12 models. (#483)
    • Fix a regression causing AFConnection to fail. (#484)
    Source code(tar.gz)
    Source code(zip)
  • 1.11.2(Sep 18, 2020)

    • Fix can not start com.apple.debugserver on iOS 14 beta4+ (#469)
    • Fix missing output when lldb is buffering output (#474)
    • Add ability to execute custom scripts and commands (#472)
    • Fix handling of utf8 in output/error paths (#473)
    Source code(tar.gz)
    Source code(zip)
  • 1.11.2-beta.1(Aug 31, 2020)

  • 1.11.1(Aug 19, 2020)

  • 1.11.0(Jul 24, 2020)

    No changes from 1.11.0-beta1. Flutter is already on the 1.11.0 release https://github.com/flutter/flutter/pull/61983.

    There appears to be an issue with installing [email protected] via npm on older versions of MacOS https://github.com/ios-control/ios-deploy/issues/465. It is recommenced to install via homebrew if you are installing the tool globally as this is confirmed to work on older MacOS releases.

    brew install ios-deploy
    

    Features (same as 1.11.0-beta1)

    • fix: Xcode 12 python support #464
    • task: Add iPhone SE 2G #460
    • feat: Add --json support for list_bundle_id #457
    • fix: Only grab terminal when necessary #414
    • feat: Print device disconnect message #442
    • fix: Use arch when looking for device support path #441
    • feat: Rmtree command #440
    • feat: Incremental installation/app_deltas(SIGNIFICANTLY reduces re-install time if enabled!) #437 #434
    Source code(tar.gz)
    Source code(zip)
  • 1.11.0-beta.1(Jul 9, 2020)

    Install

    brew install --HEAD ios-deploy
    

    or alternatively

    npm install [email protected]
    

    Note: Installing ios-deploy with sudo npm will no longer work and is not supported. #465

    Features

    • fix: Xcode 12 python support #464
    • task: Add iPhone SE 2G #460
    • feat: Add --json support for list_bundle_id #457
    • fix: Only grab terminal when necessary #414
    • feat: Print device disconnect message #442
    • fix: Use arch when looking for device support path #441
    • feat: Rmtree command #440
    • feat: Incremental installation/app_deltas(SIGNIFICANTLY reduces re-install time if enabled!) #437 #434
    Source code(tar.gz)
    Source code(zip)
  • 1.10.0(Dec 9, 2019)

    Milestone

    https://github.com/ios-control/ios-deploy/milestone/14?closed=1

    Homebrew Update

    Live - https://github.com/Homebrew/homebrew-core/commit/c4b78681fa79ad0e842fa92b70dba524bea12cc1

    NPMJS Update

    Live - https://www.npmjs.com/package/ios-deploy

    Features

    • fix: Test compilation #423
    • fix: Correct Device Definitions #421, #424
    • fix: error when people pass args or envs with nolldb. (#407)
    • fix: Always send unsigned error codes in JSON (#406)
    • feat: improve JSON errors (#404)
    • task: split out BSD license for error handling code into LICENSE2 file (#403)
    • task: add Full text of GPLv3 license. (#401)
    • task: update package.json with 'files' property (to whitelist files for npm
    • fix: ld: framework not found MobileDevice #387
    • fix: Changed AMDeviceCopyValue signature #373
    • feat: add JSON output for copy/install/launch #397
    • fix: don't hang forever when launching app fails #394
    • feat: add iPad 6th Gen and iPod 7th Gen devices #388
    • fix: Modified lldb command to fix remove_weak_ref issue #366
    • feat: get battery current capacity #373
    • feat: implement the stdout and stderr redirect to file #339
    • fix: fix parsing the short optional arguments #357
    • feat: fixup API usage to make ios-deploy work also with wifi connections #385
    • feat: add JSON Output Option #381
    • fix: add iPad (2018), iPad Air 3, iPad Pro 11", iPad Pro 12.9", iPad mini 5, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XR, iPhone XS, iPhone XS Max #377
    • fix: remove odd memory copy function #380
    • fix: remove broken XCode version check #382
    • feat: add ability to inject arbitrary environment variables #354
    • fix: minor cleanup/formatting of README #362
    Source code(tar.gz)
    Source code(zip)
  • 1.10.0-beta4(Dec 6, 2019)

  • 1.10.0-beta.3(Aug 15, 2019)

    Please file test results or add to the discussion in #399

    Milestone

    https://github.com/ios-control/ios-deploy/milestone/14?closed=1

    Install

    npm install ios-deploy@beta

    Features

    • For Beta 2, see beta.2 features
    • fix: error when people pass args or envs with nolldb. (#407)
    • fix: Always send unsigned error codes in JSON (#406)
    • feat: improve JSON errors (#404)
    • task: split out BSD license for error handling code into LICENSE2 file (#403)
    • task: add Full text of GPLv3 license. (#401)
    • task: update package.json with 'files' property (to whitelist files for npm
    Source code(tar.gz)
    Source code(zip)
  • 1.10.0-beta.2(Jul 23, 2019)

    Please file test results or add to the discussion in #399

    Milestone

    https://github.com/ios-control/ios-deploy/milestone/14?closed=1

    Install

    npm install ios-deploy@beta

    Features

    • For Beta 1, see beta.1 features
    • fix: ld: framework not found MobileDevice #387
    • fix: Changed AMDeviceCopyValue signature #373
    Source code(tar.gz)
    Source code(zip)
  • 1.10.0-beta.1(Jul 19, 2019)

    Please file test results or add to the discussion in #399

    Milestone

    https://github.com/ios-control/ios-deploy/milestone/14?closed=1

    Install

    npm install ios-deploy@beta

    Features

    • feat: add JSON output for copy/install/launch #397
    • fix: don't hang forever when launching app fails #394
    • feat: add iPad 6th Gen and iPod 7th Gen devices #388
    • fix: Modified lldb command to fix remove_weak_ref issue #366
    • feat: get battery current capacity #373
    • feat: implement the stdout and stderr redirect to file #339
    • fix: fix parsing the short optional arguments #357
    • feat: fixup API usage to make ios-deploy work also with wifi connections #385
    • feat: add JSON Output Option #381
    • fix: add iPad (2018), iPad Air 3, iPad Pro 11", iPad Pro 12.9", iPad mini 5, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XR, iPhone XS, iPhone XS Max #377
    • fix: remove odd memory copy function #380
    • fix: remove broken XCode version check #382
    • feat: add ability to inject arbitrary environment variables #354
    • fix: minor cleanup/formatting of README #362
    Source code(tar.gz)
    Source code(zip)
  • 1.9.4(Oct 22, 2018)

  • 1.9.3(Jul 24, 2018)

    New Feature:

    From @0xItx (thanks to @LinusU for adding it back, it was clobbered in a merge commit):

    • #285 - add --nolldb (-N) flag: start debugserver without lldb. For when you want to attach with an external debugserver client (e.g. a custom lldb or IDA)

    Bug Fixes

    • Fix for cp: /System/Library/PrivateFrameworks/MobileDevice.framework/XPCServices: No such file or directory bug #349
    • Fix for Build fails on Xcode 10 beta #350

    Cleanup:

    • Fix Anchor for 10.11 or Greater Message #334 (thanks @BobChao87)
    • Cleanup setting of boolean arguments #330 (thanks @LinusU)
    Source code(tar.gz)
    Source code(zip)
  • 1.9.2(Sep 5, 2017)

    From @cbracken:

    • #314 - Add framework copy step before linking. This fixes a linking issue in Xcode 9 beta.

    From @mstorsjo:

    • #299 - Look for the Developer disk image using more patterns. This fixes the issue where the DeviceSupport folder can't be found.

    From @gusc:

    • #306 - Add new iPad (2017) and iPad Pro 10.5" / 12.9" devices to device db.
    Source code(tar.gz)
    Source code(zip)
  • 1.9.1(Jan 27, 2017)

    Fixed:

    • #255 fixed by #265
    • #264 - Fixed a problem with inability to pass arguments through command line parameters (thanks @black-square)
    • #265 - Fixed a problem with inability to pass arguments through command line parameters (thanks @black-square)
    • #266 - Moved device database to separate header (thanks @gusc)
    • #280 - Fixed incorrect logs order in noninteractive mode (thanks @black-square)
    Source code(tar.gz)
    Source code(zip)
  • 1.9.0(Sep 16, 2016)

    • #228 Added support for AppleTV OS (thanks @Vrixyz)
    • #250 Can't pass in command line args to the iOS application bug (thanks @dot-asm)
    • #248 Add Apple TV 4G friendly name (thanks @gusc)
    • Add iPad Pro friendly names
    • Add new iPhone SE model
    • Add iPhone 7 and iPhone 7 Plus friendly names
    Source code(tar.gz)
    Source code(zip)
  • 1.8.7(Sep 14, 2016)

  • 1.8.6(Apr 11, 2016)

  • 1.8.5(Feb 4, 2016)

    • Added support for recursive directory uploads (thanks @stevenkramer)\
    • Added warning text for additional flags needed when installing under OS X 10.11 El Capitan
    Source code(tar.gz)
    Source code(zip)
  • 1.8.4(Jan 7, 2016)

  • 1.8.3(Nov 24, 2015)

  • 1.8.2(Oct 13, 2015)

    • Fixed #184 - Change min xcode version for Travis CI bug
    • Fixed #183 - 'tool' undefined in check_reqs.js bug
    • Added npm test script for jshint check
    Source code(tar.gz)
    Source code(zip)
  • 1.8.1(Oct 8, 2015)

  • 1.8.0(Oct 7, 2015)

    • Fixes #56 - Assertion failed AMDeviceSecureTransferPath (app name has non-ASCII characters)
    • Fixes #135 - Convert Makefile to xcodeproject. Demo in its own folder now with its own Makefile.
    • Fixes #153 - Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSString stringWithUTF8String:]: NULL cString' #153
    • Fixes #156 - --list command add trailing slash for directories
    • Fixes #157 - Bad error formatting string in check_error()
    • Fixes #164 - Error when launch application in multi-user context
    • Fixes #166 - Segfault when passed a non-existent bundle #166
    • Fixes #168 - Segmentation Fault 11 (when deploying an .ipa file)
    • Fixes #170 - ios-deploy installing over both USB and WiFi
    • Fixes #176 - Add documentation issue for node preinstall script (workaround)
    • Removed buildbox shell script
    • Fixed typo in README example.
    • Added iPhone 6s and 6s Plus models.
    • Add text for errors 0xe8008016 and 0xe8008017.
    • Add attribution for error code reverse engineering.
    • Add text for error 0xe8008018.
    • Add text for 0xe800801c error.
    • Add text for 0xe8008019 error.
    Source code(tar.gz)
    Source code(zip)
  • 1.7.0(May 19, 2015)

    By @shazron:

    • Fixed #139 - stderr incorrect
    • Fixed #138 - incorrect log when using --list_bundle_id (duplicate udid)
    • Fixed #126 --download option works incorrectly
    • Implemented #84 - Enhancement to --noninteractive (implicit --debug) feature-request
    • Implemented #83 - Enhancement to --justlaunch (implicit --debug) feature-request

    By @Incont:

    • Fixed #141 - unable to load the empty string a text file (for upload)
    • Added #136 --list_bundle_id feature

    By @senthilmw:

    • Fixed #137 - Japanese character issues
    Source code(tar.gz)
    Source code(zip)
  • 1.6.3(May 16, 2015)

  • 1.6.2(May 15, 2015)

Owner
null
Primer iOS SDK - Instantly deploy native screens without writing code

Instantly deploy native screens without writing code. Primer enables you to design and test new user experiences, and personalize them for each user.

Primer 6 Mar 23, 2018
CareKit is an open source software framework for creating apps that help people better understand and manage their health.

CareKit CareKit™ is an open source software framework for creating apps that help people better understand and manage their health. The framework prov

CareKit 2.3k Dec 27, 2022
In-app feedback and bug reporting tool for apps.

Instabug iOS SDK Instabug is an in-app feedback and bug reporting tool for mobile apps. With just a simple shake, your users or beta testers can repor

Instabug 274 Dec 14, 2022
gradle plugin for building Xcode Projects for iOS, watchOS, macOS or tvOS

gradle-xcodePlugin The gradle xcode plugin (gxp) makes it easier to build Xcode projects by specifying the build settings in a single configuration fi

null 444 Dec 5, 2022
The official CovPass(-Check) iOS apps

CovPass / CovPass Check Einfach. Sicher. Papierlos. Mit der CovPass-App können Bürgerinnen und Bürger ihre Corona-Impfungen direkt auf das Smartphone

null 96 Dec 18, 2022
150,000+ stickers API & SDK for iOS Apps.

English | 한국어 Stipop UI SDK for iOS Stipop SDK provides over 150,000 .png and .gif stickers that can be easily integrated into mobile app chats, comme

Stipop, Inc. 19 Dec 20, 2022
Used to integrate the Facebook Platform with your iOS & tvOS apps.

Facebook SDK for iOS This open-source library allows you to integrate Facebook into your iOS app. Learn more about the provided samples, documentation

Meta 7.3k Jan 3, 2023
ResearchKit is an open source software framework that makes it easy to create apps for medical research or for other research projects.

ResearchKit Framework The ResearchKit™ framework is an open source software framework that makes it easy to create apps for medical research or for ot

null 5.5k Dec 26, 2022
1Password Extension for iOS Apps

Retirement As 1Password continues to evolve on iOS we’ve been given new opportunities to take advantage of additions to the operating system that fulf

AgileBits 2.6k Jan 4, 2023
Twitter Kit is a native SDK to include Twitter content inside mobile apps.

Twitter will be discontinuing support for Twitter Kit on October 31, 2018. Read the blog post here. Twitter Kit for iOS Background Twitter Kit is a na

Twitter Archive 674 Dec 18, 2022
Fetch the update available status for iOS or macOS apps based on the bundle identifier.

AppUpdately Fetch the update status for a given app bundle identifier, without the need of any remote configuration. Simply provide your app's bundle

Antoine van der Lee 30 Dec 20, 2022
Home-assistant-swift-sdk - Used to integrate the Home Assistant APIs with your Swift-based apps.

home-assistant-swift-sdk This open-source library allows you to interact with a Home Assistant instance in your Swift-based (e.g., iOS, macOS, etc.) a

Alexander Golden 0 Dec 31, 2021
Project(s) for iOS mobile apps

Pre-work - Calculator tip app tip calculator is a tip calculator application for iOS. Submitted by: William Hiltz Time spent: 2 hours spent in total U

null 0 Jan 9, 2022
Sample app to demonstrate the integration code and working of Dyte SDK for iOS, using Objective-C.

iOS sample app (using Objective-C) by dyte Sample app to demonstrate the usage of Dyte iOS SDK Explore the docs » View Demo · Report Bug · Request Fea

Dyte 8 Nov 26, 2021
Build a workout app from scratch using SwiftUI and HealthKit

Build a workout app for Apple Watch Build a workout app from scratch using SwiftUI and HealthKit during this code along. Learn how to support the Alwa

paigeshin 5 Nov 28, 2022
SingleEntry in SwiftUI using the Capture SDK

SingleEntrySwiftUI for iOS Simple iOS app with SwiftUI for showing the use of Capture SDK. IMPORTANT When using/installing CocoaPods in a new project,

Taif Al Musabe 2 Jun 4, 2022
This is swift project example to connect VNPTSmartCA SDK using Swift Language.

Example source code to integrate with VNPTSmartCA iOS SDK To run the example project, clone repository, and run pod install Requirements Installation

null 1 Feb 14, 2022
Sample iOS AR app using AR Quick Look API

ARQLSanta This is a minimal AR iOS app that uses the AR Quick Look API, displayi

Yasuhito Nagatomo 9 Aug 23, 2022
This repository is for the iOS sample application using ARGear SDK.

ARGear sample application for iOS (c) Copyright 2021 Seerslab. All rights reserved. This repository contains an iOS sample application that uses ARGea

ARGear 2 Apr 5, 2022