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

mac命令行对复杂ipa包重新签名

为啥我可以在我的设备上安装应用商店配置文件签名的应用程序?

Ipa - 资格问题

IPA 文件临时分发 - 无法安装应用程序

从 Xcode 导出 IPA 以使用另一个分发证书重新签名

ios adhoc安装不工作