1

我在我的项目中安装了 Calabash 作为 pod。gem 本身是使用 bundler 安装的。当我尝试为我的 Calabash 目标运行 cucumber 时,第一个功能启动但只是挂起并且模拟器永远不会启动:

$ bundle exec cucumber
Feature: Ensure Login and Oauth Screen Functionality

  Scenario: Verify Welcome Page                 # features/Sign_in.feature:3

我的安装中的更多详细信息:

# xcode installation location
$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer

# xcode version
$ xcodebuild -version
Xcode 5.1.1
Build version 5B1008

# calabash version
$ bundle exec calabash-ios version
0.9.168

# calabash < 0.9.169 or Xamarin IDE users
# start your app manually in the simulator or from Xcode and then launch a console
$ bundle exec calabash-ios console
> server_version
{
                        "outcome" => "SUCCESS",
                         "app_id" => "[REDACTED]",
               "simulator_device" => "iPhone",
                        "version" => "0.9.168",
                       "app_name" => "[REDACTED]",
    "iphone_app_emulated_on_ipad" => false,
                          "4inch" => true,
                            "git" => {
        "remote_origin" => "git@github.com:jmoody/calabash-ios-server.git",
               "branch" => "master",
             "revision" => "adde106"
    },
                    "app_version" => "2.0.1",
                    "iOS_version" => "7.1",
                         "system" => "x86_64",
                      "simulator" => "iPhone Simulator 463.9.41, iPhone OS 7.1 (iPhone Retina (4-inch)/11D167)"
}
4

2 回答 2

5

好的,这意味着葫芦无法找到您的应用程序。

先试试这个

  1. 注释掉 YourProject/features/support/01_launch.rb 上的 APP_BUNDLE_PATH 定义,像#APP_BUNDLE_PATH = "~/..../../myApp-cal.app" 这样葫芦 gem 可以自动定位应用程序。
  2. 打开一个控制台,从中转到项目文件夹。然后输入gem install calabash-cucumber这将安装葫芦宝石,即使您以前安装过它也可以再次运行,也没有任何危害。然后进入calabash-ios setup该终端,这将创建一个葫芦目标并将葫芦框架添加到您的 iOS 项目中。此处提到了有关设置过程的更多详细信息。
  3. 现在在 xcode 编辑器中打开项目文件(您可以看到 calabash.framework 已成功添加到项目的框架组中。)选择 yourApp-cal 目标和要清理的模拟器,在模拟器上构建并运行 yourApp-cal 目标。
  4. 然后停止它并返回该控制台输入calabash-ios console控制台将启动一个 ruby​​ 控制台,您可以使用该应用程序。现在(当模拟器在您的屏幕上但您的应用程序在该模拟器上是后台时)键入start_test_server_in_background您的应用程序必须进入前台。如果可行,葫芦可以在模拟器上找到并运行您的应用程序。
  5. 请记住,仅当您使用 xcodebuild 命令或脚本或其他东西在单独的文件夹上创建应用程序构建时,才需要设置 APP_BUNDLE_PATH 变量。
于 2014-06-08T08:03:45.817 回答
0

Chathura 的回答对我的一位同事有效,但我们中的一些人不得不找到另一种解决方案。

我们的问题是在引入 CocoaPods 之后发生的。在 Xcode 中,我打开 Organizer 并注意到我们有一个用于 BP(Pods 之前)项目的派生数据文件夹和另一个用于包含 Pods 的工作区的数据文件夹。我删除了 BP 项目的派生数据文件夹,然后一切正常。

在这样做之前我已经重新设置了葫芦,所以我的解决方案可能是 Chathura 的答案和我的结合。

于 2014-12-24T19:47:22.353 回答