Saya telah menerima ini berkali-kali sehingga firewall seharusnya sudah mengingatnya.
Sebagai contoh, saya mendapatkannya untuk Eclipse ketika memulai program java saya dalam mode debugging ... kadang-kadang dialog ini hanya ditampilkan sangat singkat, seperti setengah detik, dan menghilang. Saya juga mendapatkannya untuk iTunes (ketika saya mengaktifkan berbagi pustaka saya), dan program lainnya, meskipun saya telah mendaftarkannya di panel preferensi Firewall (pengaturan adv.).
macos
snow-leopard
firewall
Peter Štibraný
sumber
sumber
Jawaban:
Ada dua opsi di sini:
plist
file untuk aplikasi tersebut, menjalankannya, dan kemudian menambahkannya ke daftar. Plist bertanggung jawab atas banyak perilaku dan saya berani bertaruh upgrade ke OS atau aplikasi dapat menyebabkan "tautan" rusak.Tentang
plist
file ... Plist adalah jenis khusus file teks yang berisi properti aplikasi dan sumber daya lainnya, biasanya OS, digunakan untuk menyimpan dan menggunakan kembali informasi yang diperlukan untuk menjalankan aplikasi.plist
adalah jenis file dan memiliki banyak kegunaan, biasanya menyimpan preferensi pengguna, tetapi, pada dasarnya, ini adalah file XML. Anda dapat melihat apakah ada cache, yang biasanya berupaplist
file, untuk aplikasi yang dimaksud dalam/Library/Caches
dan/System/Library/Caches
. Ada juga satu~/Library/Caches/
tapi hal-hal buruk bisa terjadi ketika mucking di sana, jadi biarkan saja. Sistem masuk ke folder-folder itu untuk berbagai alasan, dan saya biasanya membersihkan dua folder pertama yang saya daftarkan sebulan sekali.sumber
~
file yang ada di jalur file di atas merujuk ke folder home pengguna saat ini atau direktori root?Saya tidak pernah harus membuat sertifikat menggunakan metode ini.
Jika itu tidak membantu, cobalah tanpa
--deep
dan tanpa garis miring:Catatan, hanya untuk membuatnya lebih jelas: Setelah menerapkan tanda tangan, mulai aplikasi, terima koneksi masuk untuk yang terakhir kalinya, lalu berhenti dan mulai lagi untuk memverifikasi bahwa permintaan sudah hilang.
sumber
-
after--sign
berarti bahwa "penandatanganan ad-hoc" digunakan; tidak perlu memiliki sertifikat untuk menggunakan perintah itu. Saya tidak mengerti mengapa ini akan bertentangan dengan penggunaan terminal. Jalankanman codesign
untuk melihat penjelasannya.sudo codesign --force --sign - /path/to/application.app
telah bekerja untuk saya, tetapi bukan variasi yang disarankan oleh penulis. Saya bertanya-tanya apakah--deep
atau garis miring adalah masalah.Meskipun tautan RedYeti bermanfaat, hanya untuk menyimpan beberapa klik untuk orang lain, izinkan saya meringkas cara membuat sertifikat penandatanganan kode dan menggunakannya untuk penandatanganan kode (kembali):
Buat sertifikat penandatanganan kode Anda sendiri:
Di Akses Keychain, Akses Keychain> Asisten Sertifikat> Buat sertifikat. Ini meluncurkan Asisten Sertifikat:
Nama: Masukkan beberapa string acak di sini yang dapat Anda ingat. Hindari spasi jika tidak, Anda harus keluar dari nama sertifikat saat menggunakan
codesign
dari baris perintah.Jenis identitas: Self Signed Root
Jenis Sertifikat: Penandatanganan Kode
Centang kotak "Biarkan saya menimpa default", ini cukup penting
Nomor seri: 1 (OK selama kombinasi nama sertifikat / nomor seri adalah unik)
Masa Berlaku: 3650 (memberi Anda 10 tahun)
Email, Nama, dll. Isi sesuai keinginan.
Info pasangan kunci: diatur ke RSA, 2048 bit. Tidak terlalu penting IMHO.
Dari "Ekstensi penggunaan utama" hingga "Ekstensi Nama Alternatif Subjek": terima standarnya.
Lokasi: gantungan kunci masuk.
Setelah dibuat, setel ke "Selalu percaya" di gantungan kunci Login: klik kanan pada sertifikat, pilih "Dapatkan Info", dan di bagian "Kepercayaan", set "Saat menggunakan sertifikat ini" ke "Selalu percaya".
Menandatangani ulang aplikasi:
codesign -f --deep -s <certname> /path/to/app
Verifikasi bahwa itu berhasil:
codesign -dvvvv /path/to/app
Nikmati!
PEMBARUAN: Orang-orang bertanya kepada saya mengapa ini "tidak berfungsi" di macOS 10.14 "Mojave". Sekarang saya akhirnya memperbarui :-), inilah yang saya pelajari.
Pada dasarnya, jangan gunakan sertifikat yang ditandatangani sendiri untuk menandatangani kode. Hasilkan sertifikat menggunakan Apple ID Anda di Xcode sebagai gantinya. Untuk rekap langkah-langkah singkat:
Dalam Xcode> Preferensi> Akun, pilih ID pengembang Apple Anda, klik "Kelola Sertifikat", pilih "+" di sudut kiri bawah, itu menawarkan Anda opsi "Pengembangan Apple". Pilih itu, ini akan membuat sertifikat untuk Anda. Dengan mengklik-Ctrl pada sertifikat baru Anda dapat mengekspornya (dalam
.p12
format), dan denganopen
-ing.p12
file itu akan dimuat ke gantungan kunci Login Anda.Anda akan melihat bahwa sertifikat ini berlaku selama satu tahun, "Dikeluarkan oleh: Otoritas Sertifikasi Hubungan Pengembang Apple Worldwide". Saya menduga itu lebih dapat dipercaya daripada sertifikat yang ditandatangani sendiri.
Sekarang Anda bisa masuk aplikasi seperti sebelumnya dengan
codesign -f -s <apple_ID> /path/to/prog
. Saya mencobanya dengan biner sederhana (dikompilasi darihello.c
:-)), dan bisa diverifikasi dengancodesign -v
.Saya belum mencobanya dengan paket Python, jadi saya tidak memiliki saran kepada orang-orang yang disebutkan dalam komentar mereka bahwa ini tidak dapat masuk "python.app".
sumber
Ini terkait dengan apakah aplikasi ditandatangani atau tidak. Jika tidak ditandatangani, preferensi tidak akan diingat.
Untuk melihat apakah aplikasi sudah ditandatangani, lakukan ini di Terminal:
Untuk Eclipse - punyaku mengatakan itu tidak masuk sama sekali. Saya tidak dapat berkomentar lebih lanjut tentang cara menandatangani aplikasi karena saya tidak repot-repot untuk melakukan itu, tetapi jawaban tentang superuser ini meliputi:
https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself#300841
sumber
Hanya perlu dicatat, jika Anda menggunakan lingkungan Virtual, pastikan untuk menandatangani aplikasi yang sedang digunakan untuk lingkungan. Saya tahu ini jelas, tetapi perlu dikatakan.
sumber
Saya menghargai bahwa ini adalah Q & A yang lama, tetapi itu adalah hit pertama di google untuk saya ketika saya memiliki masalah yang sama. Hanya ingin menambahkan sesuatu untuk orang lain yang mungkin mendarat di sini.
Untuk menjalankan perintah codesign yang diuraikan di sini, alat baris perintah xcode perlu diinstal. Tanpa ini, seseorang mendapat pesan kesalahan:
Untuk memperbaikinya, instal alat dengan:
Saya akan mengomentari posting ahall, tetapi saya tidak memiliki poin reputasi untuk melakukannya.
sumber
Saya mendapatkan kotak dialog ini (Canon ccpd) setiap kali setelah memulai komputer saya. Buka firewall> keamanan dan privasi> buka kunci untuk mengaktifkan perubahan> klik tombol "Aktifkan mode sembunyi-sembunyi"> klik tombol "Blokir semua koneksi masuk".
Tidak ada lagi kotak dialog yang mengiritasi dari driver printer Canon setelah itu.
sumber
Saya mencoba semua hal di atas di Mac 10.13 dan tidak ada yang berhasil.
Pada akhirnya saya menulis sebuah skrip yang berjalan pada logout yang dilampirkan ke kait masuk yang mematikan firewall sehingga ketika login tidak lagi memerlukan izin kemudian menggunakan penundaanluncur menjalankan skrip lain yang menyalakan firewall.
Semuanya baik sekarang
sumber
Situasi saya melibatkan dua salinan Eclipse yang diinstal pada MacOS Mojave 10.14.5. Salinan pertama diotorisasi dengan firewall MacOS. Salinan kedua akan selalu menyajikan prompt "terima koneksi masuk". Memilih "Terima" akan terus menyajikan pesan setelah setiap reboot, ternyata pengaturan firewall tidak diperbarui.
Solusinya adalah membuka Preferensi Sistem MacOS -> Keamanan & Privasi -> Firewall, buka kunci layar, Opsi Firewall. Pilih Eclipse.app "Izinkan koneksi masuk" dan hapus dengan tombol "-". Kali berikutnya saya memilih permintaan "Izinkan" ke Eclipse "terima koneksi masuk" adalah yang terakhir.
sumber
Solusi bagi saya adalah menonaktifkan firewall sepenuhnya. Sangat umum untuk membuat perangkat lunak yang diaktifkan web yang tentu saja tidak ditandatangani karena Anda mengompilasinya secara asli.
Buka sorotan dengan CMD + bilah spasi dan cari "privasi" dan pilih "Keamanan dan Privasi". Kemudian beralih ke tab "Firewall" dan nonaktifkan firewall di sana.
sumber