iOS Simulator: iOS 16のSimulatorの時計を設定できない件

AppStore用のスクリーンショット、いろんなスクリーンショットの時刻がずれてるのが気持ち悪いので、慣例に従って9:41に設定するわけですが。
基本的には、
xcrun simctl status_bar "iPhone 8 Plus" override --time '9:41'
のようにすればOKのはずなんです("iPhone 15 Pro Max"だとできます)。
ただ(なぜかまだ)iPhone 8 Plusの画像を作る必要があるので、iOS 16.4のiPhone 8 Plusシミュレータを用意しますと…ダメなんです。
エラーも何も出ないんですが、設定できません。
(つまりMacと同じ時刻になってしまう)
Appleのフォーラムを見ていたら、
SIMCTL_CHILD_SIMULATOR_RUNTIME_VERSION=16.4 xcrun simctl boot "iPhone 8 Plus"
でブートしてからやるといい、って書いてあったのですが、これもダメでした。
ですが、
SIMCTL_CHILD_SIMULATOR_RUNTIME_VERSION=16.0 xcrun simctl boot "iPhone 8 Plus"
16.4でなくて16.0ですね。これでやったら行けました。
といっても起動するOSは、「設定」→「情報」で見る限り、16.4のままですし、シミュレータのウィンドウも16.4と出ています。
(16.4でないと使えないAPIとかあるので、16.0だと困ったりしますしね)
ちなみにXcode 15.3です。

しかし、AppStoreの審査はいつまで5.5インチを必須にするんですかね。
iOS 17以降のみがデプロイ対象になっている場合、それが動く5.5インチ端末がないんですが。
自分自身は、まだiPhone 8 Plusをサブとして使っているので、iOS 16が除外されていくのは悲しいんですけども。

あと、Apple Watchは同じことができません。
色々調べましたが、結局、時計の表示を設定する方法は分からず。
そもそも、xcrun simctl status_bar "iPhone 8 Plus" override --time '9:41'
は、時計を設定しているわけじゃなくて、(コマンド通りではありますが)上部のステータスバーの部分だけ書き換えているんですよね。
アプリが時刻(Date.now
)を表示すると、本当の時刻が表示されてしまいます。
Apple Watchは、ずっと時刻というかステータスバーが表示されているわけじゃないので、そうなってないのかなとも思ったりしますが。

しかし、AppStoreの審査はいつまで5.5インチを必須にするんですかね。
iOS 17以降のみがデプロイ対象になっている場合、それが動く5.5インチ端末がないんですが。
5.5インチのスクリーンショットですが、結局は最上部のステータスバー付近と、最下部のホームインジケータ周りの絵面が変わってくる、という話なんですよね(厳密には解像度やら色々違う部分はありますが…)。
自分のアプリでは、スクリーンショット単体ではなくて画面の必要な部分を切り取って貼っています。
で、この切り取った範囲に最上部/最下部が映り込んでさえいないなら、
- 画面の中身はiPhone 8 Plusでも撮らなくてよい
- 画面の外側に機種の枠をつけるのであれば、それはiPhone 8 Plus(っぽいもの)にする
であればそれでいいんじゃないかという気がしています。
↓こんな感じ。
この絵でもAppStoreの審査に通りました。
最上部や最下部を入れるなら、iPhone 8 Plusで撮らないとだめでしょうけども。
AppStoreのレビュワーも5.5インチ端末で動かせないのだから絵と実機が違う、という指摘もないでしょうし…

しかし、AppStoreの審査はいつまで5.5インチを必須にするんですかね。
iOS 17以降のみがデプロイ対象になっている場合、それが動く5.5インチ端末がないんですが。
これ、よくよく調べると、iPhone SE2/SE3はiOS 17に対応していて、かつホームボタンがあるので、見た目はiPhone 8と同じの4.7インチ端末なんですね。
で、この4.7インチ端末向けスクショがない場合は、5.5インチのものが使われるんですね。
まあ、そうなってくるとAppleとしてはどっちを必須にするか悩むところですね。
アップスケールはできればやめたいでしょうし。
5.5インチまたは4.7インチのどちらかを必須、みたいな6.7インチと6.5インチの関係にすれば良いような気はしますけども。