Xcode 7ではデフォルトでビルド時にビットコードが含まれるという記事においてはXcode 7ではiOSアプリ/ライブラリー/フレームワークをビルドする時にはデフォルトでビットコードが含まれることを説明したが、今回はビットコードを含める際にもう一つDeployment Targetという落とし穴に気をつけなければならないという点を説明したい。
ビットコード有効時ではDeployment Target ((動作対象のOSの最低バージョン)) の設定によってはビルドが通らない場合がある。例えば、以下のエラーが発生する場合がある。
-fembed-bitcode is not supported on versions of iOS prior to 6.0
これは、ビットコードを有効にする場合、Deployment Targetが6.0以上、つまりiOS 6.0以降を動作必須OSとするように設定する必要があるということである。なお、ビットコードを有効にする場合、すべてのアプリ・ライブラリー・フレームワークがビットコードが有効になっている必要があるため、すべてのターゲットのDeployment Targetが6.0以降になっている必要がある。
ちなみに、Xcode 7ではDeployment Targetのリストに載っているiOSの最低バージョンが6.0となっており、それ以前のバージョンは切り捨てられているようである。手動で6.0より前のバージョンに指定することは可能のようだが、意図せぬ動作を起こす可能性があるため、避けた方が良いだろう。
なお、App Store – Support – Apple Developer(2015年09月30日10:15閲覧時点)によれば、デバイスの90%以上がiOS8以降であり、基本的にはDeployment Targetは8.0、より古いバージョンをサポートするのであれば7.0にしてもほぼすべてのデバイスをサポートできる計算になる。
Deployment Targetは特に古いアプリプロジェクトから開発している時に見落としがちなので、是非とも気をつけたいところである。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。