GPhoto2 Frameworkを使用して簡単なアプリケーションを作成しましたが、フレームワークが最初にコンパイルされた場所にある限り、これは機能します。ただし、これをアプリバンドル内に移動したいので、個別にインストールする必要はありません。そのため、このメインの実行可能ファイルに対して相対的に機能させる必要があります。
残念ながら、フレームワークは Xcode プロジェクトではありません。スクリプトを使用してビルドするため、インストール ディレクトリのビルド設定を単純に変更することはできません。これは、回答を探しているときによく見られる解決策です。Xcode と Mac のプログラミングにまったく慣れていないため、フレームワークを Xcode プロジェクトに変換する方法を知ることもできません。
私が遭遇した他のアドバイスは、install_name_tool を使用してライブラリ ID と依存関係を更新し、絶対パスを「@executable_path/../Frameworks/GPhoto2.framework」の形式のものに置き換えることでした。フレームワークは単一のバイナリではなく、多数の .dylib および .so ライブラリが含まれていますが、これらすべての更新は半分しか成功していません。
ビルド時にフレームワークをアプリ バンドルにコピーするように Xcode を設定しました。次に、最初にコンパイルされた場所からフレームワークを削除すると、アプリケーションの読み込みに失敗し、OS X によって生成されたレポートで、予想どおり、libgphoto2 ライブラリが見つからないことが示されます。
次に install_name_tool を使用して、アプリ バンドル内のすべてのフレームワーク ライブラリとアプリ バイナリ自体の参照を更新すると、アプリケーションは読み込まれますが、接続されているカメラが見つかりません。otool を使用すると、すべての参照が正しく変更されていることを確認できます。
しかし、フレームワークのコピーを元の場所に置き換えると、そのフレームワークが相対位置または絶対位置のどちらを使用しているかに関係なく、接続されたカメラを認識して再び適切に機能します。明らかに、ロードしているにもかかわらず、まだこの場所を見ています。フレームワークから元の場所にある個々のライブラリ ファイルを順番に削除して、問題がこれらの依存関係の結果であるかどうかを確認することさえ試みましたが、どれが欠けていてもアプリは機能しません。
ちなみに、フレームワークの更新版を使ってアプリをビルドすると、「@executable_path/../Frameworks/GPhoto2.framework/prefix/lib/libgphoto2.2.dylib」というライブラリが見つからないと言って失敗します。
何か間違ったことをしているのですか、ステップが抜けているのでしょうか、それとも、Xcode の外部で作成されたフレームワークに対して実行しようとしていることは不可能ですか?