Chứng chỉ phân phối / khóa cá nhân chưa được cài đặt


102

Sử dụng Xcode 9.1, sau khi xây dựng ứng dụng iOS, tôi muốn lưu trữ nó và tải nó lên appStore để thử nghiệm. Nhưng tôi gặp sự cố sau khi nhấp vào nútUpload to the App Store... và chọn Automatically manage signing:

"Tên của tôi" có một chứng chỉ Phân phối iOS nhưng khóa riêng tư của nó chưa được cài đặt.

Tôi không biết tại sao "khóa riêng tư này không được cài đặt", nhưng chứng chỉ Phân phối có thể đã được tạo trên một máy tính khác hoặc một cái gì đó. Trong bất kỳ trường hợp nào:

Cách đơn giản nhất để lấy lại khóa cá nhân bị thiếu và cài đặt nó là gì? Để làm cho mọi thứ hoạt động.

Câu trả lời:


82

Bạn chỉ có thể có một chứng chỉ phân phối. Nó kết hợp một khóa công khai, được biết đến với Apple, với một khóa cá nhân, nằm trong chuỗi khóa của một số máy tính. Nếu chứng chỉ phân phối này được tạo trên một máy tính khác, thì khóa cá nhân nằm trên chuỗi khóa của máy tính đó. Và chứng chỉ phân phối này không hoạt động nếu không có nó.

Vì vậy, để sử dụng chứng chỉ phân phối này trên máy tính này, bạn phải tìm máy tính đó , mở Keychain Access, xác định vị trí và xuất khóa cá nhân, gửi nó qua đường bưu điện hoặc đưa nó đến máy tính này và nhập nó vào chuỗi khóa của máy tính này.

Nếu bạn đi vào ngăn Pref Accounts trong Xcode và nhấp đúp vào Nhóm của bạn, bạn sẽ thấy một hộp thoại cung cấp cho bạn sự trợ giúp về việc này. Nếu bạn thấy chứng chỉ phân phối của mình và thông báo Not In Keychain, bạn có thể kiểm soát khi nhấp vào chứng chỉ đó để nhận một mục menu cho phép bạn gửi email cho bất kỳ ai đã tạo chứng chỉ và yêu cầu họ gửi cho bạn. Người đó có thể sử dụng cùng một lần nhập này để chọn Chứng chỉ xuất và có thể gửi chứng chỉ đã xuất qua email cho bạn.

Dù bằng cách nào, khóa cá nhân hoặc chứng chỉ đã xuất sẽ được đặt mật khẩu. Bạn sẽ cần biết mật khẩu để sử dụng nó.


1
Bản dùng thử đầu tiên của tôi theo gợi ý của bạn đã không hoạt động. Rất có thể vì tôi đã làm không đúng. Một câu hỏi mà tôi có là khi truy cập Keychain Access nơi chứng chỉ được tạo Làm cách nào để tìm khóa cá nhân? Có vẻ như Keychain Access cho thấy, ở một số nơi, các đối tượng zillions đều được gọi cùng một tên. Vì vậy, tôi không chắc chắn rằng tôi đã làm phần đó như tôi nên làm.
Michel

32
Chà, gửi thư cho chính tôi để hỏi câu hỏi mà tôi đang hỏi bạn bây giờ không có khả năng hiệu quả :)
Michel

1
Nhưng tôi vẫn nghĩ rằng câu trả lời của bạn đã đưa tôi đi đúng hướng, vì vậy tôi cần tìm hiểu kỹ hơn một chút về nó.
Michel

Cuối cùng tôi đã tìm ra cách của mình để giải quyết vấn đề này. Nhưng tiếc là tôi chưa hoàn thành toàn bộ công việc ký kết. Tôi đã tạo một bài đăng khác với một câu hỏi riêng biệt: stackoverflow.com/questions/47258499/…
Michel

