Xcode 7以降、Xcodeにはいくつかのライブラリ/フレームワークリンクオプションがあります
プロジェクトタブのアプリケーションTarget
に移動します
General -> Embedded Binaries
General -> Link Frameworks and Libraries
Build Phases -> Target Dependencies
Build Phases -> Link Binary with Libraries
ここに私が見つけたいくつかの方法があります
Embedded Binaries
オプションが表示されますAlamofire.frameworkは、ターゲットの依存関係、リンクされたフレームワーク、埋め込みフレームワークとして、ファイルのコピービルドフェーズで自動的に追加されます。これは、シミュレータとデバイスでビルドする必要があるすべてです。
最初のiOSフレームワークの作成 は、Library.xcodeproj
をワークスペースに追加し、次にBuild Phases -> Link Binary with Libraries
を追加することを示しています
Carthageチュートリアル:はじめに は、Library.framework
をGeneral -> Link Frameworks and Libraries
にドラッグすることを示しています。 General -> Link Frameworks and Libraries
とBuild Phases -> Link Binary with Libraries
は同じようです
Carthage はiOSとOS Xを区別しているようです。
OS X用にビルドしている場合:アプリケーションターゲットの[全般]設定タブの[埋め込みバイナリ]セクションで、使用する各フレームワークをディスクのCarthage/Buildフォルダーからドラッグアンドドロップします。
IOS、tvOS、またはwatchOS用にビルドする場合:アプリケーションターゲットの[全般]設定タブの[リンクされたフレームワークとライブラリ]セクションで、使用する各フレームワークをCarthage/Buildフォルダーからドラッグアンドドロップしますディスク。
ライブラリまたはフレームワークへのリンク を読むと、これらのオプションはフレームワークをアプリケーション/フレームワークにリンクすることに関するものであることがわかります。
しかし、それらの違いは何ですか?単一のオプションはそれらすべてのcatch all
ですか?
カルタゴで構築された動的フレームワークの場合、私は通常この設定を使用します:
すべてのフレームワークとその依存関係を埋め込む責任があるのはアプリターゲットのみです。そうすることで、拡張機能とアプリの両方がフレームワークを使用する場合、アプリと一緒に1回だけ配布されます。
Xcodeインターフェースの場合:
[全般]のビューは、[ビルドフェーズ]タブから入力されているように見えるため、どちらでも使用できます。
それが理にかなっていると思います。
編集:ターゲットの依存関係は、現在のターゲットをビルドする前にビルドする必要があるターゲットです。そのため、アプリターゲットはここに拡張機能をリストし、アプリをビルドするたびに拡張機能がビルドされるようにします。