从设备上的命令行安装并启动 ipa 签名以进行临时分发
Posted
技术标签:
【中文标题】从设备上的命令行安装并启动 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 签名以进行临时分发的主要内容,如果未能解决你的问题,请参考以下文章