2017-07-14 2 views
0

私はオープンソースライブラリ用のポッドを構築しており、パブリックヘッダファイルのディレクトリ構造はそのまま残す必要があります。 簡略化した例はこれです:pod lib lint header_mappings_dir以外のヘッダファイルについての苦情

include/header1.h 
include/foo/header2.h 
src/file.c 
src/internal.h 

includeディレクトリには、公共のヘッダーが含まれています。

マイpodspecが含まれています

s.public_header_files = 'Foo/Classes/include/**/*' 
s.private_header_files = 'Foo/Classes/src/internal.h' 
s.header_mappings_dir = 'Foo/Classes/include' 

Exampleプロジェクトは罰金コンパイルし​​ディレクトリは、元includeディレクトリと同じ構造が含まれています。それでも

pod lib lint Foo.podspec --use-librariesは私に、このエラーを与える:

- ERROR | [iOS] header_mappings_dir: There are header files outside of the header_mappings_dir (Foo/Classes/src/internal.h) 

まあ。はい。確かに。しかし、なぜこれは誤りですか?私は状況に全く問題ありません。

解決策は自分で見つけましたが、正しいかどうかはわかりません。

s.exclude_files = 'Foo/Classes/src/internal.h' 

これは、linterをうれしくし、プロジェクトをコンパイルします。しかし、ファイルはプロジェクトの一部なので、間違っていると感じます。

ありがとうございます!

答えて

0

私はこれに自分自身で答えるでしょう。

exclude_files podspecをgitサーバーにプッシュすると、回避策が機能しませんでした。

問題は実際に誤解されました。他のパス指定を使用して、source_files行に明示的に指定したファイルを除外しないでください!

解決策は、明示的に、ファイルをsource_files行に追加することです。これは、パブリックヘッダーの一部であるか、Xcodeでコンパイルルールを取得する必要があります。

s.preserve_paths = 'Foo/Classes/src/**/*' 

今すぐすべての作品を経て

その他のファイル(含まれているが、自分でコンパイルされていないする必要がありますheader_mappings_dirと.cファイルの外のヘッダー)が追加されます。

関連する問題