xcrun simctl
ターミナル上で xcrun simctl
を使って、Simulator の作成、起動、停止、削除等が行える。
list
マシン上にあるシミュレータのデバイス情報を一覧する。
xcrun simctl list
下記のように表示される。
== Device Types ==
...
iPhone Xs (com.apple.CoreSimulator.SimDeviceType.iPhone-XS)
iPhone Xs Max (com.apple.CoreSimulator.SimDeviceType.iPhone-XS-Max)
iPhone Xʀ (com.apple.CoreSimulator.SimDeviceType.iPhone-XR)
iPhone 11 (com.apple.CoreSimulator.SimDeviceType.iPhone-11)
iPhone 11 Pro (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro)
iPhone 11 Pro Max (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max)
== Runtimes ==
iOS 13.3 (13.3 - 17C45) - com.apple.CoreSimulator.SimRuntime.iOS-13-3
tvOS 13.3 (13.3 - 17K446) - com.apple.CoreSimulator.SimRuntime.tvOS-13-3
== Devices ==
-- iOS 13.3 --
iPhone 8 (720065F5-64E0-4A4D-8C03-5F63C6B4DCD5) (Shutdown)
iPhone 8 Plus (9B24700B-74B9-40CF-B3B1-7860DDA0D150) (Shutdown)
iPhone 11 (F8D133DB-F5C1-49B7-895F-530293A86EC3) (Shutdown)
iPhone 11 Pro (505672AC-62B4-4B7B-BEFE-38EB984966FD) (Shutdown)
iPhone 11 Pro Max (3EC97701-9372-4667-B5E3-D24BB2C57393) (Booted)
iPad Pro (11-inch) (D4DCE5AF-8F36-485D-93F2-4D2CA9ADD29A) (Shutdown)
iPad Pro (12.9-inch) (3rd generation) (18B1984A-F910-4BFC-98B0-0661C9C2B120) (Shutdown)
iPad Air (3rd generation) (6C9D75DC-9A1D-4ADA-80C8-B8D3BDC08E1E) (Shutdown)
この中で、Devices
に記載されている UUID を、後のコマンドで使用するのでメモしておく。
boot
xcrun simctl boot 3EC97701-9372-4667-B5E3-D24BB2C57393
shutdown
xcrun simctl shutdown 3EC97701-9372-4667-B5E3-D24BB2C57393
or
xcrun simctl shutdown booted
screencast
xcrun simctl io booted recordVideo ./screen_cast.mp4
screenshot
xcrun simctl io booted screenshot ./screenshot.png
or
xcrun simctl io booted screenshot ./screenshot.jpg
listapps
インストールされているアプリ一覧を取得できる。
xcrun simctl listapps booted
path of app
listapps した後、パスが分かるので中身を見られる。
中で SQLite を使っている場合などは直接確認したりできる。
xcrun simctl get_app_container booted <bundle identifier> data
other subcommands
その他のコマンド一覧。
Subcommands:
create Create a new device.
clone Clone an existing device.
upgrade Upgrade a device to a newer runtime.
delete Delete spcified devices, unavailable devices, or all devices.
pair Create a new watch and phone pair.
unpair Unpair a watch and phone pair.
pair_activate Set a given pair as active.
erase Erase a device's contents and settings.
boot Boot a device.
shutdown Shutdown a device.
rename Rename a device.
getenv Print an environment variable from a running device.
openurl Open a URL in a device.
addmedia Add photos, live photos, videos, or contacts to the library of a device.
install Install an app on a device.
uninstall Uninstall an app from a device.
get_app_container Print the path of the installed app's container
launch Launch an application by identifier on a device.
terminate Terminate an application by identifier on a device.
spawn Spawn a process by executing a given executable on a device.
list List available devices, device types, runtimes, or device pairs.
icloud_sync Trigger iCloud sync on a device.
pbsync Sync the pasteboard content from one pasteboard to another.
pbcopy Copy standard input onto the device pasteboard.
pbpaste Print the contents of the device's pasteboard to standard output.
help Prints the usage for a given subcommand.
io Set up a device IO operation.
diagnose Collect diagnostic information and logs.
logverbose enable or disable verbose logging for a device
status_bar Set or clear status bar overrides
Flutter で開発していると XCode 立ち上げたくはないし、 cli で操作できるのは色々便利ですね。