私が作成したフレームワークのmy podspecファイルの定義に問題があります。私は、次のファイル構造を有する:cocoapods podspecファイルのヘッダー検索パスを定義します
Xcodeで/
|-- 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のが正しく、公開ヘッダファイルを見つけることができるように、私はUSER_HEADER_SEARCH_PATHS
に$(SRCROOT)/core-api
を追加しました。
マイ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:
I最初から再作成specファイルと、各サブ仕様で、コアAPIのヘッダファイルを追加する必要があると思われること、が分かりました。
マイspecファイルは次のように今見える:私はsubspecを使用したい場合は
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
ただし、この場合には、モジュールのヘッダは、のみ追加されます。 module1と2だけを使用したい場合は、他のモジュールのヘッダーがありません。 core-apiヘッダーフォルダーは、フレームワーク内のすべてのモジュールで常に使用できる必要があります。それ、どうやったら出来るの?