9

私のクライアントは、blah-device.a と blah-simulator.a という 2 つのコンパイル済みライブラリを提供しています。デバイス コンパイル モードで blah-device.a を使用し、シミュレータ コンパイル モードでシミュレータを使用するように xcode に指示するにはどうすればよいですか?

私のクライアントは私にこれらの指示を与えます

  1. [グループとファイル] パネルで [ターゲット] グループを開き、プロジェクト アイコンを右クリックして、[追加] > [既存のフレームワーク] を選択します。
  2. [リンクされたライブラリ] セクションで、[ライブラリを追加] アイコン (+) アイコンをクリックし、[その他を追加] をクリックします。
  3. blah-device.a (iPhone デバイスで直接開発する場合) または blah-simulator.a (iPhone シミュレーターで開発する場合) のいずれかを選択し、[追加] をクリックします。

既にヘッダー ファイルをそこにコピーしましたが、これらの手順ではさまざまなプロファイルを簡単にビルドすることはできません。

DEVICE プロファイルを使用してビルドする場合は Xcode に blah-device.a をリンクさせ、SIMULATOR プロファイルを使用してビルドする場合は blah-simulator.a をリンクさせるにはどうすればよいですか?

どんな助けでも大歓迎です。

4

4 に答える 4

17

今後の参考のために、このような状況を処理する良い方法は、XCode に含めることができる単一のアーキテクチャに異なるアーキテクチャ .a をグロブすることです。これは、 lipoコマンド ライン ツールを使用して実行できます。

リポ libx.a liby.a -create -output libz.a

たとえば、libx.a が armv6 および armv7 であり、liby.a が i386 である場合、結果のライブラリ libz.a は armv6、armv7、および i386 になります。

lipo -info を介して .a ファイルを検査することもできます。

お役に立てれば。:)

于 2011-07-14T20:35:22.430 に答える
7

それを行う簡単な方法があります。1 つのターゲットの下で「ライブラリ検索パス」を複製し、それぞれに異なるアーキテクチャを設定できます。その後、シミュレーターとデバイスに別のパスを設定できます。

于 2011-04-16T21:10:58.170 に答える
2

ライブラリごとに異なるリンクパスを使用できます リンクパスの

于 2014-08-14T07:20:10.330 に答える
2

最も簡単な方法は、既存のターゲットを複製して 2 つの別個のターゲットを作成することです。1 つを「Foo デバイス」、もう 1 つを「Foo Simulator」と名付けます。次に、XCode で blah-device.a を右クリックし、[ターゲット] タブを選択して、"Foo Device" ターゲットがオンにチェックされ、"Foo Simulator" ターゲットがオフにチェックされていることを確認します。

balah-simulator.a についても繰り返しますが、今回は「Foo Device」ターゲットがオフで、「Foo Simulator」ターゲットがオンになっています。

シミュレータ ビルドを実行する場合は常に、Active SDK ポップアップからシミュレータを選択し、ターゲット ポップアップから「Foo Simulator」を選択してください。デバイスのテストでは、デバイスと「Foo デバイス」ターゲットを選択します。

于 2009-11-15T09:12:33.567 に答える