Kesalahan tanda kode: Identitas sertifikat muncul dua kali

103

Galat CodeSign: Identitas sertifikat 'Pengembang iPhone: XXXX (12345678)' muncul lebih dari sekali di rantai kunci. Alat kode tanda hanya membutuhkan satu.

Jadi saya pergi ke gantungan kunci saya dan menghapusnya. Tetapi saya mendapatkan kesalahan ini setiap kali saya memulai ulang Xcode 4 dan beberapa aplikasi menambahkan kembali sertifikat lama yang kedaluwarsa ke dalam rantai kunci. Ada ide mengapa dan aplikasi mana?

Mugunth
sumber
kemungkinan duplikat dari masalah sertifikat kedaluwarsa Xcode
zoul

Jawaban:

99

Saya baru saja mengalami masalah yang sama. Sudah diperbaiki. Itu terjadi setelah saya mengirimkan aplikasi dan memasang beberapa sertifikat untuk menandatangani aplikasi.

Perbaikan Cepat: Buka AKSES KEYCHAIN> klik SERTIFIKAT SAYA> di sana Anda mungkin akan melihat Pengembang iPhone:. Anda mungkin akan melihatnya DUA KALI! Pilih salah satu dengan tanggal Kedaluwarsa paling awal, klik kanan dan pilih HAPUS.

Mulai ulang Xcode jika Anda belum melakukannya. Bekerja sekarang. :)

Selamat Coding.

Louie
sumber
27
Satu langkah lagi! Anda perlu membuka Penyelenggara di XCode dan menyegarkan profil penyediaan Anda setelah menghapus sertifikat duplikat.
Meekohi
@Meekohi apa yang Anda maksud dengan 'menyegarkan' profil penyediaan saya? Terima kasih!
abw333
7
Meluncurkan ulang Xcode telah memecahkan masalah yang sama untuk saya setelah saya menghapus sertifikat lama.
Maxim Mikheev
Di Xcode 4 (Saya punya 4.4.1), saya harus menghapus SEMUA profil penyediaan yang terkait dengan sertifikat lama. Kemudian saya memulai ulang Xcode dan sertifikat lama berhenti (secara ajaib) muncul di Keychain.
Roberto
3
Bekerja untuk saya dengan satu tambahan (saya menggunakan Xcode 4.6.3). Saya menghapus sertifikat yang kadaluwarsa (atau paling cepat kedaluwarsa), kemudian memulai ulang Xcode dan saya masih mengalami masalah - sertifikat lama entah bagaimana muncul kembali di Akses KeyChain. Jadi, saya memulai ulang Xcode tetapi sebelum saya memilih proyek saya untuk dibuka, saya kembali ke Akses KeyChain dan sertifikat lama ada di sana lagi, jadi saya menghapusnya. Kemudian saya membuka projet saya (di Xcode yang sudah berjalan) dan semuanya baik-baik saja - saya bisa membuatnya lagi.
Ed Sinek
71

Saya rasa saya sudah tahu mengapa penghapusan sederhana tidak berfungsi. Karena sertifikat dev masih disimpan di profil penyediaan, ketika saya menutup / membuka kembali Xcode setelah menghapus sertifikat di Keychain, saya melihat sertifikat lama kembali. Jadi saya hapus lagi. Berhasil.

Solusi hapus sederhana profil tidak berhasil untuk saya.

Solusi yang berhasil dalam kasus saya:

  1. Keluar dari Xcode
  2. Jika akses Keychain terbuka, tetap buka.
  3. Luncurkan Xcode sekarang.
  4. Lihat bahwa sertifikat yang dikeluhkan Xcode akan ditambahkan kembali ke rantai kunci saat peluncuran dari cache-nya.
  5. Silakan hapus.
  6. Kompilasi dan selamat membuat kode.
Mobilewits
sumber
3
Saya mencoba semua solusi di atas, dan yang ini berhasil. Sepertinya ada beberapa penyebab / solusi.
Nathan Hangen
+1: Saya dapat mengonfirmasi bahwa XCode memang menyimpan "tembolok" dari sertifikat dan menambahkannya saat peluncurannya-- sangat buruk karena cara kerjanya seperti ini! Itu menyebabkan banyak masalah! Malu pada Anda Apple, ini telah menyebabkan berjam-jam waktu yang hilang karena berkelahi dengan ini!
JRG-Developer
10

Saya hanya menghabiskan cukup banyak waktu untuk berjuang dengan masalah yang sama ini. Setelah semua upaya untuk memperbaikinya, saya akhirnya menyadari bahwa itu adalah bug di Xcode. Posting ini memberi saya petunjuk untuk memperbaikinya: sertifikat secara ajaib muncul kembali di keychain Anda

