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?
9 ответов
Нашел способ добиться того, чего хотел.
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
Чтобы загрузить симулятор:
xcrun simctl boot "iPhone X"
Это загрузится как безголовый режим. Чтобы сделать симулятор видимым:
open -a Simulator
xcrun simctl boot
проще чем xcrun instruments -w
, instruments
требуется полное имя устройства.
Чтобы запустить симулятор с загруженным конкретным устройством, я использую подкоманду 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
ОБНОВЛЕНИЕ 23/05/2018
С 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
Вы можете указать аппаратную и iOS-версию с флагом -w. Формат
instruments -w "simulator-version"
Например:
instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1"
,
Вы получите доступные комбинации hardvare-iOS, используя instruments -w help
команда.
Проверено в 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
Затем вы хотите запустить (открыть) приложение Simulator и убедиться, что запущен новый экземпляр приложения.
Приложение здесь:/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. Теперь следующий трюк говорит симулятору открыть наше установленное приложение. Я еще не там. Надеюсь это поможет. Спасибо 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
Любой, у кого есть эта проблема, эта команда откроет симулятор ios из командной строки.
open -a simulator