Aplikasi tidak dapat dibuka karena berasal dari pengembang yang tidak dikenal

9

Pertanyaan:

Harap perhatikan sebelum membaca ini bahwa: "Katakan kepada mereka untuk pergi System preferences > Security & privacydan allow 3rd party applications to run. Bukan pemecahan yang dapat diterima untuk masalah ini.

Saya telah membuat .appItu telah ditandatangani dengan sertifikat Pengembang Mac yang valid. Namun mengunduhnya dari internet & menjalankannya masih membuka prompt keamanan:

Aplikasi tidak dapat dibuka karena berasal dari pengembang yang tidak dikenal

Ini adalah codesign -vvvterminal dump untuk .app:

Executable=/Users/me/Desktop/ADRA.app/Contents/MacOS/ADRA
Identifier=unity.Company.ADRA NSW 2016
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178145 flags=0x0(none) hashes=5561+3 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=79ecf88721d6387749c1f6b10355c3683ef20eb2
CandidateCDHash sha256=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Hash choices=sha1,sha256
CDHash=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Signature size=4739
Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=20 Apr 2017, 2:46:12 PM
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=224

Saya tidak mengerti mengapa ini tidak melewati Gatekeeper? Apakah ada yang hilang? Apakah Apple memerlukan sesuatu lebih lanjut?


Pembaruan 1:

@TheDarkKnight telah menyarankan agar saya menggunakan sertifikat yang salah untuk menandatangani .app. Sepertinya mereka benar, jadi saya pergi untuk membuat yang baru Developer ID Application certificatetetapi ternyata karena saya bukan 'Agen' di akun grup, jadi saya sekarang harus menunggu sampai 'Agen' menciptakan satu untuk saya - tampaknya mundur, apakah ada tidak ada jalan lain menunggu 'Agen' untuk membuat ini untukku?

(dalam Xcode) Jika tombol radio "ID Pengembang" berwarna abu-abu, Anda mungkin memiliki akun grup. Jenis akun ini hanya memungkinkan peran "Agen" untuk membuat ID Pengembang. Hubungi orang yang membuat Akun Pengembang Apple grup Anda jika Anda buntu di sini.

https://developer.mozilla.org/en-US/docs/Mozilla/Signing_Mozilla_apps_for_Mac_OS_X


Pembaruan 2:

Jadi saya akhirnya mendapatkan sertifikat baru saya hari ini, menandatangani ulang .app, mengunduhnya dari server berlari dan MASIH MENDAPAT KESALAHAN PESAN . Otoritas tampaknya benar sekarang:

Executable=/Users/me/Downloads/ADRA.app/Contents/MacOS/ADRA
Identifier=com.company.adra
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178133 flags=0x0(none) hashes=5561+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
OSPlatform=36
OSSDKVersion=657408
OSVersionMin=656896
Hash type=sha256 size=32
CandidateCDHash sha1=90d2a54162d6d018bf4f7602d7707c8e8e522fc6
CandidateCDHash sha256=dadfe5203d1367ea776f9501025dbd4ce751ee30
Hash choices=sha1,sha256
Page size=4096
CDHash=dadfe5203d1367ea776f9501025dbd4ce751ee30
Signature size=8930
Authority=Developer ID Application: Company Pty Ltd (NH73TNDB28)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=10 May 2017, 3:36:51 pm
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=184

Saya hanya menandatangani .appapakah ada hal lain yang harus saya lakukan untuk membuat pekerjaan ini? Apakah ada jangka waktu yang harus saya tunggu sebelum ini bekerja?


Pembaruan 3:

Sekarang hampir 1 bulan berlalu dari Pembaruan 2, masalah ini masih jelas, dan karenanya telah memberi hadiah.

Zze
sumber
1
Apakah aplikasi disematkan dalam gambar disk bertanda tangan DMG,, ketika diunduh? MacOS versi apa yang Anda uji?
Graham Miln
@ GrahamMiln saya harus menghubungi Anda di versi macOS. Saya tidak menandatangani .dmg, apakah Anda harus menandatanganinya juga? Saya menggunakan successsoftware.net/2012/08/30/… sebagai referensi dan mereka menyatakan bahwa .dmgtidak memerlukan penandatanganan tambahan jadi saya tidak menandatanganinya.
Zze
Coba uji tanda tangan dengan:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln
@ GrahamMiln Terima kasih atas komentarnya, saya akan menghubungi Anda besok pagi!
Zze

Jawaban:

7

Secara umum, saat mendistribusikan aplikasi di luar Mac App Store Anda perlu:

  1. Setel identitas penandatanganan ke ID Pengembang
  2. Buat sertifikat ID Pengembang Anda
  3. Buat Arsip aplikasi Anda
  4. Validasikan aplikasi Anda
  5. Ekspor aplikasi yang ditandatangani ID Pengembang
  6. Tanda tangani paket pemasang (tidak berlaku dalam kasus Anda)
  7. Uji perilaku aplikasi dengan Gatekeeper diaktifkan dan lagi dengan Gatekeeper dinonaktifkan

Mengatasi masalah seperti ini bisa rumit karena mudah membuat asumsi tentang seberapa banyak OP (dalam hal ini Anda) tahu, dll. Dari membaca pertanyaan Anda, saya akan mengasumsikan tiga langkah pertama diurus.

Jadi, mari kita mulai dengan memeriksa ulang bagaimana Anda memvalidasi aplikasi Anda.

Validasikan aplikasi Anda

Untuk memvalidasi aplikasi yang ditandatangani ID Pengembang, ikuti langkah-langkah ini:

  1. Di Xcode, buka Produk> Arsip
  2. Jendela Archives organizer akan muncul
  3. Pilih arsip untuk aplikasi yang dimaksud
  4. Klik pada Validatetombol
  5. Kotak dialog muncul meminta Anda untuk memilih metode untuk validasi
  6. Pilih Validasi Pengembang ID-ditandatangani Aplikasi option
  7. Klik Next
  8. Di jendela berikutnya pilih tim dari menu pop-up
  9. Klik Choose
  10. Klik Validatetombolnya

Ini akan mengidentifikasi masalah validasi apa pun. Jika ada yang ditemukan, ini akan menjadi masalah Anda (atau setidaknya bagian dari itu), jadi Anda harus menyelesaikannya.

Jika tidak ditemukan masalah, lanjutkan di bawah.

Ekspor aplikasi yang ditandatangani ID Pengembang

  1. Masih di dalam jendela penyelenggara Arsip, pilih arsip untuk aplikasi yang dimaksud
  2. Klik pada Exporttombol
  3. Kotak dialog muncul meminta Anda untuk memilih metode untuk ekspor
  4. Pilih Ekspor Pengembang ID-ditandatangani Aplikasi option
  5. Klik Next
  6. Di jendela berikutnya pilih tim dari menu pop-up
  7. Klik Choose
  8. Klik Exporttombolnya

Setelah aplikasi Anda diekspor, Anda harus menguji dengan Gatekeeper diaktifkan dan lagi dengan Gatekeeper dinonaktifkan.

Monomeeth
sumber
Terima kasih atas jawabannya, saya akan mencoba ini sesegera mungkin.
Zze