Je suis en train d'utiliser un cocoapod interne appelé temple8 dans une application que je suis en train de construire. Voici mon Podfile :
plateforme :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
cible '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'
cible 'cartful-iosTests' do
inherit! :search_paths
temple8
end
cible '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
J'ai besoin de référencer des parties de temple8 dans mes tests, c'est pourquoi je l'ai inclus dans les deux cibles de test. Mais ensuite, lorsque je lance l'un de mes tests, je reçois une longue liste d'erreurs comme celle-ci :
objc[83693]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x112334998) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x112156880). One of the two will be used. Which one is undefined.
Au départ, je pensais que la duplication des classes était causée par l'inclusion de temple8 à la fois dans les cibles de test et dans la cible de l'application. Mais si je supprime temple8 des cibles de test, chaque fois que j'essaie d'utiliser @testable import ...
dans mes tests, j'obtiens une
Failed to import bridging header...
erreur de construction. Cela signifie que les fichiers d'en-tête de temple8 dans l'en-tête de liaison de l'application ne peuvent pas être trouvés par les tests. Je ne sais donc pas quelle est la meilleure approche ici.