【问题标题】:Can't install .app on simulator via command line无法通过命令行在模拟器上安装 .app
【发布时间】:2018-12-06 08:29:13
【问题描述】:

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

命令行执行,失败:

xcrun simctl install DEVICE_ID /full/path/to/app

错误信息

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

但是!

当我在模拟器上拖动 .app 时,它工作得很好。 deviceId 是正确的。我可以通过xcrun simctl 轻松启动和关闭模拟器。 这是在我们的 CI mac slave 上。在我的 Mac(具有相同版本)上本地运行就可以了。

环境

OS version: 产品名称:Mac OS X 产品版本:10.13.5 构建版本:17F77

Xcode version: 9.4

Command line tools version: 9.4

xcrun version: xcrun 版本 43

simctl version: @(#)PROGRAM:simctl PROJECT:CoreSimulator-518.22

Simulator under test: iPhone SE (11.4)

我会非常关心任何提示。

【问题讨论】:

  • 听起来你传递的路径不对……
  • 是的,听起来确实如此,但它是正确的。我想知道,还有什么可能导致这个错误。还是构建的应用有问题。
  • 你的路径中有空格吗?拖放使用完全相同的 API 来安装应用程序,因此如果它可以在一个应用程序中运行,那么它可以在另一个应用程序中运行。

标签: ios xcode ios-simulator appium-ios simctl


【解决方案1】:

感谢您的反馈。很高兴知道,拖放使用相同的 API。 我发现,这是什么问题。路径确实不正确。但是,进入路径有效,这就是为什么我认为路径不可能是问题。

实际路径是“/Users/Jenkins/...”,但我使用了“/Users/jenkins...”,因为它是由 jenkins 的 pwd 函数返回的。好像我们的詹金斯奴隶配置错误。

所以,不知何故 cd 可以处理不正确的大小写,而 xcrun simctl 不能。

【讨论】:

  • 是的,模拟器使用特殊的区分大小写的 VFS 策略运行(因为这就是实际设备的工作方式),因此即使您的 Mac 位于不区分大小写的卷上,模拟器中的所有内容也区分大小写.
  • 由于某种原因,我在使用 react native 时遇到了同样的问题。只需删除 .app 文件夹即可使其再次工作。因为它创建了一个AppName.app 而不是Appname.app 文件夹。
猜你喜欢
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 2012-01-30
相关资源
最近更新 更多