Calabash-ios: 运行 test physical device installed ipa 没有 xcodeproj

Calabash-ios: Run test physical device installed ipa without xcodeproj

我是 calabash-ios 的新手,有一个虚拟问题是:

我怎么可能 运行 使用安装了 ipa 文件(包括 calabash 框架)但没有 xcodeproj 的真实设备进行 calabash 测试?

问题是我正在做 QA,Dev 只给我 ipa 文件进行测试,没有源代码。

更新: 通过添加 BUNDLE_ID,我可以 运行 控制台和黄瓜中的 ipa 文件。并确保 CFNetwork.framework 包含在应用程序框架中以建立连接。

但是 运行 这个场景我遇到了另一个问题: 1.当我运行下面的命令时:

DEVICE_ENDPOINT=http://192.168.1.9:37265 NO_LAUNCH=1 BUNDLE_ID=com.example.appname DEVICE_TARGET=UDID cucumber

然后我得到这个错误:

 A JSON text must at least contain two octets! (JSON::ParserError)
  features/my_first.feature:8:in `Then I touch "LOG-IN/ CREATE ACCOUNT"'

已跳过所有其他步骤

  1. 然后我运行控制台代码

    DEVICE_ENDPOINT=http://192.168.1.9:37265 NO_LAUNCH=1 BUNDLE_ID=com.example.appname DEVICE_TARGET=UDID calabash-ios console
    

那我运行server_version 我收到回复说连接成功 但是当我 运行 start_test_server_in_background 我等得太久了,我看到我的物理设备上的应用程序一直崩溃并一次又一次地启动,直到它停止为:

Unable to start. Make sure you've set APP_BUNDLE_PATH to a build supported by this simulator version
Calabash::Cucumber::Launcher::StartError: Calabash::Cucumber::Launcher::StartError: 

"Timed out waiting for UIAutomation run-loop Error while writing to fifo. RunLoop::Fifo::NoReaderConfiguredError.
 2015-10-01 10:49:41.634 instruments[15640:10558880] WebKit Threading Violation - initial use of WebKit from a secondary thread.
 2015-10-01 10:49:42.574 instruments[15640:10558978] Attempting to change event horizon while disengage
 2015-10-01 10:49:42.577 instruments[15640:10558877] Attempting to change event horizon while disengage
 Instruments Trace Error : Target failed to run: Permission to debug app

任何人都可以帮忙!我试图搜索一些解决方案,但它们几乎是在模拟器上发布的,并且它们包含 xcodeproj。作为 QA,我没有源代码,只有 .ipa 文件。 :( 谢谢

只要文件是用葫芦构建的,那不是问题。你只需用 APP_BUNDLE_PATH 调用 cucumber 到你的 .ipa 文件所在的位置,并且应该全部设置好。

但您应该知道,需要构建 .ipa 以匹配您 运行 测试的目标。

您应该设置 3 个变量:

$ DEVICE_TARGET=<UDID> \
    DEVICE_ENDPOINT=http://<ip>:37265 \
    BUNDLE_ID=com.example.YourApp cucumber

设备和主机要在同一个网络上。

您的设备上必须安装 .ipa。

您可以在 Xcode 中通过在设备管理器 window 中拖放或使用第三方工具(如 ideviceinstaller(可通过自制程序获得))来执行此操作。

你应该永远不要设置NO_LAUNCH

http://calabashapi.xamarin.com/ios/file.ENVIRONMENT_VARIABLES.html#label-NO_LAUNCH

您还需要启用您的设备进行开发并在 Settings.app > 开发人员中打开 UIAutomation。

  1. Enabling device for development
  2. RunLoop::Fifo::NoReaderConfiguredError

UPDATE 为了回答这个问题,我重写了 Testing on Physical Devices Calabash iOS wiki 页面。哇,那个内容好古老!