Как запускать автоматизированные XCUITests в Xcode для iOS через .ipa

Я столкнулся с проблемой, которая в конечном итоге приводит к следующей ошибке:

The bundle “$(PRODUCT_NAME)” couldn’t be loaded because its executable couldn’t be located. Try reinstalling the bundle.
Error Domain=IDETestOperationsObserverErrorDomain Code=6 "Early unexpected exit, operation never finished bootstrapping - no restart will be attempted" UserInfo=
{NSLocalizedDescription=Early unexpected exit, operation never finished bootstrapping - no restart will be attempted}

Я работаю над автоматизацией своего UITest, но периодически (хотя и в 80% случаев) сталкиваюсь с вышеуказанной проблемой.

Я использую следующую команду из командной строки.

xcodebuild -project Commute.xcodeproj -scheme CommuteUITests -configuration Debug test -destination "platform=iOS,name=$DEVICE_NAME" -derivedDataPath $DERIVED_DATA_DIR -only-testing:CommuteUITests/$SUITE . 

где все имеет обычное значение, но это приводит к вышеуказанной ошибке, а также я иногда предоставляю несколько пунктов назначения.

С другой стороны, я хочу запускать .ipa вместо сборки из исходного кода.

Итак, в основном здесь есть 2 проблемы -

  • Почему я получаю эти ошибки, я завис в Интернете, но я не могу найти решение?
  • Как мне начать свои тесты для тестирования .ipa?

Кто-нибудь, пожалуйста, помогите мне, я застрял здесь очень долго, любая помощь/указатель очень ценится.


person user2606782    schedule 30.11.2017    source источник
comment
Очистите и перестройте проект›   -  person Ali Azam    schedule 01.12.2017
comment
Не работает. Я все еще получаю ту же ошибку. Пакет «$(PRODUCT_NAME)» не может быть загружен, так как не удалось найти его исполняемый файл. Попробуйте переустановить пакет.   -  person user2606782    schedule 01.12.2017
comment
Любой, у кого есть ответ здесь, я получаю указанную выше ошибку. Пожалуйста, сообщите, можно ли ее решить.   -  person user2606782    schedule 01.12.2017


Ответы (2)


Если у вас все еще есть эта проблема, убедитесь, что ваши тесты подбирают правильный файл info.plist. Если тесты обнаружат неправильный файл info.plist, это приведет к следующей ошибке:

The bundle “$(PRODUCT_NAME)” couldn’t be loaded

Я знаю, что вы не используете кокоаподы, но у этого парня была такая же проблема:

https://github.com/CocoaPods/CocoaPods/issues/7178

Поэтому убедитесь, что в ваших тестах используется правильный файл info.plist. Надеюсь это поможет!

person ShaneG    schedule 12.12.2017
comment
Я смог решить проблему сам... На самом деле я импортировал в свой проект какую-то стороннюю библиотеку, в которой есть Info.plist, и похоже, что этот файл plist был причиной моей проблемы... Я удалил этот файл, и все вернулось в норму. Спасибо!! - person user2606782; 14.12.2017
comment
@ user2606782 Нет проблем. Мой ответ как бы связан с этим :) Если вы можете отметить его как правильный ответ на этот вопрос, так как это было проблемой :) - person ShaneG; 14.12.2017

Поскольку упомянутого ответа было недостаточно, вот мои дополнительные идеи:

Да, был загружен файл Info.plist, который не должен был загружаться. Но откуда оно взялось?

Моя цель Tests (в частности, моя цель Tests UI) имела собственный файл Info.plist, и это было нормально, пока я не решил использовать возможность @testable, предоставляемую Xcode в настоящее время. Откройте файл-браузер вашего проекта в Xcode: +0 затем +1 Введите в поиск поле внизу Info.plist

Теперь у меня было два ссылочных файла Info.plist:

  1. Info.plist с целевым членством в целевом приложении (какие классы также импортируются через @testable)
  2. Info.plist с целевым членством было целью тестирования (UI)

Просто отмените выбор второго Info.plist целевого членства (или удалите его, если оно вам больше не нужно), и все должно быть в порядке.

person Lepidopteron    schedule 17.07.2018