Cảm ơn vì @matt này! Trong trường hợp của tôi, tôi đã tạo chứng chỉ Phân phối iOS bằng CSR mà tôi đã tạo trên thiết bị của mình, nhưng sau đó khi tôi cài đặt chứng chỉ này vào chuỗi khóa, không có khóa riêng tư nào được liên kết với chứng chỉ. Tôi có thể biên dịch, nhưng tôi không biết khóa cá nhân ở đâu, vì vậy tôi không thể đưa tệp p12 cho đồng đội của mình. Mặc dù một trường hợp khác, nhờ lời khuyên của bạn về việc chuyển đến ngăn Tài khoản Xcode, tôi đã có thể xuất nó sang p12. :) Bây giờ, tất cả đều ổn, nhưng tôi chỉ còn băn khoăn về cái quái gì mà khóa cá nhân ẩn mà nó không hiển thị cùng với chứng chỉ trong Chuỗi khóa.
KarenAnne

283

Cập nhật (tháng 7 năm 2020) (xcode 10 - 12)

  1. chuyển đến Xcode - Tùy chọn - Tài khoản - Quản lý chứng chỉ
  2. Bấm vào + ở dưới cùng bên trái, sau đóApple development
  3. Chờ một chút, sau đó nhấp vào Done

Đó là tất cả. Bạn cũng có thể muốn thu hồi chứng chỉ cũ trên developer.apple.com .

Câu trả lời cũ

Bước 1: - xcode -> sản phẩm -> lưu trữ -> Nhấp vào quản lý chứng chỉ nhập mô tả hình ảnh ở đây

Bước 2: - thêm phân phối ios nhập mô tả hình ảnh ở đây


7
Điều này không hoạt động vì không có gì xảy ra khi tôi nhấp vào dấu cộng. Tôi không được cung cấp tùy chọn cho 'Phân phối iOS'.
arnoldbird,

2
Nếu tôi truy cập Quản lý chứng chỉ qua Xcode> Tùy chọn> Tài khoản, thì dấu cộng sẽ hoạt động như được hiển thị trong Bước 2 ở trên.
arnoldbird

11
Đây sẽ là câu trả lời tốt nhất
kishorekumaru

2
Chà :-D. Đã sửa nó cho tôi. Điều đó không thể xảy ra hoặc Xcode không nên làm phiền bạn làm điều đó.
Joshua R.

3
Hiện tại Xcode 10.3 Xcode - Sở thích - Tài khoản - Quản lý chứng chỉ
Anton

26

Câu trả lời này dành cho "One Man" Team giải quyết vấn đề này một cách nhanh chóng mà không cần đọc qua quá nhiều thông tin về "Team"

Bước 1) Vào trình duyệt web, mở tài khoản nhà phát triển của bạn. Chuyển đến Chứng chỉ, Số nhận dạng & Hồ sơ. Chọn Chứng chỉ / Sản xuất. Bạn sẽ thấy chứng chỉ bị thiếu khóa cá nhân được liệt kê ở đó. Nhấp vào Thu hồi. Và làm theo hướng dẫn để gỡ bỏ chứng chỉ này. nhập mô tả hình ảnh ở đây Bước 2) Vậy là xong! quay lại Xcode để Xác thực ứng dụng của bạn. Bây giờ nó sẽ yêu cầu bạn tạo một chứng chỉ mới. Bây giờ bạn vui vẻ tải lên ứng dụng của mình.


11

CHỈNH SỬA: Tôi nghĩ rằng máy tính kia đã chết nên tôi đang sửa câu trả lời của mình:

Bạn nên xuất chứng chỉ từ máy tính đầu tiên có khóa riêng của nó và nhập chứng chỉ đó vào máy tính mới.

Tôi thích cách iCloud hơn, sao lưu vào iCloud và tải nó vào máy tính mới.

Nếu bạn không thể làm điều đó vì lý do nào đó, bạn có thể thu hồi chứng chỉ trong trang web dành cho nhà phát triển của Apple, sau đó để Xcode tạo một chứng chỉ mới cho bạn, nó cũng sẽ tạo một khóa cá nhân mới và lưu trữ trong Chuỗi khóa của bạn, chỉ hãy chắc chắn sao lưu nó theo cách bạn muốn


2
Đó là lời khuyên khủng khiếp.
matt

4
Theo hiểu biết của tôi, không có gì xấu xảy ra khi thu hồi chứng chỉ .. Bạn có biết điều gì khác không?
Yitzchak

Đúng; anh ta có thể xuất khóa riêng từ máy tính 1 sang máy tính 2. Những gì bạn đang tư vấn sẽ khiến chứng chỉ phân phối ngừng hoạt động trên máy tính kia! Tại sao đó là một điều tốt?
matt

2
Tôi nghĩ rằng máy tính kia đã chết
Yitzchak

7

Thêm Chứng chỉ sản xuất mới tại đây , sau đó tải xuống tệp .cer và nhấp đúp vào nó để thêm vào Keychain.

Tất cả sẽ ổn bây giờ, đừng quên khởi động lại Xcode !!!


1
đối với tôi lỗi vẫn xuất hiện, phải nhấp vào dấu cộng để nó cập nhật và hoạt động
Zack

6

thu hồi tất cả chứng chỉ phân phối cho developer.apple.com và xác thực ứng dụng của bạn trong Xcode, sẽ có tùy chọn tạo chứng chỉ phân phối mới sau khi bạn có thể xuất khóa để sử dụng thêm.

Điều này làm việc cho tôi.


4

Đối với bất kỳ ai khác trải qua vấn đề này, các câu trả lời ở trên đều đúng nhưng nó vẫn có thể hơi khó hiểu, đặc biệt nếu bạn có nhiều chứng chỉ. Đây là những bước tôi đã thực hiện:

1) Đầu tiên, hãy ghi lại ngày trong chứng chỉ phân phối thực tế bị thiếu khóa riêng. Sau đó vào ứng dụng keychain trên máy tính kia và gõ IOS vào thanh tìm kiếm. Nó sẽ hiển thị tất cả các khóa Nhà phát triển và Phân phối IOS của bạn, vì vậy bạn phải tìm đúng khóa.

2) Nhấp vào mũi tên bên phải của mỗi mục nhập Phân phối IOS để hiển thị chứng chỉ và tìm chứng chỉ có ngày tháng chính xác và xuất chứng chỉ đó bằng cách nhấp chuột phải và chọn xuất.

3) Sau đó, chỉ cần nhập nó vào chuỗi khóa của máy tính mới và ít nhất với XCode 9.3, nó ngay lập tức nhận ra nó và sửa lỗi để bây giờ bạn có thể tải lên thành tích của mình.


Cảm ơn! Tôi sẽ thêm rằng trong chế độ xem mặc định, bạn không thấy mũi tên bên trái cho phép bạn mở rộng khóa để hiển thị chứng chỉ. Bạn cần chọn Phím trong bảng Danh mục. Chỉ sau đó, bạn mới có thể chọn chứng chỉ và xuất nó. Nếu bạn xuất khóa riêng tư thay vào đó, bạn sẽ gặp lỗi khi nhập khóa đó trên máy tính khác.
Clafou 20/09/18

4

Nếu bạn đang sử dụng chứng chỉ trong một máy tính mới hay không. Điều dễ dàng nhất để làm là thu hồi chứng chỉ trước đó liên quan đến dự án. Sau đó tải lại lên cửa hàng. Xcode sẽ tạo một cái mới.


4

Câu trả lời của mọi người ở đây về việc tạo ra chìa khóa từ máy tính là chính xác. Nhưng nếu mọi thứ vẫn không thành công, hãy thử khởi động lại Xcode sau khi cài đặt chứng chỉ


2

Trong trường hợp của tôi, Xcode không truy cập chứng chỉ từ chuỗi khóa, tôi đã làm theo các bước sau:

  1. xóa chứng chỉ khỏi chuỗi khóa.
  2. khởi động lại máy mac.
  3. tạo chứng chỉ mới.
  4. cài đặt chứng chỉ mới.
  5. thư mục xây dựng sạch.
  6. xây dựng dự án.
  7. lại thư mục xây dựng sạch sẽ.
  8. lưu trữ ngay bây giờ. Nó hoạt động Đó là nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.