Kami sedang menyiapkan server integrasi berkelanjutan untuk pengembangan Android kami dan kami dengan cepat bertemu dengan ADB yang menunggu masalah perangkat .
Sebagai catatan, kami sudah mencoba banyak kombinasi adb kill-server
, adb start-server
, adb devices
, dll tidak berhasil.
Sayangnya, semua yang saya temukan di internet adalah variasi "cabut dan pasang kembali perangkat", yang jelas bukan solusi bagi kami (kami tidak bisa membiarkan manusia duduk di dekat server CI untuk melepas dan memasang kembali perangkat sebelum masing-masing membangun).
Sebagai latar belakang, kami menggunakan Jenkins pada Mac, karena menjalankan CI kami untuk iOS juga.
Saat mendekati masalah saya berpikir bahwa jika pada level OS perangkat ditemukan, itu setidaknya sebuah permulaan. Memang, menjalankan perintah seperti system_profiler SPUSBDataType
berhasil menemukan perangkat, termasuk nomor seri yang dilaporkan ADB ketika bekerja dengan benar.
Saya telah mencoba beberapa perintah yang agak timpang untuk "menyegarkan" semua aktivitas USB, tetapi saya tidak ke mana-mana. Bukannya Anda dapat memasang / melepas perangkat, tapi jujur saja saya bahkan tidak yakin di mana masalahnya, saya tidak cukup tahu tentang protokol USB tingkat rendah, apalagi untuk Mac. Saya mengintai kode sumber ADB adalah kesempatan yang sangat, sangat lama.
Jadi pada titik ini saya semua mendengar solusi yang akan memungkinkan kami menjalankan Android secara konsisten di server CI kami. Baik itu beberapa perintah sebelum setiap pekerjaan Jenkins, menambal ADB atau trik sulap hitam lainnya.