命令行安装ipa包到手机、模拟器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令行安装ipa包到手机、模拟器相关的知识,希望对你有一定的参考价值。
参考技术A 命令行 :
idevice_id -l 显示当前所连接的设备[udid],包括 usb、WiFi 连接
instruments -s devices 列出设备包括模拟器、真机及 mac 电脑本身
其他命令操作可以查看 ios-deply 的 github地址
(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
执行命令行 fruitstrap -i [目标设备的udid] -b [.ipa的path]
查看帮助Options: fruitstrap -d
fruitstrap命令的完整格式
点击查看node-ios-device安装
终端执行命令行 npm install node-ios-device --save-optional
异常问题:
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 即可。
从设备上的命令行安装并启动 ipa 签名以进行临时分发
【中文标题】从设备上的命令行安装并启动 ipa 签名以进行临时分发【英文标题】:Install and launch ipa signed for ad-hoc distribution from commandline on device 【发布时间】:2017-08-22 09:25:29 【问题描述】:我正在寻找一种方法来安装和启动,一个为临时分发而签名的 ipa,直接在设备上,从命令行(在非越狱设备上)
我需要做的只是启动应用程序,而不是调试它,使用命令行(示例应用程序进行一组 api 调用,我想使用命令行自动执行)。
我尝试过使用ios-deploy。但要求规定它需要安装有效的 iOS 开发证书。
使用
ios-deploy --justlaunch --bundle ./example.app
它会安装应用程序,但无法启动它。 (lldb
失败,Application has not been launched
)。
我怀疑这是因为 ipa 是为临时分发而构建的,因为如果我在没有任何签名的情况下运行 .app 文件,上述命令就可以正常工作并启动应用程序。
这甚至可能吗? 使用仪器进行某种虚拟测试有帮助吗?我没有成功。
我认为像 appium 这样的测试工具会在临时签名的 ipa 上运行测试,但我不确定它们是如何做到的。
【问题讨论】:
【参考方案1】:我自己回答。接受更好的方法。
由于我只想启动不带 lldb 的 ad-hoc 应用程序,因此我尝试使用 XCUIApplication
从单独的 UITest(独立于我的存档 ipa)启动捆绑 id。这就是我想要的。
最终我使用ios-deploy
在设备上安装应用程序,然后使用facebook的webdriver agent,通过它我可以控制启动和终止应用程序,只使用curl请求。它在底层使用 XCUIApplication,但也提供了许多其他功能。
【讨论】:
@kamehameha- 感谢您提出答案。我也在尝试做类似的事情,但很难在没有 xcode 的情况下使用 webdriver 代理。您如何创建 webdriver-agent 的 .ipa 文件以安装在 iphone 中以使用 curl 请求进行测试。能否请您提供步骤。提前致谢。 我没有创建 webdriver-agent 的 .ipa 文件。我在设备上安装了我的 ipa(使用 ios-deploy),然后使用 xcodebuild 命令运行 webdriver-agent(我想我也需要签署 webdriver 代理,因为我需要在设备上运行)最终启动了我的应用程序.查找来自here的命令 @iOSDev 所有 webdriver 代理需要知道的是已安装的 ipa 的 bundle-id,这可以通过 curl 请求完成。看看他们的queries page 感谢您的回答。我可以在 Mac 中使用带有 webdriver 代理的 xcodeBuild。是否可以在 Windows 系统中使用相同的程序?我正在尝试在 Windows 中安装 XcodeBuild,但我认为没有支持? 好吧,你不能照原样在 Windows 上使用它。我认为您需要在 Windows 的虚拟框内运行一个 mac 框并在其上运行 xcodebuild(我认为最新的 mac 映像也不可用)。在这方面帮不上什么忙以上是关于命令行安装ipa包到手机、模拟器的主要内容,如果未能解决你的问题,请参考以下文章