私はCocoaを使用してXcodeにコマンドラインユーティリティ(Foundationツール)を構築しました。このツールはサードパーティのフレームワークを利用しています。コマンドラインツールでのフレームワークの使用
Xcodeですべて正常に動作しますが、このプログラムをどのように展開すればよいですか?
私がFinderからアプリを実行すると、見ているのでライブラリが見つかりません../Frameworks/etc.
サードパーティのフレームワークで静的にリンクできますか?
私はCocoaを使用してXcodeにコマンドラインユーティリティ(Foundationツール)を構築しました。このツールはサードパーティのフレームワークを利用しています。コマンドラインツールでのフレームワークの使用
Xcodeですべて正常に動作しますが、このプログラムをどのように展開すればよいですか?
私がFinderからアプリを実行すると、見ているのでライブラリが見つかりません../Frameworks/etc.
サードパーティのフレームワークで静的にリンクできますか?
残念ながら、OS Xにコマンドラインユーティリティを使用してフレームワークをバンドルする方法はなく、リンク先のフレームワークがアプリケーションバンドルのFrameworks /ディレクトリにバンドルされていると思われます。フレームワークのソースコードにアクセスできる場合は、静的ライブラリをコンパイルし、アプリケーションに静的にリンクする(またはアプリケーションのターゲットに直接ソースを含める)ことができます。あなたがソースコードを持っていないか、静的に何らかの理由でライブラリをリンクしない場合は、残りの2つのオプションがあります。
あなたは、システム全体の/ライブラリ/フレームワークへのアクセスを持っている場合フォルダには、サードパーティのフレームワークをインストールすることができます。これには、ビルド時にフレームワークのインストールパス(INSTALL_PATH
のビルド設定)を/Library/Frameworks
に設定するか、install_name_tool
を使用してフレームワークのインストールパスを/Library/Frameworks
(フレームワークのソースコードがない場合)に変更する必要があります。
コマンドラインユーティリティをアプリケーションバンドルの実行可能ファイル(AppBundle.app/Contents/MacOS/など)でビルドします(GUIアプリケーションを作成する場合と同じように)。サードパーティのフレームワークをアプリケーションバンドルのframeworksディレクトリにコピーすることができます。その後、アプリケーションバンドルを任意の場所に置いて、コマンドラインユーティリティへのシンボリックリンクを作成することができます。
オプション1は確かに受け入れられたアプローチですが、正当な理由があった場合はオプション2を使用しました。
フレームワークのビルド、リンク、およびインストールに関する詳細は、AppleのFrameworks Programming Guideにあります。
#2は私がいつも見たいと思っている非伝統的なアプローチです。私は思っています - INSTALL_NAME_TOOL install nameツールを使用する方法もありますか?どう思いますか? –
誰でも_how_を使って/ Library/Frameworksにフレームワークプロジェクトをインストールすることができますか?私の場合、別のプロジェクトで使用するためにGRDB.swiftをインストールしたいと考えています。 – kjb
スウィフトは現在、フレームワーク内のSwift Standard Libraryにコマンドラインツールをアクセスする必要があります。 kjbの場合、インストーラは/ライブラリ/ Frameworksに追加できるはずです。 – balthisar
ここで似たような質問への回答をチェックしてください - > http://stackoverflow.com/a/19230699/986 –