Ребята, интересует найти в чате людей, занимавшихся интеграцией Saucelabs в CI/CD XCUI. В частности, как вы собирали .ipa в командной строке для runner.jar таким образом, чтобы .xctest файл при билде прописывал в него необходимые переменные сред окружения.
В документации saucelabs создания .ipa бинаря момент с .xctest пропущен...
#xcuitest #saucelabs #xcode
Решение:
Saucelabs разрешает засылать кроме .ipa еще и .app файлы. Изначальная проблема была в том, что .app не включал в себя данные xctest проекта (xctest располагается выше по иерархии и не пакуется в .ipa).
Специфика проекта не позволяла билдить .ipa над SDK (scan / gym в fastlane падали с ошибкой), поэтому нужно было как-то заинжектить в проект файл, который бы был human-readable формата и легко модифицируемый.
Workaround:
1) добавить %filename%.plist к проекту и описать в нем Key val с плейсхолдер значениями.
2) где-то в билд чейне вызвать скрипт и заменить плейсхолдер значения на расчитанные значения в добавленном к проекту .plist файле (gsub)
3) в самом коде обращаемся к файлу через Bundle чтобы прочитать нужные значения
if let url = Bundle(for: TestUICase.self).url(forResource: "TestSettings", withExtension: "plist"),
let dict = NSDictionary(contentsOf: url) as? [String:Any] {
domain = dict["EST_HOSTNAME"] as! String
}