Dalam kasus saya, kunci pribadi yang cocok ada di rantai kunci Sistem, dan baru saja mencantumkan nama saya (sulit untuk mengatakan itu untuk penyediaan). Saya harus:

  • Pindahkan kunci pribadi terkait ke rantai kunci 'masuk'
  • Mulai ulang Xcode dan perhatikan bahwa kunci pribadi sekarang ditampilkan sebagai terkait (mengonfirmasi untuk apa)
  • Hapus sertifikat dan kunci pribadi
  • Mulai ulang Xcode dan poof! Itu berhenti menambahkan sertifikat lama saya

Pengamatan yang menarik adalah ketika Anda menghapus sertifikat, itu tidak menghapus kunci privat terkait. Secara visual, ini menunjukkan kunci pribadi di bawah sertifikat. Jangan tertipu.

Semoga berhasil!

Sean Aitken
sumber
menghapus kunci pribadi juga berhasil untuk saya - xcode terbaru oktober 2012 perbarui singa gunung
ina
4

Jika Anda adalah anggota program Pengembang iOS dan Pengembang iOS Perusahaan dan Anda memasukkan nama perusahaan Anda dengan nama yang sama untuk kedua aplikasi, Anda akan mendapatkan dua sertifikat distribusi yang valid dengan nama yang sama.

Saya yakin pertanyaan ini menjawab situasi tersebut: tabrakan CodeSign antara Pengembang dan Distribusi Perusahaan

Josh Metcalfe
sumber
3

Saya memiliki masalah yang sama dengan xcode45-DP1. ini berhasil untuk saya:

  1. hapus semua sertifikat yang terkait dengan akun Anda dari rantai kunci. Gantungan kunci QUIT

  2. hapus semua profil penyediaan yang terkait dengan akun Anda dari xcode: organizer: device: Library: profil penyediaan. KELUAR xcode

  3. cabut sertifikat Anda dan buat ulang dan unduh ke mesin build Anda

  4. sebelum mengunduh profil penyediaan, klik Edit di sebelah tombol unduh untuk memastikan nama Anda dipilih.

  5. Kemudian unduh profil penyediaan

  6. klik dua kali pada sertifikat untuk menginstalnya ke keychain

  7. seret profil penyediaan ke xcode: organiser: device: Library: profil penyediaan

  8. jangan klik tombol segarkan dari xcode.

  9. buat bangunan.

ccs
sumber
3

Jawabannya ada di sini

hapus semua profil penyediaan lama saya menggunakan sertifikat lama dengan Penyelenggara kemudian keluar dari XCode, hapus sertifikat lama dari Keychain dan mulai ulang XCode.

Sepertinya xcode akan menyimpan sertifikat saat Anda memiliki referensi ke dalam profil penyediaan

yeahdixon
sumber
1

Saya mengalami masalah dengan sertifikat zombie yang diisi kembali ke dalam gantungan kunci saya dan identitas sertifikat muncul dua kali. Menghapus sertifikat duplikat saja tidak berhasil.

Di Xcode, ketika saya melihat ke Code Signing di target, saya ingat saya memiliki profil distribusi yang berbeda di build "Ad Hoc" daripada build "Rilis".

Saat saya membuat sertifikat baru, saya hanya mendownload profil baru untuk build Ad Hoc, dan bukan untuk Build rilis.

Xcode tergantung pada sertifikat untuk kedua profil tersebut, dan karena itu Xcode menyebabkan sertifikat duplikat ... karena saya lupa memperbarui profil saya dengan benar.

Pastikan untuk memperbarui SEMUA profil penyediaan Anda ke sertifikat baru, dan ubah SEMUA profil secara bersamaan di Xcode.

Pastikan untuk memperbarui semua profil penyediaan Anda dengan sertifikat baru, jika tidak Xcode akan mencoba menempatkan sertifikat untuk KEDUA profil di rantai kunci ... menyebabkan kesalahan duplikat!

karlbecker_com
sumber
1

Saya mengalami masalah ini dan membaca setiap informasi tentangnya, akhirnya saya menemukan solusinya sendiri. Apa yang orang gagal sebutkan adalah bahwa SEBELUM membersihkan sertifikat di Xcode organizer dan SEBELUM membersihkan kunci kadaluarsa di rantai kunci Anda, Anda perlu memastikan bahwa Anda tidak memiliki sertifikat kedaluwarsa di Portal Penyediaan . Jika Anda bahkan memiliki satu sertifikat kedaluwarsa untuk aplikasi lama yang menggunakan sertifikat Pengembang lama, Xcode akan menariknya ke dalam penyelenggara dengan build pertama dan dari sana akan masuk ke rantai kunci Anda dan akan menyebabkan duplikat.

Segev
sumber
1

Dalam kasus saya, "cache" yang dilihat Xcode adalah perangkat iOS yang terpasang. Untuk menentukan apakah ini masalah Anda:

  1. Putuskan sambungan semua perangkat iOS
  2. Hapus sertifikat dan kunci pribadi yang melanggar dari Akses Rantai Kunci
  3. Mulai ulang Xcode
  4. Periksa Akses Keychain: dalam kasus saya, duplikatnya TIDAK dibuat ulang pada saat ini
  5. Hubungkan kembali perangkat iOS
  6. Mulai ulang Xcode lagi
  7. Periksa Akses Rantai Kunci: dalam kasus saya, duplikat dibuat ulang pada saat ini

Jika ini adalah penyebab utama Anda, Anda dapat mengatasinya dengan memastikan Anda memutuskan sambungan perangkat iOS sebelum memulai Xcode.

Simon Whitaker
sumber
0

Hanya menghapus sertifikat yang berlebihan tidak berhasil untuk saya. Tampaknya setiap kali xcodebuild dipanggil, itu adalah "Membuat ulang" sertifikat di rantai kunci dari cache di suatu tempat ... masalah yang sama seperti avi Saya membuat retas / perbaikan untuk itu, mencoba menemukan di mana file itu di-cache dan membersihkannya, tapi tidak beruntung. Pada akhirnya, apa yang berhasil untuk saya (sedikit hack, tapi hei, apa lagi yang bisa Anda lakukan), adalah mencari tahu apa nomor sertifikatnya, dan secara manual menghapusnya dari rantai kunci segera setelah xcodebuild dipanggil. Pertama, buka direktori / usr / bin / Anda (atau direktori apa pun yang memiliki file xcodebuild Anda, coba which xcodebuild) dan jalankan perintah berikut:

sudo mv xcodebuild xcodebuild_actual

Kemudian buat file menggunakan editor favorit Anda (jangan lupa sudo) dengan kode berikut:

xcodebuild_actual $* &
echo "xcodebuild started, waiting to wipe certificate, 10 seconds"
sleep 2
echo "Wiping Certificate..."
sudo security -v delete-certificate -t -Z 407629F811D52C0BB7AD31BBB18DCB496354B05E

Catatan: Anda harus mengubah file sudoers Anda agar memiliki akses untuk menjalankan perintah khusus ini tanpa harus memasukkan kata sandi.

Ganti identitas hex setelah -Z di atas dengan identitas hex dari sertifikat zombie yang melanggar. Terakhir, pastikan file xcodebuild dapat dieksekusi:

sudo chmod 755 xcodebuild 

Anda sekarang dapat membuka rantai kunci Anda dan menjalankan perintah build, dan melihat bagaimana sertifikat zombie yang menyinggung dihidupkan kembali, dan kemudian ditembakkan secara singkat sebelum itu menjadi masalah untuk penandatanganan kode. Semoga Apple akan memberikan perbaikan nyata untuk ini.

BadPirate
sumber
0

Dalam kasus saya, menghapus sertifikat tidak berhasil. XCode 4 tampaknya menyimpan atau memulihkannya. Trik yang akhirnya berhasil bagi saya adalah menjalankan keychain dan xcode. Kemudian di rantai kunci seret 2 sertifikat saya (dev + dist) dari 'login' ke 'sistem'. Kemudian duplikatnya muncul kembali secara ajaib dan saya dapat menghapusnya, lalu saya menyeret sertifikat kembali ke 'login'

Peter
sumber
0

Sangat mudah, ekspor Sertifikat yang benar ke desktop Anda. Hapus Sertifikat itu di rantai kunci. Coba buat sumber dengan pesan kesalahan (tidak memiliki sertifikat ..) Kemudian impor lagi sertifikatnya. => Sukses!

Giang
sumber
0

Saya baru saja menghapus salah satu kunci privat di rantai kunci saya untuk sertifikat yang tidak saya perlukan lagi.

Meskipun sertifikat muncul kembali tetapi kunci privat tidak muncul kembali. Sekarang periksa sertifikat yang valid dan hanya satu sertifikat yang akan muncul dan sertifikat lain yang kunci pribadinya dihapus tidak lagi ditampilkan di bawah sertifikat yang valid.

Saya rasa ini adalah cara termudah untuk mengatasi masalah ini.

swathy valluri
sumber
0

Saya pernah menghadapi masalah yang sama sekali. Dan saya telah menyelesaikannya dengan menghapus profil penyediaan yang tidak digunakan dari tab Organizer di xcode. Sebenarnya Keychain akan mendapatkan sertifikat itu dari profil penyediaan ini yang merupakan sertifikat kedaluwarsa atau yang dibangun dengan sertifikat yang dicabut.

Jadi Anda hanya perlu menghapus profil penyediaan ini dari tab Penyelenggara. Pengatur ada di sisi kanan atas tombol xcode Buka dan daripada di Pengatur hapus profil penyediaan yang tidak Anda gunakan.

Ini tangkapan layarnya,

masukkan deskripsi gambar di sini

Dan jangan lupa untuk menghapus sertifikat tambahan dari rantai kunci tetapi setelah itu sertifikat tersebut tidak muncul lagi.

Dilip
sumber