Pembuatan otomatis kami berjalan di Jenkins. Build itu sendiri berjalan di atas slave, dengan slave dieksekusi melalui SSH.
Saya mendapatkan kesalahan:
00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.
Saya telah mencoba setiap saran yang saya lihat sejauh ini di posting lain di sini:
- Menggunakan keamanan membuka kunci-rantai segera sebelum masuk untuk membuka kunci rantai.
- Memindahkan kunci masuk ke gantungan kunci sendiri.
- Memindahkan kunci masuk ke gantungan kunci login.
- Memindahkan kunci masuk ke gantungan kunci sistem.
- Secara manual mengatur daftar-gantungan kunci hanya gantungan kunci yang berisi kunci.
Dalam semua kasus, saya mendapatkan kesalahan yang sama.
Dalam upaya untuk mendiagnosis masalah ini, saya mencoba menjalankan perintah "keamanan membuka-gantungan kunci" di terminal lokal saya dan menemukan bahwa itu tidak benar-benar membuka kunci-kunci - jika saya melihat di Akses Keychain, simbol kunci masih ada. Ini adalah kasus apakah saya meneruskan kata sandi pada baris perintah atau apakah saya membiarkannya meminta saya untuk itu. Membuka kunci rantai yang sama menggunakan GUI akan meminta saya untuk kata sandi dan kemudian membukanya. Selain itu, jika saya menjalankan "keamanan kunci-gantungan kunci", saya lakukan melihat kunci tombol segera setelah menjalankan perintah. Ini membuat saya berpikir bahwa membuka kunci-kunci tidak benar-benar berfungsi. Saya mengalami perilaku yang sama pada Lion (yang kami gunakan untuk build slave) dan Mavericks (yang sedang saya kembangkan.)
Selanjutnya, saya mencoba menambahkan -v ke semua perintah keamanan:
list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain"
Listing keychains to see if it was added: ((
"/Library/Keychains/System.keychain"
))
unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain"
build/App.app: User interaction is not allowed.
Dari sini, tampaknya gantungan kunci daftar adalah yang tidak berfungsi. Mungkin tidak berhasil. : /
Ada pertanyaan serupa di sini . Solusinya menarik - set "SessionCreate" menjadi true di launchctl. Tapi saya tidak membangun pada master - proses build saya dimulai dari SSH pada mesin slave build. Mungkin ada cara baris perintah untuk melakukan apa yang launchctl lakukan ketika Anda menjalankan "SessionCreate"?