programing

Xcode 6-명령 줄에서 시뮬레이터 시작

nasanasas 2020. 8. 29. 11:09
반응형

Xcode 6-명령 줄에서 시뮬레이터 시작


명령 줄에서 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>

시뮬레이터 udid를 xcrun simctl list


부팅 된 특정 장치로 시뮬레이터를 시작하려면 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로 시뮬레이터를 시작하려는 경우 (% 세대 부팅 됨) :

/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

유효한 장치 유형런타임 목록을 가져 오려면

xcrun simctl list devicetypes

xcrun simctl list runtimes

You can specify the hardware and iOS version with -w flag. The format is

instruments -w "simulator-version"

For eg:

instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1".

You will get the available hardvare-iOS combinations by using the instruments -w help command.


Verified in Xcode 9.4.1

Device list in a REALLY NICE FORMAT: ~/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

Then you want to run (open) your Simulator app and make sure that a new instance of the app is launched.

The app is here: /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

And the format you'd use is like this:

open -n -a <SimulatorPath> --args -CurrentDeviceUDID <SimDeviceTypeUDID>

So, if I wanted to launch the Simulator above, I'd do this.

open -n -a /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4

Hot damn! I just tested it and it works on Mac OS 10.11.6. Now the next trick is telling the Simulator to open our installed app. I'm not there yet. Hope this helps. Thanks to https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia for his detailed explanation.


To boot a simulator:

xcrun simctl boot "iPhone X"

It will boot as a headless mode. To make the simulator visible:

open -a Simulator

xcrun simctl boot is simpler than xcrun instruments -w. instruments requires the full device name.


Run this command. The app will be restarted followed by changes. No need to rebuild it again.

ios-sim "launch" "/Library/WebServer/Documents/testapp/build/iphone/build/Debug-iphonesimulator/test.app" "--devicetypeid" "iPad-2" "--exit";

For devicetypeid list:

ios-sim showdevicetypes

참고URL : https://stackoverflow.com/questions/26031601/xcode-6-launch-simulator-from-command-line

반응형