ไม่มีคีย์ส่วนตัวในใบรับรองการแจกจ่ายบนพวงกุญแจ


170

ฉันมีปัญหาต่อไปนี้ซึ่งฉันไม่สามารถหาวิธีแก้ปัญหาได้ทุกที่ โดยทั่วไปเรามีบัญชีนักพัฒนา บริษัท (ไม่ใช่องค์กร) และเพื่อที่จะส่งแอพของเราฉันขอจากทีมงานของเราเพื่อส่งใบรับรองการกระจายและสร้างและส่งโปรไฟล์การจัดสรรการกระจายให้ฉัน

ด้วยโปรไฟล์นักพัฒนาซอฟต์แวร์ทุกอย่างทำงานได้ดี แต่เมื่อฉันติดตั้งใบรับรองและโปรไฟล์การจัดสรรฉันไม่เห็นโปรไฟล์การแจกจ่ายบน Xcode และฉันไม่มีกุญแจส่วนตัวภายใต้ dist cert ในพวงกุญแจ

ไม่มีใครรู้วิธีแก้ปัญหานี้? ฉันอ่านในสถานที่ต่าง ๆ ที่ฉันจะต้องเพิกถอนใบรับรองและสร้างใหม่ แต่ฉันทำไม่ได้จริงๆเพราะเรามีแอพจำนวนมากใน บริษัท และฉันไม่สามารถเพิกถอนใบรับรองได้สำหรับทุกคน


2
บางครั้งคีย์ส่วนตัวขาดหายไปเนื่องจากเราพยายามสร้างใบรับรองด้วย. CSR ซึ่งสร้างขึ้นในเครื่องอื่น ๆ ดังนั้นตรวจสอบให้แน่ใจว่าไฟล์ CSR ของคุณควรสร้างในเครื่องเดียวกันกับที่คุณพยายามสร้างและติดตั้งใบรับรอง .. หรือคุณสามารถใช้. p12 ของใบรับรองเพื่อหลีกเลี่ยงปัญหานี้
MAhipal Singh

2
ในกรณีของฉันฉันมีใบรับรองการลงนามที่เหมือนกันสองใบในพวงกุญแจของฉัน ... มันแก้ได้เพียงแค่ลบหนึ่งในนั้น ... ในกรณี ...
juanram0n

คำตอบ:


167

ป้อนคำอธิบายรูปภาพที่นี่Ahh นี่เป็นปัญหาที่พบบ่อยการแก้ปัญหาง่ายมาก:

ใครที่เคยสร้างข้อมูลประจำตัวของนักพัฒนาจำเป็นต้องไปที่พวงกุญแจบนคอมพิวเตอร์ของพวกเขาและคลิกขวาที่กุญแจสำหรับส่วนตัวและสาธารณะและส่งออกกุญแจไปยังไฟล์ จากนั้นคุณเพียงแค่ดาวน์โหลดไฟล์นั้นบนคอมพิวเตอร์ของคุณแล้วเปิดมันและมันจะถูกเพิ่มลงในพวงกุญแจของคุณ

คุณต้องมีทั้งคีย์ส่วนตัว (ไฟล์. pem) และใบรับรองสำหรับโปรไฟล์การจัดเตรียมของคุณ


36
การจะมีความเฉพาะเจาะจงมากขึ้นมันเป็นไฟล์ p12 ที่ที่คุณต้องการ (ส่งออก)
mkral

7
@Nirma จะทำอย่างไรถ้าเราไม่มีสิทธิ์เข้าถึงคอมพิวเตอร์เครื่องนั้นที่สร้างข้อมูลประจำตัวสำหรับนักพัฒนา
Nishad Arora

@NishadArora คุณจะต้องสร้างรหัสใหม่เพื่อใช้ ไม่มีวิธีใช้โดยไม่มีรหัสส่วนตัว AFAIK
Joshua Pinter

2
@Nirma วิธีสร้างใหม่
Muju

70

ตราบใดที่คุณยังสามารถเข้าถึง mac ซึ่งใช้เพื่อสร้างใบรับรองการกระจายดั้งเดิมมันง่ายมาก

เพียงใช้แอปพลิเคชัน Keychain Access ของ mac นั้นเพื่อส่งออกทั้งใบรับรองและคีย์ส่วนตัว เลือกทั้งการใช้ shift หรือคำสั่งและคลิกขวาเพื่อส่งออกไปยังไฟล์. p12

แนบภาพหน้าจอเพื่อให้ชัดเจนมาก

ใน mac ของคุณให้นำเข้าไฟล์. p12 และคุณก็พร้อมที่จะไป (แค่ต้องแน่ใจว่าคุณมีโปรไฟล์การจัดสรรที่ถูกต้อง)

