外部フレームワークを使用する場合、XcodeにはEmbedded BinariesとLinked Frameworks セクション。
外部フレームワークをダウンロードし、Finder-> Xcodeにドラッグすると、フレームワークがLinked Frameworks and Librariesセクションに配置されます。
Carthageでライブラリを構築する場合、Embedded Binariesセクションにドラッグすることをお勧めします。
どちらの方法でもAPIが利用可能になるため、どちらもリンケージの観点から機能しているようです。さらに、フレームワークをEmbedded Binariesセクションに追加すると、 Linked Frameworks and Librariesセクションに自動的に追加されます。
だから、誰が正しいですか?カルタゴまたはインターネットの残りの部分? Xcodeプロジェクトに外部リソースを含めるための2つのオプションがあるのはなぜですか?
リンク-フレームワークで定義されたAPIを使用する場合、フレームワークをリンクする必要があります。
埋め込み-このプロセスにより、追加されたフレームワークがアプリバンドル内に埋め込まれ、アプリと拡張バンドル間でコードを共有できる可能性があります。サードパーティのフレームワークのみを埋め込みます。iOSで提供されているものは、デバイスで簡単に使用できるため、埋め込みません。埋め込む場合、つまり、Xcodeがビルドをコンパイルして作成できるように、それらにもリンクする必要があります。アプリがデバイスで実行されると、必要に応じて埋め込みフレームワークがメモリにロードされます。
バイナリを埋め込むと、製品に含まれます。ライブラリまたはフレームワークを埋め込むことなくリンクするだけの場合、製品の一部にはなりません。
ただし、iOS8では、すべてのサードパーティフレームワークを「埋め込む」必要があります。さまざまなプログラム間で共有されるフレームワークでさえ、それらのプログラムのすべてに「組み込まれる」必要があります。共有場所のデバイスにインストールされた場合、共有場所から同じ「埋め込み」コードを使用する他のインストールプロセスは、その既存のインストールを再利用できます。これはiOS8に固有のものであり、iOS8以前およびiOSの世界以外ではこの回答は正確ではありませんでした。
Linking
コンパイル時またはロード/実行時に機能するLinker
の詳細。 Linker
copyLibrary
をターゲットバイナリにコピーします。 Framework
は独立しているため、この場合、Linker
はDynamic Framework
システムローダーパス内またはバンドル内で検索およびリンクする。
Embedding
は、バイナリをターゲットバイナリにコピーするプロセスです。その結果、内部に配置されます。
続きを読む こちら