Tôi đang sử dụng một chiếc cocoapod trong nhà có tên là temple8 trong một ứng dụng mà tôi đang xây dựng. Đây là Podfile của tôi:Không thể sử dụng Cocoapod trong Bài kiểm tra Đơn vị
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
Tôi cần tham khảo các phần của temple8 trong các bài kiểm tra của tôi, đó là lý do tôi đưa nó vào cả hai mục tiêu kiểm tra. Nhưng sau đó khi tôi chạy bất kỳ thử nghiệm của tôi, tôi nhận được một danh sách dài các lỗi như thế này:
objc [83.693]: Lớp PLBuildVersion được thực hiện trong cả hai /Applications/Xcode.app/Contents/Developer/Platforms /iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x112334998) và /Ứng dụng/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs /iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x112156880). Một trong hai người sẽ được sử dụng. Cái nào không xác định.
Ban đầu tôi nghĩ rằng việc sao chép các lớp học là do bao gồm đền8 trong cả mục tiêu kiểm tra và mục tiêu của ứng dụng. Nhưng nếu tôi loại bỏ temple8 từ các chỉ tiêu kiểm tra, bất cứ lúc nào tôi cố gắng sử dụng @testable import ...
trong các thử nghiệm của tôi, tôi nhận được một
Failed to import bridging header...
build lỗi. Có nghĩa là các tệp tiêu đề temple8 trong tiêu đề bắc cầu của ứng dụng không thể được tìm thấy bởi các bài kiểm tra. Vì vậy, tôi không chắc chắn cách tiếp cận tốt nhất là ở đây.
À nó giống như tôi ' m cấm viết các bài kiểm tra đơn vị cho đến khi Apple giải quyết vấn đề này. Không phải là một tình huống tuyệt vời ... Rất may là hầu hết logic của ứng dụng đều nằm trong bản thân ngôi đền8, được kiểm tra kỹ lưỡng. – AdColvin