2013-09-30 10 views
5

私は基本的にいくつかのほとんど同じターゲットに組み込まれた単一のアプリケーションであるXcodeプロジェクトを持っています。ほぼすべてのビルド設定を中央の場所で行っていますが、静的ライブラリ(libMantle.a)をxcconfigにリンクする方法を理解することはできません。私は-framework-lフラグを試しました。私はさまざまな他のライブラリに使用していますが、動作しません。 .aファイルをLink Binary with Librariesペインから取得する方法があるので、すべてのターゲットを手動で同期させる必要はありませんか?バイナリをxcconfigの静的ライブラリとリンクする

答えて

2

は、あなたがファイルlibGoogleAnalyticsServices.aにリンクしたいとしましょう...それを考え出しました。 .xcconfigには、基本的に3つの作業が必要です。

まず、検索パスにライブラリへのパスがあることを確認します。次に、に2つのフラグを渡して、リンカーを幸福にする-Lディレクトリへのパスと、-lのライブラリへのパスを渡す必要があります。一緒にすべてを置く

はあなたのようなものでしょう:

LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/Vendor/Google Analytics" 
OTHER_LDFLAGS = $(inherited) -L"$(SRCROOT)/Vendor/Google Analytics" -lGoogleAnalyticsServices 

(あなたはあなたの相対パスを調整する必要があります)

を、これは整理ばかりで最も有用なものは、ログインしましたナビゲータ(コマンド+ Xcodeで8)。ビルドフェーズパネルにスタティックライブラリを配置し、ビルドを成功させることで、ログ内のリンカステップの詳細を確認し、どのようにアナライザライブラリをコンパイラに渡していたかを確認できます。そこから、xcconfigのフラグを複製するだけです。

+0

さまざまなターゲットのソースファイルをどのように扱うか尋ねることができますか? xcconfigファイルにも追加しますか?それも可能ですか? – vinzenzweber

+0

ターゲット固有のxcconfigファイルは、本当にうまくいっていないので、かなり面倒です。しかし、私はターゲットのライブラリ依存性が大きく異なるプロジェクトはほとんどありません。具体的に何をしようとしていますか? – farski

+0

私は9つのターゲットを持つプロジェクトを持っています。私はターゲットごとに1つのプリプロセッサマクロを設定するだけで、それらのターゲットが必要です。主に、さまざまな環境(開発、ステージング、プロダクション)の基本API URLを変更します。ですから、コピーするすべてのソースファイルとリソースを含むベースビルド構成を指定する単一のファイルが必要です。 – vinzenzweber

関連する問題