命令行安装ipa包到手机、模拟器

1. 安装到真机
【命令行安装ipa包到手机、模拟器】命令行 :
idevice_id -l 显示当前所连接的设备[udid],包括 usb、WiFi 连接
instruments -s devices 列出设备包括模拟器、真机及 mac 电脑本身
1.1 ios-deploy 安装使用(类似的工具有Fruitstrap(下边有介绍使用说明),node-ios-device等)

  • 1.1.1 安装ios-deploy brew install ios-deploy
  • 1.1.2 安装完成后先执行 ios-deploy -c连接真机设备
  • 1.1.3 cd **.app 目录下 ( **.app 就是将 **.ipa 解压获取的)
  • 1.1.4 安装 ios-deploy --debug --bundle my.app | ios-deploy—uninstall—debug—bundle my.app (第二个命令行会先卸载再重新安装)
ios-deploy -h 查看帮助
(1) 将应用程序部署并调试到连接的设备上ios-deploy –debug –bundle my.app
(2) 将应用程序部署并调试到连接的设备上,跳过任何wi-fi连接(使用USB)ios-deploy –debug –bundle my.app –no-wifi
(3) 将应用程序部署并启动到连接的设备上,但在此之后退出调试器ios-deploy –justlaunch –debug –bundle my.app
(4) 将应用程序部署并启动到连接的设备上,当应用程序崩溃或退出时退出ios-deploy –noninteractive –debug –bundle my.app
(5) 将文件上传到应用程序的Documents文件夹ios-deploy –bundle_id ‘bundle.id’ –upload test.txt –to Documents/test.txt
(6) 下载应用程序的文档、库和tmp文件夹ios-deploy –bundle_id ‘bundle.id’ –download –to MyDestinationFolder
(7) 列出应用程序的文档、库和tmp文件夹的内容ios-deploy –bundle_id ‘bundle.id’ –list
(8) 将应用程序部署并调试到连接的设备上,首先卸载应用程序ios-deploy –uninstall –debug –bundle my.app
(9)检查设备上是否存在bundle id应用程序(检查返回代码“echo $?”)ios-deploy –exists –bundle_id com.apple.mobilemail
(10)下载app的文档目录onlyios-deploy –download=/Documents –bundle_id my.app.id –to ./my_download_location
(11)列出连接设备的id和名称ios-deploy -c
(12) 卸载一个应用程序ios-deploy –uninstall_only –bundle_id my.bundle.id
(13) 列出设备上所有应用程序的包idios-deploy –list_bundle_id
其他命令操作可以查看 ios-deply的 github地址
1.2 Fruitstrap 安装使用
  • 1.2.1 安装 fruitstrap
(1) Git 远端clone文件
git clone git://github.com/ghughes/fruitstrap.git
cd fruitstrap
cat makefile 复制下方标识选中的命令,在终端中执行

命令行安装ipa包到手机、模拟器
文章图片
终端展示
(2) 编译生成可执行文件
gcc -o fruitstrap -framework CoreFoundation -framework MobileDevice -F/System/Library/PrivateFrameworks fruitstrap.c
终端执行复制的命令,会在项目根目录下生成一个unix可执行文件,这个文件是可以直接在终端里执行的,如果在当前目录下出现fruitstrap文件就说明执行成功。 ls查看就可以,或者 open $(pwd)
(3) 调用可执行文件
方法1:终端用全路径调用
// 例如执行查看帮助的命令
/users/ypf/desktop/fruitstrap -d
方法2:将可执行文件复制粘贴到终端的默认目录/usr/bin,可以看到这里有很多可执行文件,这里的unix可执行文件可以通过文件名直接在终端中调用。
// 直接在终端中用文件名调用
fruitstrap -d
  • 1.2.2 安装.ipa到真机
执行命令行fruitstrap -i [目标设备的udid] -b [.ipa的path]
查看帮助Options:fruitstrap -d
fruitstrap命令的完整格式
// -i 目标设备的udid // -b 要安装的.ipa的路径 // -a 参数数组 // -t 设置超时时间(单位:s)

