我對我創建的框架的podspec文件的定義存在問題。我有以下文件結構:在cocoapods podspec文件中定義標題搜索路徑
/
|-- module1/<source files>
|-- module2/<source files>
...
|-- moduleN/<source files>
|-- core-api/
| |-- module1/<header files>
| |-- module2/<header files>
| ...
| +-- moduleN/<header files>
|-- framework.podspec
+-- framework.xcodeproj
在Xcode我添加$(SRCROOT)/core-api
到USER_HEADER_SEARCH_PATHS
讓Xcode中能正確找到公共的頭文件。
我podspec文件看起來像這樣:
s.default_subspec = 'module1'
s.subspec 'module1' do |ss|
ss.source_files = "module1/**/*.{h,m}"
end
s.subspec 'module2' do |ss|
ss.source_files = "module2/**/*.{h,m}"
end
...
s.subspec 'moduleN' do |ss|
ss.source_files = "moduleN/**/*.{h,m}"
end
目前,沒有任何指令,在此定義了核心API的報頭位置。當我做pod lib lint
我得到錯誤,找不到相應的core-api標題。
我正在搞ss.header_dir
,ss.header_mapping_dir
,s.xcconfig
與USER_HEADER_SEARCH_PATH
,但他們都沒有爲我工作。
如何正確定義podspec文件中頭文件的位置?
EDIT1:
我從頭開始重新創建規範文件,發現,它似乎有必要添加在每個子規範的核心API的頭文件。
我的規格文件現在看起來是這樣的:
s.default_subspec = 'module1'
s.subspec 'module1' do |ss|
ss.public_header_files = "core-api/module1/*.h"
ss.source_files = "module1/**/*.{h,m}"
end
s.subspec 'module2' do |ss|
ss.public_header_files = "core-api/module1/*.h"
ss.source_files = "module2/**/*.{h,m}"
end
...
s.subspec 'moduleN' do |ss|
ss.public_header_files = "core-api/module1/*.h"
ss.source_files = "moduleN/**/*.{h,m}"
end
然而,在這種情況下,模塊的頭只添加,如果我想使用subspec。如果我只想使用module1和2,則缺少其他模塊的標題。 core-api頭文件夾必須始終可用於框架中的所有模塊。我怎麼做?