2017-02-01 7 views
2

私はSwift Package Managerを使用しています。私は「迅速なビルド」を使って正常に構築できるプロジェクトを持っています。私は "swift package generate-xcodeproj"を介してXcodeプロジェクトを作成しました。 Xcodeでプロジェクトを開くと、正常に構築されます。ModuleMap:傘のヘッダーの相対パスを設定するにはどうすればよいですか?

Xcodeプロジェクトは、2つのモジュールAを含み、B.

モジュールAは、次のマップを持っている:

module ModuleA { 
    umbrella header "/Users/Robert/Temp/MyProject/Sources/ModuleA/include/ModuleA.h" 
    link "ModuleA" 
    export * 
} 

モジュールBはAに依存し、以下のインポートを有する。

import ModuleA 

ここまでは順調ですね;すべて正常に構築されます。私はモジュールBを構築するために得ることができないことを行うとき、しかし

module ModuleA { 
    umbrella header "ModuleA.h" 
    link "ModuleA" 
    export * 
} 

:今、私はそれのような、相対パスを使用するようにモジュールマップを変更したいエラー - アンブレラヘッダ「ModuleA.h」ではありません見つかりました。ビルド設定 - >検索パス - >ヘッダー検索パスとユーザーヘッダー検索パスで考えることができるすべてを試しました。私は同様の問題をオンラインで見つけました。ここと他の場所で、私が読んだことを試してきましたが、これまでは行っていません。

これは髪の引き上げ段階に達しました。どんなアドバイスも大歓迎です!

答えて

1

私が推測しているのは、生成されたmodulemapを修正することです。

module ModuleA { 
    umbrella header "ModuleA.h" 
    link "ModuleA" 
    export * 
} 

実行$ swift package cleanをカスタムmodulemap動作することを確認するために、古い生成.buildディレクトリ内modulemapと$ swift buildを削除する:含む/Users/Robert/Temp/MyProject/Sources/ModuleA/include/module.modulemapでmodulemapファイルを作成します。 次に、生成されたXcodeプロジェクトを削除し、再生成します。

+0

ありがとう、Ankit!それはうまくいった。そして、なぜそれがうまくいったのかについての光を放つことができれば、それは素晴らしいことでしょう。 'swift package generate-xcodeproj'コマンドを実行したときにモジュールマップを配置すると、モジュールマップの相対パスに適した設定でプロジェクトが生成されたと仮定します。しかし、どうしたらいいか分かっていれば手動でプロジェクトを微調整できたはずです。 [xcodeのビルド設定の広大さは大変です。] – Verticon

関連する問題