LoginSignup
5
5

More than 3 years have passed since last update.

Xcode11で新規作成したプロジェクトをiOS13以前の端末で実行できるようにする方法

Last updated at Posted at 2019-10-20

はじめに

Xcode11はSwiftUIやiPadOS向けのマルチタスク強化などあり、環境変化があると思います。
今回は、アプリの開発要件がiOS12以降などの場合にどうすればいいのかを手順書みたいにまとめます。

実際にやってみる

今回は、iOS12.0以降にする前提で進めます。
githubにサンプルプロジェクトをアップしていますのであわせて参考にしてください。
(手順ごとにコミットを分けています。)

手順1 iOS Develoyment Targetを変更する

プロジェクト設定のInfoタブより iOS Develoyment Target の項目を12.0にします。

スクリーンショット 2019-10-20 13.37.05.png

手順2 ビルドエラー箇所を修正する

iOS13以前で非サポートメソッドが全てエラーとなります。
@available(iOS 13.0, *)をつけてビルドエラーを解決します。
詳しい変更箇所は、githubのcommitログ を参考にしてください。

【エラー画面】
スクリーンショット 2019-10-20 13.40.35.png

【修正後】
スクリーンショット 2019-10-20 14.03.11.png

手順3 デバックウィンドに表示されるエラーを解決する

ここまでで一見大丈夫そうなのですが、iOS12上で実行すると画面は真っ暗でなにも表示されません。
デバッグウィンドには [Application] The app delegate must implement the window property if it wants to use a main storyboard file. と表示されています。

【デバッグウィンドの表示例】
スクリーンショット 2019-10-20 13.48.57.png

これは、storyboardファイルがうまく読み込めていないようです。
AppDelegate.swiftvar window: UIWindow? を追加することで解決できます。

var window: UIWindow?を追加した例】
スクリーンショット 2019-10-20 14.07.46.png

以上で終わりです。

最後に

他の方も記載されていますが、いまいちよく分からなかったので自分なりにまとめました。
参考にした。記事のリンクを記載させていただきます。

参考記事

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5