Tôi tin rằng vấn đề là yêu cầu được chỉ định của chữ ký của bạn làm cho nó không chấp nhận chính nó là "cùng một ứng dụng" như chính nó (cho mục đích Keychain).
Một nguyên nhân phổ biến cho điều này — và tôi nghĩ đó là của bạn — đang sử dụng chứng chỉ ID ứng dụng dành cho nhà phát triển, không yêu cầu được chỉ định và không cài đặt chứng chỉ trung gian.
Một yêu cầu ID Nhà phát triển tiêu chuẩn trông như thế này:
designated => anchor apple generic and
identifier \"com.example.appName\" and
((cert leaf[field.1.2.840.113635.100.6.1.9] exists) or
(certificate 1[field.1.2.840.113635.100.6.2.6] exists and
certificate leaf[field.1.2.840.113635.100.6.1.13] exists and
certificate leaf[subject.OU] = \"1AZBYCXDW9V\"))
Nếu bạn muốn xây dựng này chính mình, bạn phải thay thế định danh với nhận dạng bó của bạn và subject.OU với giá trị từ cert của bạn. (Nếu bạn kích đúp vào nó trong Keychain Access, nó phải được liệt kê như là Organizational Unit). Sau đó bạn có thể thêm vào "Flags Mã Ký Khác":
--requirements "=designated ..." (the whole mess from above)
Tuy nhiên, một cách tốt hơn để làm điều này là để sử dụng Xcode 4.3.2 hoặc mới hơn. Nếu nó nhận ra rằng bạn đang sử dụng chứng chỉ ID ứng dụng dành cho nhà phát triển và có thể thấy chứng chỉ trung gian trong móc khóa, nó sẽ tạo điều này theo mặc định.
Ngoài ra, nếu bạn sử dụng Trình tổ chức lưu trữ trong Xcode để "Xuất ứng dụng đã ký ID nhà phát triển", thay vì chỉ sử dụng công cụ xây dựng từ thư mục đích của bạn, nó sẽ đảm bảo ký ứng dụng của bạn và bất kỳ dấu hiệu kèm theo nào khác nó sẽ kiểm tra mọi thứ được thiết lập đúng cách. (Thất bại khá khó hiểu - ví dụ: bước "Chọn nhà phát triển để ký bằng" của bạn có thể không có lựa chọn, với thông báo trong nhật ký hệ thống không có thông tin hữu ích - nhưng ít nhất thực tế là nó không thành công hoặc thu hẹp thành công Nếu có vấn đề gì.)
Dù bằng cách nào, bạn cần phải tải xuống và cài đặt (trên máy xây dựng) của bạn cert trung gian, được gọi là "Chứng chỉ nhà phát triển ID", từ liên kết "Chứng chỉ trung gian nhà phát triển" tại trang web Developer Certificate Utility .
Điều cuối cùng: Ngay cả khi điều này giải quyết được vấn đề của bạn đang chạy trên máy xây dựng, bạn thực sự muốn thử nghiệm trên phiên bản hệ điều hành cũ nhất mà bạn hỗ trợ. Ví dụ, các yêu cầu được biên soạn bởi mã hiệu của Lion đôi khi không thể được phân tích cú pháp trên Leopard, hoặc đôi khi ngay cả trên Snow Leopard. Nếu điều đó xảy ra ... hãy xem Gatekeeper vs. Leopard: an ongoing tale.
Bạn ký mã bằng ứng dụng của mình như thế nào? (Đó là một trong những lý do phổ biến nhất cho vấn đề này.) – abarnert
Tôi phải thiết lập mã đăng nhập trong cài đặt Xcode, Dưới ký hiệu mã Tôi đã chọn mã nhận dạng mã cho Ứng dụng ID nhà phát triển của mình –
Bạn đã chạy bản dựng trước đó trên cùng một máy?Tùy thuộc vào yêu cầu được chỉ định (tùy thuộc vào phiên bản Xcode 4 bạn sử dụng, nếu bạn chỉ gắn bó với mặc định), Keychain có thể xử lý phiên bản cũ của bạn và phiên bản mới của bạn dưới dạng ứng dụng khác nhau, nghĩa là bản dựng mới của bạn sẽ bật lên cảnh báo nếu bản dựng cũ đã lưu trữ bất cứ thứ gì trong Keychain. – abarnert