Ios Can';t通过命令行在模拟器上安装.app

Ios Can';t通过命令行在模拟器上安装.app,ios,xcode,ios-simulator,appium-ios,simctl,Ios,Xcode,Ios Simulator,Appium Ios,Simctl,我正在使用appium实现ios测试自动化。最近,我在模拟器上安装.app时出错。我可以在本地复制 命令行执行失败: xcrun simctl install DEVICE_ID /full/path/to/app 错误消息: 处理命令时遇到错误(域=NSPOSIXErrorDomain,代码=2): 未能安装请求的应用程序 在提供的路径中找不到应用程序包。 提供所需应用程序包的有效路径 然而 当我在模拟器上拖动.app时,它工作正常。 设备ID是正确的。我可以通过xcrun simctl轻松

我正在使用appium实现ios测试自动化。最近,我在模拟器上安装.app时出错。我可以在本地复制

命令行执行失败:

xcrun simctl install DEVICE_ID /full/path/to/app
错误消息

处理命令时遇到错误(域=NSPOSIXErrorDomain,代码=2): 未能安装请求的应用程序 在提供的路径中找不到应用程序包。 提供所需应用程序包的有效路径

然而

当我在模拟器上拖动.app时,它工作正常。 设备ID是正确的。我可以通过
xcrun simctl
轻松启动和关闭模拟器。 这是在我们的CI mac从机上。在我的mac上本地运行(使用相同的版本)效果很好

环境

操作系统版本: 产品名称:Mac OS X 产品版本:10.13.5 构建版本:17F77

Xcode版本
:9.4

命令行工具版本
:9.4

xcrun版本
: xcrun版本43

simctl版本
: @(#)程序:simctl项目:CoreSimulator-518.22

被测模拟器
: iPhone SE(11.4)


如果有任何提示,我将非常感谢。

谢谢您的反馈。很高兴知道,拖放使用相同的API。 我发现了问题所在。这条路确实不正确。然而,cd'ing进入路径工作,这就是为什么我认为,路径不可能是问题所在

实际路径是“/Users/Jenkins/…”但我使用了“/Users/Jenkins…”,因为这是由Jenkins的pwd函数返回的。看来我们的詹金斯奴隶被误解了


因此,cd可能会处理不正确的大小写,而xcrun simctl则无法处理。

听起来您通过的路径不正确……是的,听起来确实如此,但它是正确的。我想知道,还有什么会导致这个错误。或者内置应用程序有问题。您的路径中是否有空格?拖放使用完全相同的API来安装应用程序,因此如果它在一个应用程序中工作,那么它将在另一个应用程序中工作。是的,模拟器使用特殊的区分大小写的VFS策略运行(因为实际设备就是这样工作的),因此,模拟器中的所有内容都是区分大小写的,即使你的mac是在区分大小写的卷上。出于某种原因,我对react native也有同样的问题。只需删除.app文件夹即可使其再次工作。因为它创建了一个
AppName.app
而不是
AppName.app
文件夹。