Xcode 10 - UITests - причина: изображение не найдено - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь запустить UItests для моего приложения, но он падает, как только загружается.Вот ошибка.

2018-09-29 16:19:49.577151+1000 xxxUITests-Runner[6007:69633] (dlopen_preflight(/Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/xxxUITests): Library not loaded: @rpath/libswiftContacts.dylib
  Referenced from: /Users/Acc/Library/Developer/Xcode/DerivedData/xxx-bjuwemcifadxhlhgojgfktmmades/Build/Products/Debug-iphonesimulator/xxxUITests-Runner.app/PlugIns/xxxUITests.xctest/Frameworks/MapboxGeocoder.framework/MapboxGeocoder
  Reason: image not found)

Я использую CocoaPods (1.6.0.beta.1) для установки моих фреймворков.Я использую Xcode10 с swift 4.2 и IOS 12. Git используется для контроля версий с другими разработчиками (возможно, есть конфликты?).

Мое целевое приложение отлично работает как на симуляторе, так и на реальном телефоне, как и мои юнит-тесты.Но моя цель UITest терпит неудачу, как только она запускается.Эта проблема возникает как на симуляторе, так и на реальной машине.

До этого было много сообщений по этому вопросу, но ни одна из них не помогла мне до сих пор.Раньше у меня было 2 изолированных вхождения, первый раз я решил, добавив зависимости в мой файл pod для модуля UITest, и второй раз, просто удалив мою цель и скопировав и вставив классы обратно в новую цель (неконструктивно, но в крайнем случае).Я могу сделать то же самое и в этот раз, но это пустая трата времени, и я боюсь, что это снова возникнет в будущем.

Вот что я сделал до сих пор:

  1. Чистая папка Xcode создает и удаляет производные данные, журналы устройств IOS и папки пользовательских данных.

  2. Перезапущен Xcode, Mac и мойустройство и симуляторы, а также повторное хранилище и обновление модуля && pod install

  3. Имейте «Всегда вставлять быстрые стандартные библиотеки» как да

  4. Проверено моеЦелевое приложение корректно

  5. Убедитесь, что фреймворк-нарушитель (MapboxGeocoder.framework) включен в фреймворк Embed Pod

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Нашел другое решение, предложенное в проблеме Cocoapods.

Поскольку мой проект - это фреймворк, значит, в тесте нет хост-приложения.

Изменен Podfile

target 'framework' do
    use_ frameworks!
    pods my_dependencies
    target 'framework_tests' do
        inherit! :search_paths
    end
end

К

target 'framework' do
    use_ frameworks!
    pods my_dependencies
    target 'framework_tests'
end

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

0 голосов
/ 03 октября 2018

Итак, через 5 дней мне удалось решить собственную проблему.

Я решил ее, переместив цель UITests из области действия моего основного приложения в Podfile.

От:

target 'App' do
    use_frameworks!

    pods 'Firebase'

    target 'AppUITests' do
        pods 'Testingpod'
    end
end

Кому:

target 'App' do
    use_frameworks!

    pods 'Firebase'
end

target 'AppUITests' do
    pods 'Testingpod'
end
...