С появлением Cocoapods v1.5, позволяющего статические библиотеки Swift, я пытался преобразовать свои личные модули (изначально только Objective-C) в Swift.Мне удалось это сделать, но у меня осталось предупреждение «Дублирующее определение категории» для всех категорий в модуле.Возможно, я делаю что-то довольно глупое, так как модульные заголовки являются новыми для меня.
У меня есть два частных модуля, один - общая библиотека для разработки, а другой - общая библиотека для тестов.Для краткости я удалил некоторые цели и ссылки на pod в подфайле ниже.
Я заметил, что количество предупреждений может увеличиваться или уменьшаться в зависимости от того, как я импортирую код из частного модуля в приложении.Традиционно я только что использовал: #import "Class.h".Теперь, когда я попытался использовать @import;, предупреждения увеличились.Однажды, когда я использовал #import, они пошли вниз.Но не каждый раз.
Если я использую #import вместо #import "SomeClass.h", появится еще 76 предупреждений.
Что я делаю не так?
ЧтоЯ обнаружил, что, если заголовочный файл категории упоминается только через файл .m, предупреждение исчезает.
source 'https://privatepod.url.com/git/my_podspec'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_modular_headers!
inhibit_all_warnings!
def test_pods
pod 'M13ProgressSuite', '~> 1.2', :inhibit_warnings => true
pod 'AimpTestKit', :path => '../aimptestkit', :inhibit_warnings => false
pod 'Quick', :inhibit_warnings => true
pod 'Nimble', :inhibit_warnings => true
end
def common_pods
pod 'M13ProgressSuite', '~> 1.2', :inhibit_warnings => true
pod 'HockeySDK', :subspecs => ['AllFeaturesLib'], :inhibit_warnings => true
pod 'AimpKit', :path => '../aimpkit', :inhibit_warnings => false
end
target ‘free_app’ do
common_pods
target 'free_app Tests' do
inherit! :search_paths
test_pods
end
end
target ‘paid_app’ do
common_pods
target 'PaidAppTests' do
inherit! :search_paths
test_pods
end
end
target 'LogicTests' do
#no host app
inherit! :search_paths
common_pods
test_pods
end
Это podspec для общей библиотеки (опять же, я удалил некоторые лишниедля краткости):
{
"name": "AimpKit",
"version": "3.0.1",
"summary": "AimpKit library",
"static_framework": true,
"platforms": {
"ios": "9.0"
},
"source": {
"git": "https://privatepod.url.com/git/my_podspec",
"branch": "master"
},
"source_files": "aimpkit/**/*.{h,m,swift}",
"resources": "resources/**/*.{xib,xcassets,storyboard,bundle,png,mp4}",
"requires_arc": [
"aimpkit/arc/**/*.{h,m,swift}"
],
"frameworks": [
"CFNetwork",
"Foundation",
],
"dependencies": {
"HockeySDK/AllFeaturesLib": [
],
}
}