start_test_server_in_background throws NoMethodError: undefined method 'path' for nil:NilClass

start_test_server_in_background throws NoMethodError: undefined method 'path' for nil:NilClass

我有两台运行良好的机器,但我最近配置的机器无法在控制台中启动测试服务器。

截图:

我一整天都在用脑袋撞它,我不知道出了什么问题。有什么明显的我遗漏的东西会导致这个吗?

更新 这个问题,至少对我来说,是由于我的 APP_BUNDLE_PATH 中有一个相对路径引起的。我有 APP_BUNDLE_PATH="~/Documents/workspace/..."。一旦我创建了完整的显式路径,我就不再在尝试启动测试服务器时遇到错误。

我们正在跟踪此错误:

nil path when preparing simulator in compatible arches check when APP was not set correctly

在修复之前,设置APP环境变量。

$ APP=./path/to/my.app calabash-ios console

更新

该问题已在 develop 分支中修复,将在 run_loop 2.3.1.

中可用

问题的原因是 APPAPP_BUNDLE_PATHBUNDLE_ID 的某些组合对于模拟器目标不正确。

或者:

  1. APP 或 APP_BUNDLE_PATH 没有指向存在的目录。如果您要设置这些变量之一,请确保 .app 包存在。
  2. 您的目标是模拟器,上面三个变量之一被设置为包标识符,例如APP=com.example.MyApp。以模拟器为目标时使用包标识符是无效的。

如果您在启动控制台时没有明确设置任何变量,请查看它们是否已在环境中定义。

$ echo $APP
$ echo $APP_BUNDLE_PATH
$ echo $BUNDLE_ID

如果它们未定义并且您仍然收到此错误,请使用调试日志记录打开一个问题。

$ DEBUG=1 calabash-ios console
> start_test_server_in_background

$ calabash-ios console
> verbose
> start_test_server_in_background