Xcode (13.3.1)のバージョンで動作確認しています。
はじめに
今日はXcodeの勉強していきます。
シミュレーターで動いたのでいざiPhone実機で起動しようかと
原因
実機のOSが Build Settings
で設定している iOS Deployment Target
より低いためです。
iOS Deployment Target は何?
iOS Deployment Target
はアプリが動作する最低OSの数値です。
つまりこの値より低いOSでアプリをインストールすることができません = 起動できない
リリースした場合どうなるかというとAppStoreでそのアプリがダウンロードができません。
iOS Deployment Target の変更方法
概要
PROJECTとTARGETSの数だけiOS Deployment Target
を設定できます。
PROJECTは共通設定、TARGETSは個別設定といった見方でいいと思います。
なのでTARGETSが優先されます
PROJECTを変えると全TARGETSの値が変わります
(変わらないケースがあります。それ後ほど)
PROJECT で iOS Deployment Targetを変える方法
PROJECTのところをクリックしてinfoタブを開きます。
この数値をプルダウンから選択します。
新規でプロジェクト作った後にこれをすれば大体OKなはず。
TARGETS で iOS Deployment Targetを変える方法
TARGETの場合は少し手順が違ってまして、BuildSettingsタブを開きます。
iOS Deployment Targetという項目を見つけてプルダウンから変更できます。
PROJECT変えてもTARGETSが変わらないケース
PROJECTは共通設定なのでTARGETSも同時に変わるというのが基本動作ですが例外がありました。
TARGETS側で一度でも変更してしまうとPROJECT側の変更が反映されなくなります
iOS Deployment Target
以外の項目も同様な挙動をしますので注意が必要です。
とはいえ優先されるのはTARGETSなのでPROJECTは設定しなくてもいいかもしれません。
iOS Deployment Target の目安
前提としてiOS Deployment Target
の選択できる値はXcodeのバージョンに依存しています。
Xcodeが最新版だとiOS Deployment Target
で選べる最大値が最新iOSの値になっています。
ここからが重要なのですが、
新規プロジェクト作成するとiOS Deployment Target
が選択可能な最大な値になってます。
(これが罠)
しかし実際の案件だと最大の数値にすることは絶対にありえません。
その理由は、
最新OSじゃないと遊べない => アプリがインストールされない => 儲からない からです。
じゃあiOS Deployment Target
はどの値にすればいいかですが、
特定のOS以上でしか使えない機能や処理をメインで使っているアプリならばそのOSの値を設定するでいいと思います。
とはいえ少なくともメジャーバージョン - 1 ぐらいにしないとそもそもインストールできるユーザーが3割ぐらいは減ります。
メジャーバージョン -2 ぐらいでアプリの構造的に問題ないのであればそれがベターだと思います。
お仕事でこの最低OSを決めるときの指標として OSバージョンのシェア率 があると思います。
特に顧客や上司に説明するときになんとなくが通用しないケースがあるので、そういった時に数値で説得力を持たせるしかありません。
シェア率を出してくれてるサイトもたくさんありますので、そういったところで数値を確認して決めるのもいいと思います。
おわりに
最後まで見ていただきヘペトナス!
読者登録・Twitterのフォローもお願いします。