Xcode: Base SDK と Deployment Target の違い
はじめてまとも(仕事として)に iOS アプリの引き継ぎ開発をするにあたり、後方互換を意識しなければならず、Xcode プロジェクトのビルド設定にある Base SDK と Deployment Target の理解が曖昧だったので、公式ドキュメントを漁って調べてみました。
下記、公式ドキュメントをオレオレ和訳したものになります。
ご参考まで。
Xcode プロジェクトで特定の SDK を使うには、プロジェクトのビルド設定で 2 つの選択をおこないます。 これらの選択はプロジェクトで使う OS 機能を決定します。
- Deployment Target はお使いのソフトウェアを実行できる最も古い OS バージョンを識別する設定です。デフォルトは Base SDK のバージョン以降に対応する OS のバージョンと同じです。
この設定のための Xcode ビルド変数名は
MACOSX_DEPLOYMENT_TARGET
(OS X Deployment Target) とIPHONEOS_DEPLOYMENT_TARGET
(iOS Deployment Target) です。 Deployment Target 以前の OS に組み込まれている機能は無条件に利用できます。 - Base SDK は Base SDK に対応するバージョン以前の OS に組み込まれている機能が利用できます。
この設定のための Xcode ビルド設定名は
SDKROOT
(Base SDK) です。 Deployment Target のバージョン以降、Base SDK に対応する OS バージョンまでの機能は、開発したアプリで利用できます。 ただし、新しい機能が使えるかどうかチェックする必要があります(「iOS 弱リンククラスの使い方」、「弱リンクメソッド、関数、シンボルの使い方」を参照)
以下、原文。