Невозможно использовать Cocoapod в модульных тестах

Я использую собственный кокоапод под названием temple8 в приложении, которое я создаю. Здесь мой подфайл:

platform :ios, '9.0'

def temple8
    pod 'j2objc-temple8-debug', :configuration => ['Debug'], :path => '../temple8/build/j2objcOutputs'
    pod 'j2objc-temple8-release', :configuration => ['Release'], :path => '../temple8/build/j2objcOutputs'
end

target 'cartful-ios' do
  use_frameworks!

  temple8

  pod 'Stripe'
  pod 'Alamofire', '~> 4.0'
  pod 'FontAwesomeKit', :git => 'https://github.com/PrideChung/FontAwesomeKit.git'
  pod 'KeychainAccess'
  pod 'pop', '~> 1.0'
  pod 'libPhoneNumber-iOS', '~> 0.8'
  pod 'AsyncDisplayKit', :git => 'https://github.com/facebook/AsyncDisplayKit.git'
  pod 'Intercom'
  pod 'Mixpanel-swift'
  pod 'UICountingLabel'
  pod 'DTFoundation'

  target 'cartful-iosTests' do
    inherit! :search_paths
    temple8
  end

  target 'cartful-iosUITests' do
    inherit! :search_paths
    temple8
  end

end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
        end
    end
end

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

objc [83693]: класс PLBuildVersion реализован как в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x112334998) и /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x112156880). Один из двух будет использован. Какой из них undefined.

Первоначально я думал, что дублирование классов было вызвано включением храма8 как в целевые объекты, так и в целевые приложения. Но если я удалю храм8 из тестовых целей, каждый раз, когда я пытаюсь использовать @testable import ... в своих тестах, я получаю

Failed to import bridging header...

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

+5
источник поделиться
2 ответа

Насколько я знаю, это предупреждение не то, что вы сделали. Я думаю, что видел других людей, имеющих одну и ту же проблему, и насколько я могу сказать, что это проблема в последнем SDK от Apple. Я говорю, что вы можете смело игнорировать его сейчас. Вот некоторые люди, имеющие те же проблемы:

Проверьте этот ответ, чтобы получить дополнительную информацию.

+3
источник

Я не думаю, что вам понадобится temple8 внутри ваших тестовых целей - это должны быть библиотеки для тестирования: здесь example.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос