Sertifikat distribusi / kunci pribadi tidak dipasang

104

Menggunakan Xcode 9.1, setelah membangun aplikasi iOS, saya ingin mengarsipkannya dan mengunggahnya ke appStore untuk pengujian beta. Tetapi saya mendapatkan masalah berikut setelah mengklik tombol Upload to the App Store...dan memilih Automatically manage signing:

"Nama Saya" memiliki satu sertifikat Distribusi iOS tetapi kunci pribadinya tidak terpasang.

Saya tidak tahu mengapa "kunci pribadi tidak diinstal", tetapi sertifikat Distribusi mungkin telah dibuat di komputer lain atau sesuatu. Bagaimanapun:

Apa cara termudah untuk mengambil kunci pribadi yang hilang dan menginstalnya? Untuk membuat semuanya bekerja.

Michel
sumber

Jawaban:

83

Anda hanya dapat memiliki satu sertifikat distribusi. Ini menyatukan kunci publik, yang dikenal oleh Apple, dengan kunci pribadi, yang ada di rantai kunci beberapa komputer. Jika sertifikat distribusi ini dibuat di komputer lain, maka kunci privat ada di rantai kunci komputer itu. Dan sertifikat distribusi ini tidak berfungsi tanpanya.

Jadi untuk menggunakan sertifikat distribusi ini pada komputer ini, Anda harus menemukan bahwa komputer, terbuka Keychain Access, cari dan mengekspor kunci pribadi, surat itu atau mendapatkannya ini komputer, dan impor ke keychain dari komputer ini.

Jika Anda masuk ke panel pref Akun di Xcode dan mengklik dua kali Tim Anda, Anda akan melihat dialog yang memberi Anda bantuan untuk ini. Jika Anda melihat sertifikat distribusi Anda dan tertulis Not In Keychain, Anda dapat mengontrol-klik sertifikat itu untuk mendapatkan item menu yang memungkinkan Anda mengirim email kepada siapa pun yang membuat sertifikat dan meminta mereka untuk mengirimkannya kepada Anda. Orang itu dapat menggunakan impor yang sama ini untuk memilih Ekspor Sertifikat dan dapat mengirimi Anda email untuk mengekspor sertifikat.

Apa pun itu, kunci pribadi atau sertifikat yang diekspor akan diberi sandi. Anda harus mengetahui kata sandi untuk menggunakannya.

Matt
sumber
1
Uji coba pertama saya mengikuti saran Anda tidak berhasil. Kemungkinan besar karena saya tidak melakukannya dengan benar. Satu pertanyaan yang saya miliki adalah saat membuka Akses Rantai Kunci tempat sertifikat dibuat. Bagaimana cara menemukan kunci pribadi? Sepertinya Akses Keychain menunjukkan, di beberapa tempat, zillions objek semuanya disebut nama yang sama. Jadi saya sama sekali tidak yakin saya melakukan bagian itu sebagaimana mestinya.
Michel
34
Ya, mengirim email kepada diri saya sendiri untuk mengajukan pertanyaan yang sekarang saya tanyakan kepada Anda sepertinya tidak akan efektif :)
Michel
1
Tapi menurut saya jawaban Anda membuat saya berada di jalur yang benar, jadi saya perlu menggali lebih dalam.
Michel
Saya akhirnya menemukan jalan keluar dari masalah ini. Tapi sayangnya saya belum selesai dengan keseluruhan bisnis penandatanganan. Saya membuat posting berbeda dengan pertanyaan terpisah: stackoverflow.com/questions/47258499/…
Michel
Terima kasih untuk @matt ini! Dalam kasus saya, saya membuat sertifikat Distribusi iOS menggunakan CSR yang saya buat di perangkat saya, tetapi kemudian ketika saya menginstalnya di rantai kunci, tidak ada kunci pribadi yang terkait dengan sertifikat. Saya dapat mengompilasi, tetapi saya tidak tahu di mana kunci privatnya, jadi saya tidak dapat memberikan file p12 kepada rekan satu tim saya. Meskipun kasusnya berbeda, berkat saran Anda untuk membuka panel Akun Xcode, saya dapat mengekspornya ke p12. :) Sekarang, semuanya baik-baik saja, tapi saya hanya bertanya-tanya di mana sih kunci privat itu disembunyikan sehingga tidak ditampilkan bersama dengan sertifikat di Keychain.
KarenAnne
292

Terbaru (Jully 2020) (xcode 10-12)

  1. pergi ke Xcode - Preferensi - Akun - Kelola Sertifikat
  2. Klik +di kiri bawah, laluApple development
  3. Tunggu sebentar, lalu klik Done

Itu saja. Anda mungkin ingin mencabut sertifikat lama di developer.apple.com juga.

Jawaban lama

Langkah 1: - xcode -> produk -> arsip -> Klik kelola sertifikat masukkan deskripsi gambar di sini

Langkah 2: - tambahkan distribusi ios masukkan deskripsi gambar di sini

Tanjima Kothiya
sumber
7
Ini tidak berfungsi karena tidak ada yang terjadi saat saya mengklik tanda tambah. Saya tidak diberi opsi untuk 'Distribusi iOS'.
arnoldbird
2
Jika saya mengakses Kelola Sertifikat melalui Xcode> Preferensi> Akun, maka tanda plus aktif seperti yang ditunjukkan pada Langkah 2 di atas.
arnoldbird
12
Ini akan menjadi jawaban terbaik
kishorekumaru
2
Wow :-D. Memperbaiki itu untuk saya. Entah itu seharusnya tidak mungkin atau Xcode seharusnya tidak mengganggu Anda untuk melakukannya.
Joshua R.
3
Saat ini di Xcode 10.3 Xcode - Preferensi - Akun - Kelola Sertifikat
Anton
27

