WebKit、WebCore、およびJavaScriptCore用のカスタムバンドルにアプリケーションバンドルがあります。 WebKit、WebCore、またはJavaScriptCoreのシステムバージョンに依存している他のすべてのフレームワークもカスタムバージョンを使用したいと思います。たとえば、Webkitの私のカスタムバージョンは、WebKitのシステムバージョンに依存するプライベートシステムフレームワークを読み込みます。これは、私のWebKitとシステムWebKitの両方がロードされ、通常はクラッシュが直後に起こることを意味します。リリースビルドの環境変数DYLD_FRAMEWORK_PATHを設定する最もクリーンな方法は何ですか?
これは、実行する必要があることを理解する方法は、アプリケーションバンドルが実行を開始する前にDYLD_FRAMEWORK_PATH環境変数を設定することです(フレームワークをロードするための検索順序はここにあります:http://code.google.com/p/macdependency/wiki/SearchPaths)。環境変数はsetenvでコード内で設定できますが、現在実行中のプロセスでは有効になりません。私はそれを再び有効にするためにプロセスを再起動する必要があります。私もこれを避けたいと思います。
私の質問は、私のアプリケーションバンドルを実行する前にDYLD_FRAMEWORK_PATHを設定する最も良い方法です。これはリリースアプリのバンドルでも動作する必要があります。実行可能ファイルが実行される前に誰かが私のアプリケーションバンドルをクリックするたびにスクリプトを実行する方法はありますか?それとも、そこに他の提案がありますか?
ありがとうございます。
「他のすべてのフレームワーク」とはどういう意味ですか?それがプライベートフレームワークだけの場合、プライベートWebKitと関連するフレームワークにリンクするだけでは構いませんか? –
私のカスタムWebkitであるコード山のどこかで、DataDectors.frameworkはウィンドウを右クリック(OSX Lionのみ)し、DataDectorsがプライベートシステムフレームワーク(私によって構築されていない)であればロードされます。これが起こると、DataDectorsはWebKitとJavaScriptCoreのシステムバージョンに依存するため、一度これが起こると、WebKitの2つのコピー、鉱山とシステムが現れます。これは予期せぬ結果とクラッシュを引き起こします。 –
あなたはこれを稼働させることができましたか?私は似たようなことをしようとしています。提案されたアプローチのどれにも幸運を祈ることはありません。 – starkos