1. 安装到真机
命令行 :
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
复制下方标识选中的命令,在终端中执行
(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)直接在Xcode中打开一个
- (2)命令行
open -a Simulator.app --args -CurrentDeviceUDID <设备的UDID>
打开(输入命令行时不要加上<>
)
***xcrun simctl boot UDID
(只在后台启动模拟器,看不到GUI,建议用上边命令)***
(不知道具体模拟器型号可以用命令行xcrun simctl list devices
查看模拟器列表) - 报错请查看下边异常处理解决即可
-
关闭模拟器:
xcrun simctl shutdown all
(关闭所有模拟器)
关闭指定模拟器:xcrun simctl shutdown udid
重置模拟器:xcrun simctl erase udid
(清除模拟器的数据和设置)
- 安装
xcrun simctl install booted /..../*.app
这里安装时是使用的.app文件,直接解压.ipa文件就可以获得
/..../*.app 是app文件的路径,也可以直接cd
到目录下
- 安装
- 启动app
xcrun simctl launch booted ‘app的Bundle identifier’
通过URL Scheme方式一样打开一个app:xcrun simctl openurl booted "com.**.**"
- 启动app
-
- 关闭app
xcrun simctl terminate booted
- 5.卸载
xcrun simctl uninstall booted com.app.bundleIdentify
卸载时使用com.app.bundleIdentify即安装的应用的bundle Identify
- 关闭app
截图命令:
xcrun simctl io booted screenshot screenshot.png
录屏功能:xcrun simctl io booted recordVideo example.mp4
查看日志: tail -f
日志文件的路径: /Users/ U s e r N a m e / L i b r a r y / L o g s / C o r e S i m u l a t o r / UserName/Library/Logs/CoreSimulator/ UserName/Library/Logs/CoreSimulator/simulator_hash/system.log
让模拟器打开网页:xcrun simctl openurl booted "https://www.baidu.com"
异常问题:
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 安装
- 安装“ios-sim”
brew install ios-sim
|npm install ios-sim -g
- 安装“ios-sim”
- 查看已安装的模拟器类型:
ios-sim showdevicetypes
- 查看已安装的模拟器类型:
- 启动指定模拟器并安装
ios-sim launch /Users/work/Desktop/Mara.app --devicetypeid iPhone-X, 11.2
- 启动指定模拟器并安装