コマンドラインツールに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