fruitstrap [-d/--debug] [-i/--id device_id] -b/--bundle bundle.app [-a/--args arguments] [-t/--timeout timeout(seconds)]
1.3 node-ios-device 安装使用 点击查看node-ios-device安装
终端执行命令行 npm install node-ios-device --save-optional
1.4 ideviceinstaller安装(现在用不了除非把电脑系统版本Xcode降级)
  • 1.4.1、在终端再执行以下命令 brew install ideviceinstaller
  • 可能出现的错误??
    (1)安装时若出现以下报错提示:Error: Cannot write to /usr/local/Cellar
    解决方案:先执行: sudo chown -R $USER /usr/local再次执行brew install ideviceinstaller
  • 1.4.2 安装后执行查看列表命令 ideviceinstaller -l执行时若出现以下报错提示 Could not connect to lockdownd. Exiting
    解决方法:首先断开所有设备连接,依次执行以下命令
    1.1 brew uninstall ideviceinstaller
    1.2 brew uninstall libimobiledevice
    1.3 brew install --HEAD libimobiledevice
    1.4 brew link --overwrite libimobiledevice
    1.5 brew install ideviceinstaller
    1.6 brew link --overwrite ideviceinstaller
    删除本地保存信任设备目录
    2. sudo rm -rf /var/db/lockdown/*
    修改权限
    3. sudo chmod -R 777 /var/db/lockdown/
    ??执行这条命令会出现密码输入提示,直接输入密码后回车即可
  • 1.4.3 安装ipa包到手机命令行 ideviceinstaller -i "${ipaPath}/${ipa_name}.ipa”
  • 可能出现的错误??
    (1)安装时若是提示:dyld: Library not loaded:/usr/local/lib/libzip.4.dylib image not found
    解决方案:尝试运行ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
  • 1.2. 第三方软件安装 (itools、ifunbox、itunes等)
  • 1.3. 第三方的网站fir.im、prg等
2. 安装到模拟器
  • 1. xcrun 安装
      1. 打开一个模拟器
      • (1)直接在Xcode中打开一个
      • (2)命令行xcrun instruments -w "iPhone 6 Plus"打开
        (不知道具体模拟器型号可以用命令行xcrun simctl list devices查看模拟器列表) - 报错请查看下边异常处理解决即可
      1. 安装
        xcrun simctl install booted /..../*.app
        这里安装时是使用的.app文件,直接解压.ipa文件就可以获得
        /..../*.app 是app文件的路径,也可以直接cd到目录下
      1. 卸载
        xcrun simctl uninstall booted com.app.bundleIdentify
        卸载时使用com.app.bundleIdentify即安装的应用的bundleIdentify
    异常问题:
    1、xcrun simctl install booted /path/xxx.app
    2、xcrun: error: unable to find utility “simctl”, not a developer tool or in PATH`
    3、xcrun: error: active developer path(“/Volumes/Xcode/Xcode.app/Contents/Developer”) does not exist, use xcode-select –switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools (or seeman xcode-select)
    No devices are booted
    这些问题将会导致安装不成功,如果没有安装上可执行下面的操作。
    解决方案:
    steps 1:获取Xcode安装路径。在终端中输入 sudo xcode-select -switch Xcode路径/Contents/Developer 即可。
## created an archive xcodebuild clean archive -workspace APP.xcworkspace -scheme APP -archivePath $ARCHIVE_PATH ## export archive xcodebuild -exportArchive -archivePath $ARCHIVE_PATH.xcarchive -exportPath $ARCHIVE_PATH -exportFormat APP -exportProvisioningProfile app-App-Adhoc-Distribution ## run the iPhone 6 Plus simulator xcrun instruments -w "iPhone 6 Plus (8.3 Simulator)" ## install the app on the simalutor xcrun simctl install booted /pathtoAPP/APP.app ## run test.js xcrun instruments -w "iPhone 6 Plus (8.3 Simulator)" -t /tmp/UIAutomation/APP.tracetemplate /pathtoAPP/APP.app -e UIASCRIPT "/pathtoTest/test.js"

  • 2. ios-sim 安装
      1. 安装“ios-sim” brew install ios-sim | npm install ios-sim -g
      1. 查看已安装的模拟器类型:ios-sim showdevicetypes
      1. 启动指定模拟器并安装 ios-sim launch /Users/work/Desktop/Mara.app --devicetypeid iPhone-X, 11.2

    推荐阅读