запуск приложения iOS из консоли Mac OS X - PullRequest
4 голосов
/ 20 декабря 2011

для того, чтобы автоматизировать тестирование приложения, я хочу многократно запускать приложение для iOS с различными аргументами своей основной функции от моего mac;для простоты скажем, что он принимает файл как argc, и у меня есть 100 файлов, которые мне нужно проверить.Теоретически, все, что я хотел бы воспроизвести, это поведение сборки и запуска xcode - на устройстве, а не джейлбрейк ;приложение тесно связано с оборудованием, поэтому одного симулятора будет недостаточно.

Есть несколько страниц, которые делают что-то похожее, но ни одна из них не использует устройство, и ни одна из них фактически не объясняет, как на самом деле будет выглядеть командная строка на консоли.

1) http://blog.carbonfive.com/2011/04/06/running-xcode-4-unit-tests-from-the-command-line/

на этой странице настраивается модульный тест, который в конечном итоге запускается в симуляторе;Далее он говорит, что

Фаза сборки «Run Script» цели сборки модульного теста просто запускается> «$ {SYSTEM_DEVELOPER_DIR} / Tools / RunUnitTests»

Я проверял это, но ни RunPlatformUnitTests, ни RunUnitTests не выполняются из Xcode 4 (я переименовал сценарии, чтобы убедиться).

2) http://longweekendmobile.com/2011/04/17/xcode4-running-application-tests-from-the-command-line-in-ios/

эта страница поднимается там, где 1) осталось, нотолько строит для симулятора и не определяет, как приложение запускается.Он хорошо описывает, как он собирается из командной строки.

3) Отладка iOS-приложения, созданного из командной строки

То, что я вижу в Xcode 4, это фаза сборки, которая останавливаетсяпри подписании и валидации заявки.Следующее, что я вижу, это отладчик gdb, который работает на устройстве.Однако я не знаю, как получить доступ к отладочному серверу - я не взломал свой iPhone, поэтому у меня нет доступа ни к чему на нем, ни к отладочному серверу, ни к IP-адресу.

Что я могу проверить, так это то, чтоGDB вызывается из xcode4 / platform / iPhoneOS.platform, поэтому удаленный отладчик должен каким-то образом подключиться ...

1 Ответ

2 голосов
/ 20 июня 2012

Для удаленной GDB из командной строки (или просто для загрузки на устройство) вы можете использовать этот маленький инструмент, выбрать ближайший к тому, что вам нужно, разветвитель, оригинальный автор больше не будет его поддерживать: https://github.com/ghughes/fruitstrap

Выможет быть не в состоянии использовать его как есть (мне пришлось настроить параметры GDB для моего использования), но это хорошее начало.

Вы можете дополнительно автоматизировать вещи, автоматически запустив этот скрипт

for i in $(system_profiler SPUSBDataType | grep "Serial Number: " | grep -Po "[A-Za-z0-9]{40,}$") ; do
    echo "Installing on: $i"
    #use fruitstrap with device $i
end

это просто проверит все USB-порты и сохранит только те, которые в данный момент подключены к устройству iOS, и вернет его UDID.

Оттуда вы сможете автоматизировать тестирование с несколькими различными аргументами для вашегоприложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...