コマンドラインからiPhoneシミュレーターを起動したい。
今まで私は以下のコマンドを使用してきました
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator -SimulateDevice
-SimulateDeviceは、特定のデバイスタイプを起動するために使用されます
Xcode 6では、パスとアプリが次のように変更されました。
/Applications/Xcode.app/Contents/Developer/Applications/iOS Simulator.app/Contents/MacOS/iOS Simulator
しかし、残念ながら-SimulateDeviceオプションは現在機能していません。シミュレータを起動できますが、起動するシミュレータを指定するオプションがありません
Xcode 6でこれに代わるものはありますか?
私が望んでいたことを達成する方法を見つけました。
AppleはXcode 6に興味深いツールを導入しました!
simctl
simcltを使用すると、実行中のシミュレーターを制御できます。
xcrun simctl
を実行して、使用可能なサブコマンドのリストを取得します。いろいろな新しいオプションがあります。
私が望んでいたことを行うために、シミュレーターを起動するコマンドを次に示します。
xcrun instruments -w "iPhone 5 (8.0 Simulator)"
-wは、デバイスタイプを提供し、使用可能なデバイスのリストを取得します。
これを実行するだけです:
xcrun instruments -s
シミュレータを起動した後、simctl
を使用して制御できます
アプリをインストールするには:
xcrun simctl install booted <app path>
アプリを起動するには:
xcrun simctl launch booted <app identifier>
お役に立てれば。
Xcode 6では、起動時にiOS Simulator.appで特定のデバイスを起動する場合、コマンドラインからこれを実行できます。
open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>
起動したいデバイスのUDIDを把握できる場所:
xcrun simctl list
Xcode 7では、アプリケーションの名前がSimulator.appに変更されたため、上記に応じて次のように更新する必要があります。
open -a Simulator --args -CurrentDeviceUDID <DEVICE UDID>
Xcode 7の場合:
open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID <DeviceUDID>
xcrun simctl list
からシミュレータudidを取得します
起動した特定のデバイスでシミュレーターを起動するには、利用可能なすべてのデバイスのリストを取得するためにlist devicesサブコマンドを使用しています
$ xcrun simctl list devices
== Devices ==
-- iOS 11.2 --
iPhone 5s (E3B6EA43-C805-49C2-9502-A44A465D8DF2) (Shutdown)
iPhone 6 (801E9E11-CA86-473A-9879-4B0742B827FB) (Shutdown)
iPhone 6 Plus (24013349-1A6F-489C-9A68-ABB00EBB4BBF) (Shutdown)
iPhone 6s (1A594D75-146C-4BEA-A250-1FADE7886114) (Shutdown)
iPhone 6s Plus (C2730FA0-11CB-49C9-A087-CB3C1BF1CC3D) (Shutdown)
iPhone 7 (F58B3749-3276-49E5-81C8-EBA1AEA7B242) (Shutdown)
iPhone 7 Plus (98167D8C-8F27-404C-AB02-588D9AAFD071) (Shutdown)
iPhone 8 (96322368-F763-4E0A-8576-ADE9F678211F) (Shutdown)
iPhone 8 Plus (E916D1EE-B67B-4C01-B3F5-C5C80CC4CDF8) (Shutdown)
iPhone SE (ABEFEDDF-7A7C-4B94-9E91-E065170FA47F) (Shutdown)
iPhone X (84DAB7AB-3CA2-4F5B-8C4E-A5B54CA15C31) (Shutdown)
iPad Air (DCD8CF4B-2C9F-4BA1-952A-ACB9CAD0A84D) (Shutdown)
iPad Air 2 (A47C9A05-233F-450F-9A39-318258E9ADEA) (Shutdown)
iPad (5th generation) (819C058E-64AC-4E73-8F41-2C0F919F8B56) (Booted)
このコマンドは、使用可能なデバイスのリストとそのUDIDおよびステータスを出力します
次に、-CurrentDeviceUDIDオプションでデバイスを指定してシミュレーターアプリを起動します
/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID <DEVICE-UDID>
注:をリストの有効なUDIDに置き換えます。
たとえば、iPadでシミュレーターを起動する場合(%generation booted):
/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID 84DAB7AB-3CA2-4F5B-8C4E-A5B54CA15C31
2018年5月23日更新
Xcode 9.3では、CurrentDevice UDIDオプションが機能しないため、回避策として、simctlを使用してシミュレータでデバイスを起動してからデバイスを起動する必要があります。
xcrun simctl boot 2BF01FC0-7E29-4AF1-ADD1-886DF129A9A9
open -a Simulator
Simctlを使用して、シミュレーターを作成、消去、削除、起動、シャットダウン、およびアップグレードできます。
$ xcrun simctl create
Usage: simctl create <name> <device type id> <runtime id>
$ xcrun simctl delete
Usage: simctl delete <device> [... <device n>] | unavailable
有効なdevice typesおよびruntimesのリストを取得するには
xcrun simctl list devicetypes
xcrun simctl list runtimes
-wフラグを使用して、ハードウェアとiOSバージョンを指定できます。形式は
instruments -w "simulator-version"
例えば:
instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1"
。
instruments -w help
コマンドを使用して、利用可能なhardvare-iOSの組み合わせを取得します。
Xcode 9.4.1で検証済み
本当に素敵なフォーマットのデバイスリスト:~/Library/Developer/CoreSimulator/Devices/device_set.plist
Root
DefaultDevices
com.Apple.CoreSimulator.SimRuntime.iOS-8-4
com.Apple.CoreSimulator.SimDeviceType.iPad-Retina : AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4
次に、シミュレータアプリを実行(開いて)し、アプリの新しいインスタンスが起動することを確認します。
アプリはこちら:/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
使用する形式は次のとおりです。
open -n -a <SimulatorPath> --args -CurrentDeviceUDID <SimDeviceTypeUDID>
したがって、上記のシミュレーターを起動する場合は、これを実行します。
open -n -a /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4
いまいましい!テストしたところ、Mac OS 10.11.6で動作します。次のトリックは、シミュレーターにインストール済みアプリを開くように指示することです。私はまだそこにいません。お役に立てれば。彼の詳細な説明について https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia に感謝します。
このコマンドを実行します。アプリが再起動され、変更が続きます。再構築する必要はありません。
ios-sim "launch" "/Library/WebServer/Documents/testapp/build/iphone/build/Debug-iphonesimulator/test.app" "--devicetypeid" "iPad-2" "--exit";
Devicetypeidリストの場合:
ios-sim showdevicetypes
シミュレーターを起動するには:
xcrun simctl boot "iPhone X"
ヘッドレスモードとして起動します。シミュレーターを表示するには:
open -a Simulator
xcrun simctl boot
はxcrun instruments -w
より簡単です。 instruments
には完全なデバイス名が必要です。