Xcode 10 UI Тесты Причина: изображение не найдено с Cocoapods - PullRequest
0 голосов
/ 05 октября 2018

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

Не удалось загрузить пакет «AppUITests», поскольку он поврежден или отсутствует необходимый ресурс.Попробуйте переустановить пакет.

2018-10-05 11: 04: 59.772078-0500 AppUITests-Runner [53273: 1645870] (dlopen_preflight (/ Пользователи / Джон / Библиотека / Разработчик / Xcode / DerivedData / app-ios)-client-ewtlrcqcxoeiaudgmthymuhcuxfz / Build / Products / Debug-iphonesimulator / AppUITests-Runner.app / PlugIns / AppUITests.xctest / AppUITests): библиотека не загружена: @ rpath / libswiftSwiftOnced /: Developer / John / ReutersXcode / DerivedData / app-ios-client-ewtlrcqcxoeiaudgmthymuhcuxfz / Build / Products / Debug-iphonesimulator / AppUITests-Runner.app / PlugIns / AppUITests.xctest / Каркасы / Alamofire.framework / Alamofire * 100 найден* Мой UITest - это шаблон, созданный Xcode 10, я использую Cocoapods 1.5.3 и Swift 4.2

Структура моего проекта:

  • Рабочая область
    • Пользовательская платформа(Подфайл здесь)
    • Приложение A (Здесь я запускаю UITests)
    • Приложение B

Мой подфайл выглядит такэто:

platform :ios, '10.0'

inhibit_all_warnings!
use_frameworks!

target 'App Library' do
    use_frameworks!

    pod 'Intercom'
    pod 'Spreedly'
    pod 'Alamofire'
    pod 'IGListKit'
    pod 'CardIO'
    pod 'SwiftKeychainWrapper'
    pod 'OneTimePassword', :git =>   'https://github.com/john/OneTimePassword.git', :branch => 'develop'
    pod 'SnapKit'
    pod 'DateToolsSwift'
    pod 'BetterSegmentedControl'
    pod 'SDWebImage'
    pod 'SwiftLocation'
    pod 'Nuke'
    pod 'Instabug'
    pod 'Mixpanel-swift'


    target 'App LibraryTests' do
        inherit! :search_paths
        # Pods for testing
    end

    target 'App' do
        project '../App/App'
        inherit! :complete

        use_frameworks!

        pod 'FacebookCore'
        pod 'FacebookLogin'

        target 'AppTests' do
            inherit! :search_paths
            # Pods for testing
        end
    end

    target 'App Business' do
         project '../App Business/App Business'
         inherit! :complete

         use_frameworks!

         target 'App BusinessTests' do
             inherit! :search_paths
             # Pods for testing
         end

         target 'App BusinessUITests' do
             inherit! :search_paths
             # Pods for testing
         end
     end

end

# The UI Test target I'm trying to run
target 'AppUITests' do
     inherit! :search_paths
     use_frameworks!
     # Pods for testing
     project '../App/App'
     pod 'Intercom'
     pod 'Spreedly'
     pod 'Alamofire'
     pod 'IGListKit'
     pod 'CardIO'
     pod 'SwiftKeychainWrapper'
     pod 'OneTimePassword', :git => 'https://github.com/john/OneTimePassword.git', :branch => 'develop'
     pod 'SnapKit'
     pod 'DateToolsSwift'
     pod 'BetterSegmentedControl'
     pod 'SDWebImage'
     pod 'SwiftLocation'
     pod 'Nuke'
     pod 'FacebookCore'
     pod 'FacebookLogin'
     pod 'Instabug'
     pod 'Mixpanel-swift'
end

workspace '../app-ios-client'

У меня естьпопытался поместить цель теста пользовательского интерфейса в целевое приложение с помощью !inherit:complete и !inherit:search_paths, переместив его наружу, как в коде, размещенном выше.Я также очистил папки сборки, удалил производные данные и перезапустил XCode, и у меня все еще есть эта проблема.Я также попытался добавить import UIKit и import Alamofire, и ничего не получилось.Между всеми этими возможными исправлениями я запустил pod deintegrate, а затем pod install.Я думаю, что проблема может быть связана с тем, что подфайл находится внутри моей пользовательской структуры, но, честно говоря, я понятия не имею.Есть идеи?Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Попробуйте добавить наследовать!: search_paths

также изменяется ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES в post_install

use_frameworks!

def shared_pods
    pod 'SomePod'
end

target 'App_name' do
    shared_pods
end

target 'App_nameTests' do
    inherit! :search_paths
    shared_pods
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'YES'
        end
    end
end
0 голосов
/ 05 октября 2018

Я исправил это, изменив цель в моем подфайле на:

target 'AppUITests' do
    inherit! :search_paths
    use_frameworks!
    # Pods for testing
    project '../App/App'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...