เพียงเลือกส่งออก


55

หากต้องการเพิ่มคำตอบของผู้อื่นหากคุณไม่สามารถเข้าถึงคีย์ส่วนตัวนั้นได้อีกต่อไปมันค่อนข้างง่ายในการสำรองและใช้งาน:

  1. เพิกถอนใบรับรองที่ใช้งานของคุณในพอร์ทัลการจัดสรร
  2. สร้างใบรับรองนักพัฒนาซอฟต์แวร์ใหม่ (ขอการเข้าถึงพวงกุญแจ /.../ ขอ csr ... ฯลฯ )
  3. ดาวน์โหลดและติดตั้งใบรับรองใหม่
  4. สร้างโปรไฟล์การจัดสรรใหม่สำหรับรหัสแอพที่มีอยู่ (บนพอร์ทัลการจัดสรร)
  5. ดาวน์โหลดและติดตั้งโปรไฟล์การจัดเตรียมใหม่และในการสร้างการตั้งค่ากำหนดรหัสประจำตัวการลงรหัสที่เหมาะสม

13
ที่นี่ที่ บริษัท ของฉันมักจะยุ่งเหยิงไม่มีใครรู้ว่าคอมพิวเตอร์สร้างใบรับรองที่ไหน เป็นการดีกว่าที่จะเพิกถอนและสร้างใหม่
user2387149

1
@ user2387149 ฉันอยู่ที่นี่ 6 ปีต่อมาเพื่อแนะนำ CI / CD ให้ทำสิ่งนี้และลืมแจกจ่ายผ่านทาง xCode
Edgar Salazar

ถ้าฉันดาวน์โหลดใบรับรองการแจกจ่ายแล้วฉันจะเพิกถอนมันแล้วขออีกครั้ง ฉันควรลบใบรับรองการแจกจ่ายเก่าหรือไม่
kafinsalim

14

ลบไฟล์ที่มีอยู่ออกจาก KeyChain รับและเพิ่มไฟล์. p12 ไปยัง mac ของคุณจากที่ซึ่งใบรับรองถูกสร้างขึ้น

ในการรับ. p12 จาก Mac ต้นทางให้ไปที่ KeyChain ขยายใบรับรองเลือกทั้งสองและส่งออก 2 รายการ จะเป็นการบันทึกไฟล์. p12 ในตำแหน่งของคุณ:

ป้อนคำอธิบายรูปภาพที่นี่


8

ในกรณีของฉันฉันทำกุญแจส่วนตัวหายไปในพวงกุญแจของฉันใหม่จะถูกนำเข้าอย่างถูกต้อง แต่ไม่แสดงรหัสส่วนตัวเช่นกัน สิ่งเดียวที่ช่วยได้คือการสร้าง CertificateSigningRequest ใหม่


6

หลังจากที่คุณเปลี่ยน Mac ซึ่งไม่ใช่ผู้ให้กำเนิดที่สร้างใบรับรองการกระจายคุณจะหายไปคีย์ส่วนตัวเพียงแค่ลบใบรับรองต้นกำเนิดและสร้างใหม่ใหม่ที่เหมาะกับฉัน ~


5

เมื่อฉันพยายามอัปโหลด iOS build เพื่อทดสอบการบินแสดงว่ามีข้อผิดพลาดปรากฏขึ้น

"Missing privacy key".

ป้อนคำอธิบายรูปภาพที่นี่

เพียงแค่ 2 ขั้นตอนเพื่อแก้ไขข้อผิดพลาดนี้

  1. ลบใบรับรองเก่าออกจาก developer.apple.com
  2. สร้างใบรับรองใหม่จาก Xcode หรือ developer.apple.com

ปัญหาของฉันได้รับการแก้ไขแล้ว(ฉันใช้ Xcode 9.4.1)

โปรดตรวจสอบ Xcode สร้างใบรับรองใหม่

ป้อนคำอธิบายรูปภาพที่นี่


5

สำหรับผู้ที่กลัวในการสร้างใบรับรองการกระจาย AppStore ใหม่เอกสารของ Apple บอกว่า:

สำคัญ: การสร้างใบรับรองการพัฒนาหรือการแจกจ่ายซ้ำของคุณจะไม่มีผลกับแอพที่คุณส่งไปยัง App Store และจะไม่มีผลกับความสามารถในการอัปเดต

แต่มันมีผลกับแอพสำหรับระบบนิเวศน์ของนักพัฒนา Apple


4
มันจะทำอย่างไรถ้าคุณมีบัญชีองค์กร!
MobileMon

