コマンドラインツールにLC_VERSION_MIN_MACOSXが含まれるようにする
2020.12.6追記
LC_VERSION_MIN_MACOSXは、macOS SDK 11.0では、存在しない。代わりはLC_BUILD_VERSIONの中のminosである。
Swiftでprocess()を用いて動作させるコマンドラインツールをXcodeを用いないでコンパイルしてアプリに同梱する際、(多分)macOS 10.14SDK以降の環境では注意が必要である。
ことの発端は、ParanoiaImportで用いているcdparanoiaというコマンドラインツールをmacOS 10.14で再コンパイルしたことに始まった。
Xcodeにcdparanoiaをコピーして、AppStore Connectのチェックを行ったところ、LC_VERSION_MIN_MACOSXがcdparanoiaと、その依存dylibに含まれないというエラーのためバリデーションが通らなくなってしまった。
コンパイラフラグにCC=”gcc -mmacosx-version-min=10.13″を付けるとLC_VERSION_MIN_MACOSXが含まれるようになるという話をネットで拾って試したが、cdparanoiaでは、コンフィギュアエラーとなってしまった。
どうしたものかとネットを彷徨うこと数時間、面白いタイトルのブログ記事を見つけた。ひみつメモ帳を現行の macOS に対応させたいである。
なんとなく気になる記事が正解であることは多々ある。今回もこれが当てはまった。
export MACOSX_DEPLOYMENT_TARGET=10.13
上記環境変数を設定した上でcdparanoiaを再度コンパイルしたところ、見事LC_VERSION_MIN_MACOSXがコマンドラインツールに含まれるようになった。当然AppStore Connectのバリデーションも問題なくパスした。
以上。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント