今是昨非

今是昨非

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

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 模擬器を見つけました。この記事によると、シミュレータのランタイムバージョンのフレームワーク内のマップファイルには、各バージョンに対応する Mac OS システムの上限が設定されているため、追加できないということです。

解決策は、シミュレータの Info.plist ファイルの該当する CFBundleIdentifier を変更し、マップファイルを回避することです。

具体的な手順は非常に簡単です。シミュレータと 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 を追加します。その後、Xcode を開き直すと追加できるようになります!

筆者の実践経験:

  1. Plist を編集するためにコピーして編集し、編集後に再度コピーして置き換えることができます。
  2. 編集後、10.3 のシミュレータを追加することができました。Mac 11.4 システムでは正常に動作しました。
  3. Mac 12.0 ベータシステム、つまり macOC Moterey では、編集後に追加できても実行できません。

参考#

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

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