iOS 模拟器无法与 Calabash 一起启动
-
21-12-2019 - |
题
我在我的项目中安装了 Calabash 作为 pod。gem 本身是使用捆绑器安装的。当我尝试为我的 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)"
}
解决方案
好的,这意味着 calabash 无法找到您的应用程序。
先试试这个,
- 评论app_bundle_path在您的Project/features/upports/01_launch.rb上的app_bundle_path定义
#APP_BUNDLE_PATH = "~/..../../myApp-cal.app"
因此,Calabash Gem可以自动找到该应用程序。 - 打开控制台并从中转到项目文件夹。然后输入
gem install calabash-cucumber
这将安装 calabash gem,即使您之前安装了它,也可以再次运行,也没有什么坏处。然后输入calabash-ios setup
在该终端中,这将创建一个 calabash 目标并将 calabash 框架添加到您的 iOS 项目中。有关设置过程的更多详细信息,请参阅 这里. - 现在在 xcode 编辑器中打开项目文件(您可以看到 calabash.framework 已成功添加到项目的框架组中。)选择 yourApp-cal 目标和您想要清理的模拟器,在模拟器上构建并运行 yourApp-cal 目标。
- 然后停止它并返回到控制台输入
calabash-ios console
console 将启动一个 ruby 控制台,您可以使用该应用程序。现在(虽然模拟器在您的屏幕上,但您的应用程序在该模拟器的后台)类型start_test_server_in_background
您的应用程序必须进入前台。如果有效,葫芦可以在模拟器上找到并运行您的应用程序。 - 请记住,仅当您使用 xcodebuild 命令或脚本或其他内容在单独的文件夹上创建应用程序版本时,才需要设置 APP_BUNDLE_PATH 变量。
其他提示
Chathura的答案为我的一位同事工作,但是我们必须找到另一种解决方案。
我们在引入Cocoapods后发生的问题。在Xcode中,我打开了组织者,注意到我们有一个用于BP(POD之前)项目的派生数据文件夹,另一个用于Workspace的POD。我删除了BP项目的派生数据文件夹,然后工作。
我在这样做之前重新设置了calabash,所以我案件中的解决方案可能是Chathura的答案和我的组合。
不隶属于 StackOverflow