โดย "ระบบนิเวศขององค์กร" .... สำหรับอดีต คุณกำลังพูดถึงถ้าคุณทำงานใน บริษัท ขนาดใหญ่และนักพัฒนา 100 คนมีรหัสส่วนตัวสำหรับแอพนั้น
petrosmm

2

ที่เมนู> Visual Studio (mac)> การตั้งค่า> การเผยแพร่> บัญชีนักพัฒนา Apple> [เลือก apple id ของคุณ]> ดูรายละเอียด> สร้างใบรับรอง

หากต้องการลบใบรับรองที่ไม่ได้ใช้ / ไม่ถูกต้องให้ไปที่เว็บไซต์: https://developer.apple.com/account/resources/certificates/list

ลบใบรับรองที่ไม่พึงประสงค์ที่นั่น

ถัดไปคือการสร้าง ID แอป (ตัวระบุ) ไปที่เว็บไซต์:
https://developer.apple.com/account/resources/identifiers/list

จากนั้นไปที่เว็บไซต์เพื่อสร้างโปรไฟล์การจัดสรร:
https://developer.apple.com/account/resources/profiles/add

ใช้ใบรับรองเพื่อผูกกับรหัสแอปของคุณ

ถัดไปคือการดาวน์โหลดโปรไฟล์:
ที่ mac ของคุณ> ที่เมนู> Visual Studio (mac)> การตั้งค่า> การเผยแพร่> บัญชีนักพัฒนา Apple> [เลือกรหัส Apple ของคุณ]> ดูรายละเอียด> ดาวน์โหลดโปรไฟล์ทั้งหมด


1

ฉันเข้าถึงใบรับรองนั้นบนเว็บไซต์นักพัฒนาของ apple และหลังจากดาวน์โหลดฉันก็เปิดมัน ที่เปิดฉันมีหน้าต่างเล็ก ๆ น้อย ๆ ถามว่าฉันต้องการเพิ่มใบรับรองในพวงกุญแจหรือไม่ เพิ่งเคาะ "เพิ่ม" และข้อผิดพลาด "คีย์ส่วนตัวที่หายไป" หายไป


1

ฉันเข้าสู่สถานการณ์นี้ ("ไม่มีคีย์ส่วนตัว") หลังจาก Xcode ไม่สามารถสร้างใบรับรองการกระจายใหม่ - เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ

จากนั้นฉันพยายามรับคีย์ส่วนตัวหรือสร้างใบรับรองใหม่ จากตัวจัดการใบรับรองใน Xcode ฉันพบข้อผิดพลาดแปลก ๆ เช่น "ข้อความรหัสผ่านที่คุณป้อนผิด" แต่มันก็ไม่ได้ถามฉันสำหรับวลีรหัสผ่านใด ๆ

สิ่งที่ช่วยฉันได้คือ:

  1. เพิกถอนใบรับรองการแจกจ่ายที่ไม่ทำงานทั้งหมดที่ developer.apple.com
  2. รีสตาร์ท Mac ของฉัน

หลังจากนั้น Xcode สามารถสร้างใบรับรองการกระจายใหม่และไม่มีคีย์ส่วนตัวหายไป

เรียนรู้บทเรียน: รีสตาร์ท Mac ของคุณมากเท่ากับ Windows;)


0

ตรวจสอบว่าคุณใช้เข้าสู่ระบบหรือไม่ที่จะเพิ่มใบรับรองหากคุณกำลังตรวจสอบในระบบที่ด้านซ้ายมือด้านบนแล้วเราจะไม่สามารถดูได้

ดังนั้นลากแล้วปล่อย. cer เข้าสู่ระบบจากนั้นตรวจสอบว่าคุณสามารถรับรหัสส่วนตัวได้หรือไม่


0

เพียงแค่หลั่งน้ำตาแสงนี้

หลังจากฉันลบใบรับรอง p12 ของฉันจาก Keychain ฉันดาวน์โหลดใบรับรองของฉันเองอีกครั้งจากพอร์ทัลนักพัฒนา Apple

ฉันสามารถดาวน์โหลดใบรับรองได้เท่านั้น แต่การเซ็นชื่อคุณต้องมีกุญแจส่วนตัวเช่นกัน ดังนั้นคุณ:

  • ส่งออกทั้งกุญแจส่วนตัวและใบรับรองจาก Keychain เพื่อรับมัน

  • อัปโหลดคำขอลงนามใบรับรองและสร้างใบรับรองใหม่

ใบรับรองนั้นไม่มีค่าสำหรับการลงนาม ฉันเดาว่ากุญแจส่วนตัวถูกสร้างขึ้นโดย keychain เมื่อคุณ 'ขอใบรับรองจากผู้ออกใบรับรอง' แต่จะไม่ปรากฏให้คุณจนกว่าคุณจะเพิ่มใบรับรองการผูก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.