全力で怠けたい

怠けるために全力を尽くしたいブログ。

利用できる iOS シミュレーターをざっくり確認するときのメモ。

利用できる iOS シミュレーターをざっくり確認するときのメモ。

Xcode の Devices & Simulators から確認できるけど、普段 Xcode を使わないのでコマンドラインからざっくり確認したい。

こんなときは Xcodeコマンドラインツールである simctl コマンドを使うと簡単に確認できる。

$ xcrun simctl list devices
== Devices ==
-- iOS 11.2 --
    iPhone 5s (C367044F-AF26-47DE-8444-9F22416C2525) (Shutdown)
    iPhone 6 (2E19BDBE-A762-4115-9582-DAC66FD9B106) (Shutdown)
    iPhone 6 Plus (E08573CC-0879-4312-BC06-E6D40989EB40) (Shutdown)
    iPhone 6s (C2CF2C3B-D776-4D72-B564-E59BD7527058) (Shutdown)
    iPhone 6s Plus (B24A7481-2E12-40DF-85B4-F657E7A7BD3E) (Shutdown)
    iPhone 7 (81425B8B-E722-4BFB-B467-7FF0A87F0151) (Shutdown)
    iPhone 7 Plus (F55C9029-7330-454A-9661-D65FB131F40F) (Shutdown)
    iPhone 8 (1C7D47A9-7E21-41BF-8AB2-8BB2DE28A846) (Shutdown)
    iPhone 8 Plus (65084E57-278A-4268-B37E-CA149D9FE1CB) (Shutdown)
    iPhone SE (80BC4B09-1E76-455A-BC28-125A2C1DBC59) (Shutdown)
    iPhone X (06E64320-B050-44BC-9D59-97B3B0860C43) (Shutdown)
# 省略
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-11-0 --
    iPhone 5s (547BCCDF-AED5-4284-BF4D-4FA20DBB09A1) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 (B348CE31-10CD-4D92-AB5E-2784BF65C751) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 Plus (AA4EECE5-BDCD-4B73-84A6-ADEEFF95EC9C) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6s (956995BD-35FB-476D-B17F-F750065EF012) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6s Plus (09FD128D-C32E-488A-81BB-EC4F134A0EE6) (Shutdown) (unavailable, runtime profile not found)
    iPhone 7 (6D0D76B6-57E9-4292-A420-4738E9022EBF) (Shutdown) (unavailable, runtime profile not found)

こんな感じでぞろぞろと出力されるのだが、ランタイムがないなどで利用できないデバイスも出力されるし、自分は iOS 以外のシミュレーターは必要としていないので、このあたりをフィルタリングすると見やすくなりそう。--json オプションを使うと JSON で出力できるので、それを jq コマンドでフィルタしてみる。

$ xcrun simctl list --json devices |
	jq --raw-output '.devices |
		to_entries[] |
		select(.key | startswith("iOS")) |
		.key as $key | .value[] |
		select(.availability == "(available)") |
		.name + ", " + $key'

iPhone 5s, iOS 11.2
iPhone 6, iOS 11.2
iPhone 6 Plus, iOS 11.2
iPhone 6s, iOS 11.2
iPhone 6s Plus, iOS 11.2
iPhone 7, iOS 11.2
iPhone 7 Plus, iOS 11.2
iPhone 8, iOS 11.2
iPhone 8 Plus, iOS 11.2
iPhone SE, iOS 11.2
iPhone X, iOS 11.2
iPad Air, iOS 11.2
iPad Air 2, iOS 11.2
iPad (5th generation), iOS 11.2
iPad Pro (9.7-inch), iOS 11.2
iPad Pro (12.9-inch), iOS 11.2
iPad Pro (12.9-inch) (2nd generation), iOS 11.2
iPad Pro (10.5-inch), iOS 11.2

いい感じ。

カンマから前がデバイスの名前になる *1

Xcode は 9.2、jq は1.5 で確認 *2

*1:simctl はじめいろんなコマンドで指定できる

*2:Xcode は 10.0 とかでも大丈夫