Xcode13で画面の縦向き固定が出来なかった時の対処法

2022.01.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Xcode13で新規に開発を進めていたアプリが縦向き固定できなかったので対応しました。

環境

  • Xcode 13
  • Xcode 13.2.1

縦向きにする

アプリ全体で同一の画面オリエンテーション制御をかけるには、

Project > TARGETS > General > Device Orientation でPortraitのみにチェックを入れると縦向き固定ができる

はずでした、、。

しかし、上記の方法だけではXcode13で新規開発をしたアプリでは縦向き固定が出来ませんでした。

対処法

Project > TARGETS > Info > Custom iOS Target Properties > Supported Interface Orientations(iPhone) の項目を見ると、

  • Portrait(bottom home button)
  • Landscape(left home button)
  • Landscape(right home button)

の3つが登録されていることが分かりました。

こちらのLandscapeの二つを削除すると、無事にアプリの縦向き固定をすることが出来ました。

Xcode 12.5.1では

Xcode12.5.1では、

Project > TARGETS > General > Device Orientation でPortraitのみにチェックを入れると縦向き固定が出来ます。

また、Xcode12.5.1で作成したプロジェクトをXcode 13で開いて検証してみました。

  1. Xcode12.5.1で新規プロジェクト作成
  2. Portraitのチェックボックスのみにチェックをした後、閉じる
  3. そのプロジェクトをXcode13で開き、実機またはシュミレーターで縦向き固定を確認

上記の検証を行いましたが、正常に縦向き固定されていたのでXcode13より前で開発されたプロジェクトのXcode13対応案件ではなさそうです。

おわりに

Xcode12系では、General > Device Orientation のチェックボックスと Info > Supported Interface Orientations(iPhone) の内容が連動していたので、これはXcode13からのバグのように思えますが、Xcode13.2.1でも試してみた結果は、変わらずでした。

Xcode側での改善がされるまでは、こちらの問題に遭遇される方もいらっしゃると思うので、この記事が誰かの救いになればと思います。