Какие варианты запуска приложения с помощью физического устройства и компьютера существуют?
Что проверяют
Работали ли вы с реальными устройствами руками или только ставили сборки из магазина. Интервьюер хочет услышать инструменты для Android и iOS и понимание, зачем подключать телефон к компьютеру: установка любой сборки, логи, отладка. Следом часто просят снять логи краша или открыть диплинк без интерфейса.
Как отвечать
Разделите ответ по платформам.
Android:
- Android Studio: Run собирает и ставит приложение на телефон, нужны режим разработчика и отладка по USB;
- ADB:
adb install -r app.apkставит или обновляет сборку,adb shell am start -n <пакет>/<activity>запускает конкретный экран,adb shell am start -a android.intent.action.VIEW -d <url>открывает диплинк,adb logcatотдаёт логи; - беспроводная отладка: с Android 11 телефон подключается по Wi-Fi через
adb pair; - scrcpy: трансляция и управление экраном с компьютера, удобно для записи бага.
iOS:
- Xcode: Run на подключённом iPhone, нужны подпись, устройство в профиле и Developer Mode (с iOS 16);
xcrun devicectl: установка и запуск из командной строки, удобно в скриптах;- Apple Configurator: установка
.ipaперетаскиванием на устройство; - TestFlight и ad hoc: сборка ставится без компьютера, а компьютер нужен для логов через «Консоль» на Mac.
Упомяните автоматизацию: Appium, Espresso и XCUITest сами запускают приложение на подключённом устройстве, в CI телефоны висят на стенде или берутся из облачной фермы. Трафик с устройства перехватывают прокси вроде Charles или Proxyman.
Где спотыкаются
Отвечают про эмуляторы. Они полезны, но вопрос про реальный телефон, и подмена темы выглядит как отсутствие опыта.
Не знают, почему сборка не ставится на iPhone. Типичные причины: устройство не добавлено в профиль, истёк сертификат, выключен Developer Mode.
Путают установку поверх и чистую. adb install -r сохраняет данные, а для проверки первого запуска нужно удалить приложение или сделать adb shell pm clear <пакет>.