Как запустить приложение Xamarin.iOS из кода VS или терминала? - PullRequest
0 голосов
/ 19 сентября 2019

Я бы хотел запустить приложение Xamarin.iOS на симуляторе iPhone на macOS через командную строку (или VS Code).Есть ли способ сделать это в 2019 году?

Я обнаружил, что возможно построить приложение Xamarin на этот вопрос .Есть также этот вопрос , но он не работает в macOS.Но возможно ли просто запустить (не обязательно отладить) из командной строки?Это позволило бы мне подготовить конфигурацию для VS Code.

Я использую Xamarin.iOS 12.14.0.114

Ответы [ 2 ]

1 голос
/ 21 сентября 2019

Да, можно использовать инструмент mlaunch так, как это делает Visual Studio.Это все еще закрытый источник, но читая его страницу помощи и код xamarin-macios.Сборка IPA не требуется, а просто сборка для среды отладки, используйте mlaunch для установки приложения на симулятор / устройство и запускайте его позже.

Пример: установить и запустить приложение после msbuild

/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch --launchsim=bin/iPhoneSimulator/Debug/IOS_PROJECT_NAME.app --device::v2:runtime=com.apple.CoreSimulator.SimRuntime.iOS-12-4,devicetype=com.apple.CoreSimulator.SimDeviceType.iPhone-XR

Вы должны увидеть Нажмите Enter, чтобы завершить сообщение приложения при выполнении команды.

Объясните

  1. msbuild / t: сборка

  2. Найдите mlaunch обычно в/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch.Просто найдите ваш путь к Xamarin.iOS.framework

  3. Перечислите все доступные симуляторы с указанием его времени выполнения и типа устройства

mlaunch --listsim simulators.xml

Откройте выходфайл simulators.xml и выберите симулятор, например iPhone XR, сохраните значение SimRuntime SimDeviceType для следующего шага

Установите отладочный пакет приложения Xamarin.iOS и запустите его на симуляторе
mlaunch --launchsim=[IOS_APP_PATH] --device::v2:runtime=[SimRuntime],devicetype=[SimDeviceType]
  • --launchsim - это относительный путь к вашему пакету приложения Xamarin.iOS, созданный задачей msbuild впервый шаг, обычно bin/iPhoneSimulator/Debug/IOS_PROJECT_NAME.app
  • --device, состоит из SimRuntime и SimDeviceType, которые вы получили из файла XML.
0 голосов
/ 19 сентября 2019

Вы ищете команду simctl, она доступна через помощник xcrun.Вы можете создавать, запускать, выключать устройства-симуляторы и после того, как одно из них будет «загружено», вы можете install и launch вашу iOS .app:

xcrun simctl
usage: simctl [--set <path>] [--profiles <path>] <subcommand> ...
       simctl help [subcommand]
Command line utility to control the Simulator

For subcommands that require a <device> argument, you may specify a device UDID
or the special "booted" string which will cause simctl to pick a booted device.
If multiple devices are booted when the "booted" device is selected, simctl
will choose one of them.

Subcommands:
    create              Create a new device.
    clone               Clone an existing device.
    upgrade             Upgrade a device to a newer runtime.
    delete              Delete a device or all unavailable 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...