Я использую 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
.Почему?
Буду признателен за любую помощь, спасибо!