Попытка минимизировать количество сборок для CI - PullRequest
0 голосов
/ 02 апреля 2019

Я использую CircleCI с fastlane (v2.119.0) для написания кода, сборки, тестирования и отправки моего приложения в testflight.Я пытаюсь запустить тесты для сборки, которую я создал, используя gym, однако я не могу заставить ее работать.

Вот моя конфигурация Fastfile:

default_platform(:ios)

platform :ios do
  before_all do
    setup_circle_ci
  end

  desc "Runs all the tests"
  lane :beta do
    match(
        app_identifier:["com.myapp.ios","com.myapp.ios.OneSignalNotificationServiceExtension"],
        type: "appstore",
        readonly: is_ci
    )
    gym(
        scheme: "MyApp (Production)",
        workspace: "MyApp.xcworkspace",
        silent: true,
        derived_data_path: "DerivedData"
    )
    run_tests(
      workspace: "MyApp.xcworkspace",
      devices: ["iPhone Xs"],
      scheme: "MyApp (Production)",
      clean: false,
      derived_data_path: "DerivedData",
      test_without_building: true
    )
    pilot(skip_waiting_for_build_processing: true)
  end
end

Iесть две разные схемы в моем приложении - MyApp (Staging) и MyApp (Production).То, что должно произойти в приведенной выше полосе beta, - это совпадение кодовых знаков - это работает правильно.Затем gym должен собрать приложение для моей рабочей области, используя конфигурацию MyApp (Production) Release (Production).Затем эта сборка должна быть сохранена в папке DerivedData, а затем должны быть запущены тесты для этой сохраненной сборки.

Однако в действительности происходит сборка приложения, а затем, когда оно достигает run_tests, ононе может сказать:

Testing failed:
MyAppTests:
MyApp.app encountered an error (Failed to install or launch the test runner. (Underlying error: Cannot launch simulated executable: no file found at /Users/distiller/project/DerivedData/Build/Products/Debug (Production)-iphonesimulator/MyApp.app))

Похоже, проблема в том, что он пытается использовать конфигурацию Debug для тестов, тогда как я использовал конфигурацию Release для сборки?Почему не по умолчанию Release, как сказано в scan документах?Как я могу это исправить?Кроме того, похоже, что Scan ищет путь TEST_HOST в /Users/distiller/project/DerivedData/Build/Products, в то время как гимнастика, кажется, строит в /Users/distiller/project/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/MyApp (Production)/BuildProductsPath

Другое дело, что gym сохраняет мой ipa с именем MyApp-Staging.ipa вместоMyApp.ipa.Почему?

Буду признателен за любую помощь, спасибо!

...