Xcode からアプリケーションを実行すると、いくつかの環境変数が展開されます。たとえば、実行可能ディレクトリを DYLD_LIBRARY_PATH に追加します。また、実行可能ディレクトリに libjpeg.dylib があるため、アプリケーションの初期化に失敗し、次のエラーが発生します。
dyld: Library not loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
Reason: Incompatible library version: ImageIO requires version 1.0.0 or later, but libJPEG.dylib provides version 0.0.0
これは明らかに DYLD_LIBRARY_PATH の展開が原因で発生します。dyld は、システム フレームワークのロード中に、システム 1 の代わりに私の libjpeg.dylib をロードしようとします。私にとって、このような Xcode の動作は非論理的に見えます。ターミナルからアプリケーションを実行する場合と Xcode から実行する場合で結果が異なるためです。そのため、このような Xcode の動作を無効にする方法を探しています。
PSスキームの「環境変数」セクションでDYLD_LIBRARY_PATHを設定しても、DYLD_LIBRARY_PATHがMY_VALUE:EXECUTABLE_DIRに設定されるため、役に立ちません。