Jawaban ini untuk Tim "Satu Orang" untuk menyelesaikan masalah ini dengan cepat tanpa membaca terlalu banyak informasi tentang "Tim"

Langkah 1) Buka browser web, buka akun pengembang Anda. Buka Sertifikat, Pengenal & Profil. Pilih Sertifikat / Produksi. Anda akan melihat sertifikat yang tidak memiliki kunci pribadi tercantum di sana. Klik Cabut. Dan ikuti instruksi untuk menghapus sertifikat ini. masukkan deskripsi gambar di sini Langkah 2) Selesai! kembali ke Xcode untuk memvalidasi aplikasi Anda. Sekarang akan meminta Anda untuk menghasilkan sertifikat baru. Sekarang Anda dengan senang hati mengunggah aplikasi Anda.

Paul
sumber
11

EDIT: Saya pikir komputer lain mati jadi saya memperbaiki jawaban saya:

Anda harus mengekspor sertifikat dari komputer pertama dengan kunci privatnya dan mengimpornya di komputer baru.

Saya lebih suka cara iCloud, backup ke iCloud dan mendapatkannya di komputer baru.

Jika Anda tidak dapat melakukannya karena alasan tertentu, Anda dapat mencabut sertifikat di situs pengembang Apple, lalu membiarkan Xcode membuat yang baru untuk Anda, itu juga akan membuat kunci pribadi baru dan menyimpannya di Keychain Anda, cukup pastikan untuk mencadangkannya dengan cara yang Anda sukai

Yitzchak
sumber
2
Itu nasihat yang buruk.
matt
4
Menurut pengetahuan saya tidak ada hal buruk yang terjadi saat pencabutan sertifikat .. Apakah Anda mengetahui hal lain?
Yitzchak
Iya; dia dapat mengekspor kunci privat dari komputer 1 ke komputer 2. Apa yang Anda sarankan akan menyebabkan sertifikat distribusi berhenti berfungsi di komputer lain! Mengapa itu bagus?
matt
2
Saya pikir komputer lain mati
Yitzchak
7

Tambahkan Sertifikat Produksi baru di sini , lalu unduh file .cer dan klik dua kali untuk menambahkannya ke Keychain.

Semua akan baik-baik saja sekarang, jangan lupa restart Xcode !!!

fujianjin6471
sumber
1
bagi saya kesalahan masih muncul, harus mengklik plus untuk memperbarui dan berfungsi
Zack
7

cabut semua sertifikat distribusi untuk developer.apple.com dan validasi aplikasi Anda di Xcode akan ada opsi untuk membuat sertifikat distribusi baru setelah Anda dapat mengekspor kunci untuk digunakan lebih lanjut.

Ini bekerja untuk saya.

Sohaib Siddique
sumber
5

Jawaban orang-orang di sini tentang memiliki kunci dari komputer dibuat akurat. Tetapi jika ada yang masih gagal, coba restart Xcode setelah menginstal sertifikat

MobileMon
sumber
4

Hanya untuk orang lain yang mengalami ini, jawaban di atas benar tetapi masih bisa sedikit membingungkan terutama jika Anda memiliki banyak sertifikat. Ini adalah langkah-langkah yang saya ambil:

1) Pertama catat tanggal dalam sertifikat distribusi sebenarnya yang tidak memiliki kunci privatnya. Lalu buka aplikasi rantai kunci di komputer lain dan ketik IOS di bilah pencarian. Ini akan menampilkan semua kunci Pengembang dan Distribusi IOS Anda sehingga Anda harus menemukan yang tepat.

2) Klik panah kanan dari setiap entri Distribusi IOS untuk menampilkan sertifikat dan temukan sertifikat dengan tanggal yang benar dan ekspor dengan mengklik kanan dan pilih ekspor.

3) Kemudian impor saja di keychain komputer baru dan setidaknya dengan XCode 9.3 itu segera mengenalinya dan memperbaiki kesalahan sehingga Anda sekarang dapat mengunggah pencapaian Anda.

Sam
sumber
Terima kasih! Saya akan menambahkan bahwa dalam tampilan default Anda tidak melihat panah kiri yang memungkinkan Anda memperluas kunci untuk mengungkapkan sertifikat. Anda perlu memilih Kunci di panel Kategori. Hanya dengan begitu Anda dapat memilih sertifikat dan mengekspornya. Jika Anda mengekspor kunci privat, Anda akan mendapatkan pesan kesalahan saat mengimpornya di komputer lain.
Clafou
4

Jika Anda menggunakan sertifikat di komputer baru atau tidak. Hal termudah untuk dilakukan adalah mencabut sertifikat sebelumnya yang berkaitan dengan proyek tersebut. Kemudian unggah kembali ke toko. Xcode akan membuat yang baru.

Chinedu Etoh
sumber
2

Dalam kasus saya Xcode tidak mengakses sertifikat dari rantai kunci, saya mengikuti langkah-langkah berikut:

  1. hapus sertifikat dari rantai kunci.
  2. restart mac.
  3. menghasilkan sertifikat baru.
  4. instal sertifikat baru.
  5. bersihkan folder build.
  6. membangun proyek.
  7. sekali lagi bersihkan folder build.
  8. arsipkan sekarang. Berhasil Itu saja.
M. Mubeen Asif
sumber