今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

Xcode 12.xにiOS 10.xシミュレーターを追加

Xcode 12.x に iOS 10.x シミュレーターを追加#

背景#

筆者は昨日、ある問題に直面しました。ユーザーから、iOS 10.3.1 の携帯電話であるウェブページが白い画面で開くとのフィードバックがありました。しかし、問題は筆者の手元には 10.x バージョンの携帯電話がなかったため、シミュレーターをインストールして再現を試みることにしました。

しかし、筆者はコンピュータ上の Xcode のバージョンが 12.5.1 であり、iOS 10.3.1 のシミュレーターのダウンロードがサポートされていないことに気付きました。

手順#

iOS 10.3.1 シミュレーターのダウンロード#

その後、筆者は検索した結果、Xcode 12.4 は iOS 10.3.1 のシミュレーターのダウンロードをサポートしていることがわかりました。そこで、Xcode ダウンロードサイトに行き、Xcode 12.4 をダウンロードしました。そして、CMD + ,で Xcode の環境設定を開き、Components タブで iOS 10.3.1 Simulator を見つけてダウンロードしました。以下の図のように。

wecom20210715-161409.png

iOS 10.3.1 シミュレーターの追加#

通常、シミュレーターを追加するには、Xcode を選択し、上部メニューの Window -> Device and Simulators を選択し、Simulators を選択して左下の + をクリックしてシミュレーターを追加します。以下の図のように。

screen shot 2021-07-15 at 16.19.20.png

iOS 10.3.1 シミュレーターをダウンロードしても、追加できないことがわかります。ダウンロードしたのに追加できません。

x5ltb.png

そこで筆者はさらに調査を続け、唯一の真理の記事在 Xcode 12 執行低版本的 iOS 模擬器が見つかりました。記事によると、シミュレーターの runtime バージョンの Framework 内の map ファイルに、各バージョンに対応する Mac OS システムの上限が設定されているため、追加できないとのことです。

解決方法は、シミュレーターの Info.plist 内の CFBundleIdentifier を変更し、map ファイルを回避することです。

具体的な手順は簡単です。シミュレーターと Xcode を閉じて、例えば 10.3 シミュレーターを強制的に実行したい場合、/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 10.3.simruntime/Contents/Info.plist を編集し、CFBundleIdentifier を com.apple.CoreSimulator.SimRuntime.iOS-10-3 から com.apple.CoreSimulator.SimRuntime.iOS-10-3-1 に変更します。-1 を追加することで、バージョン制限チェックの関数がその bundle name を見つけられなくなり、再び Xcode を開くと追加できるようになります!

筆者の実践経験:

  1. Plist を変更する際は、コピーしてから変更し、再度コピーして置き換えることができます。
  2. 変更後、確かに 10.3 のシミュレーターを追加でき、macOS 11.4 システムで正常に動作します。
  3. macOS 12.0 beta システム、つまり macOS Monterey では、変更後に追加に成功しても、実行できません。

参考#

在 Xcode 12 執行低版本的 iOS 模擬器

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。