Không thể mở ứng dụng vì nó là của một nhà phát triển không xác định


9

Câu hỏi:

Xin lưu ý trước khi đọc điều này rằng: "Hãy bảo họ đi đến System preferences > Security & privacyallow 3rd party applications to runkhông phải là một giải pháp chấp nhận được cho vấn đề này.

Tôi đã tạo một .appĐiều đó đã được ký với chứng chỉ Nhà phát triển Mac hợp lệ. Tuy nhiên, việc tải xuống từ internet và chạy vẫn đưa ra lời nhắc bảo mật:

Không thể mở ứng dụng vì nó là của một nhà phát triển không xác định

Đây là codesign -vvvbãi chứa thiết bị đầu cuối cho .app:

Executable=/Users/me/Desktop/ADRA.app/Contents/MacOS/ADRA
Identifier=unity.Company.ADRA NSW 2016
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178145 flags=0x0(none) hashes=5561+3 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=79ecf88721d6387749c1f6b10355c3683ef20eb2
CandidateCDHash sha256=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Hash choices=sha1,sha256
CDHash=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Signature size=4739
Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=20 Apr 2017, 2:46:12 PM
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=224

Tôi không hiểu tại sao điều này không vượt qua Gatekeeper? Có thiếu thứ gì không? Apple có yêu cầu gì thêm không?


Cập nhật 1:

@TheDarkKnight đã gợi ý rằng tôi đang sử dụng chứng chỉ không chính xác để ký .app. Có vẻ như chúng là chính xác, vì vậy tôi đã tạo một tài khoản mới Developer ID Application certificatenhưng dường như vì tôi không phải là 'Đại lý' trong tài khoản nhóm, vì vậy bây giờ tôi phải đợi cho đến khi 'Đại lý' tạo một tài khoản cho tôi - dường như ngược lại, ở đó không còn cách nào khác để chờ 'Đại lý' làm điều này cho tôi?

(trong Xcode) Nếu nút radio "ID nhà phát triển" bị mờ đi, bạn có thể có tài khoản nhóm. Các loại tài khoản này chỉ cho phép vai trò "Tác nhân" tạo ID nhà phát triển. Liên hệ với người đã tạo nhóm Tài khoản nhà phát triển Apple của bạn nếu bạn gặp khó khăn tại đây.

https://developer.mozilla.org/en-US/docs/Mozilla/Signing_Mozilla_apps_for_Mac_OS_X


Cập nhật 2:

Vì vậy, cuối cùng tôi đã nhận được chứng chỉ mới của mình ngày hôm nay, ký lại .app, tải xuống từ máy chủ đã chạy và VẪN GỬI THÔNG ĐIỆP LRI . Chính quyền dường như là chính xác bây giờ:

Executable=/Users/me/Downloads/ADRA.app/Contents/MacOS/ADRA
Identifier=com.company.adra
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178133 flags=0x0(none) hashes=5561+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
OSPlatform=36
OSSDKVersion=657408
OSVersionMin=656896
Hash type=sha256 size=32
CandidateCDHash sha1=90d2a54162d6d018bf4f7602d7707c8e8e522fc6
CandidateCDHash sha256=dadfe5203d1367ea776f9501025dbd4ce751ee30
Hash choices=sha1,sha256
Page size=4096
CDHash=dadfe5203d1367ea776f9501025dbd4ce751ee30
Signature size=8930
Authority=Developer ID Application: Company Pty Ltd (NH73TNDB28)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=10 May 2017, 3:36:51 pm
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=184

Tôi chỉ ký vào .appđó là có gì khác mà tôi phải làm để làm cho công việc này? Có một khoảng thời gian tôi phải đợi trước khi điều này sẽ làm việc?


Cập nhật 3:

Bây giờ đã gần 1 tháng kể từ Bản cập nhật 2, vấn đề này vẫn còn tồn tại và do đó đã đặt tiền thưởng.


1
Là ứng dụng được nhúng trong một hình ảnh đĩa ký mã DMG, khi được tải xuống? Phiên bản macOS nào bạn đang thử nghiệm?
Graham Miln

@GrahamMiln Tôi sẽ phải liên lạc lại với bạn trên phiên bản macOS. Tôi đã không ký .dmg, bạn có phải ký như vậy không? Tôi đã sử dụng thành công phần mềm.net / 2012/08/30 / năm làm tài liệu tham khảo và họ nói rằng .dmgkhông yêu cầu ký thêm nên tôi đã không ký.
Zze


Hãy thử kiểm tra chữ ký với:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln

@GrahamMiln Cảm ơn các ý kiến, tôi sẽ liên lạc lại với bạn vào buổi sáng!
Zze

Câu trả lời:


7

Nói rộng hơn, khi phân phối ứng dụng bên ngoài Mac App Store, bạn cần phải:

  1. Đặt danh tính ký tên thành ID nhà phát triển
  2. Tạo chứng chỉ ID nhà phát triển của bạn
  3. Tạo ứng dụng của bạn Lưu trữ
  4. Xác thực ứng dụng của bạn
  5. Xuất ứng dụng ID nhà phát triển đã ký
  6. Ký gói cài đặt (không áp dụng trong trường hợp của bạn)
  7. Kiểm tra hành vi của ứng dụng với Gatekeeper được bật và một lần nữa với Gatekeeper bị vô hiệu hóa

Khắc phục sự cố như thế này có thể khó khăn vì dễ dàng đưa ra các giả định về việc OP (trong trường hợp này bạn biết) bao nhiêu, v.v. Từ khi đọc câu hỏi của bạn, tôi sẽ giả sử ba bước đầu tiên được quan tâm.

Vì vậy, hãy bắt đầu bằng cách kiểm tra lại cách bạn xác nhận ứng dụng của mình.

Xác thực ứng dụng của bạn

Để xác thực ứng dụng có chữ ký ID nhà phát triển, hãy làm theo các bước sau:

  1. Trong Xcode, đi đến Sản phẩm> Lưu trữ
  2. Cửa sổ tổ chức Lưu trữ sẽ xuất hiện
  3. Chọn kho lưu trữ cho ứng dụng được đề cập
  4. Bấm vào Validatenút
  5. Một hộp thoại xuất hiện yêu cầu bạn chọn phương thức xác thực
  6. Chọn Validate một ID ký Application Developer tùy chọn
  7. Bấm vào Next
  8. Trong cửa sổ tiếp theo, chọn một nhóm từ menu bật lên
  9. Bấm vào Choose
  10. Nhấn vào Validatenút

Điều này sẽ xác định bất kỳ vấn đề xác nhận. Nếu bất kỳ được tìm thấy, đây sẽ là vấn đề của bạn (hoặc ít nhất là một phần của nó), vì vậy bạn sẽ cần phải giải quyết vấn đề này.

Nếu không có vấn đề được tìm thấy, sau đó tiến hành dưới đây.

Xuất ứng dụng có chữ ký ID nhà phát triển

  1. Vẫn trong cửa sổ Trình tổ chức lưu trữ, chọn kho lưu trữ cho ứng dụng được đề cập
  2. Bấm vào Exportnút
  3. Một hộp thoại xuất hiện yêu cầu bạn chọn một phương thức để xuất
  4. Chọn Export một ID ký Application Developer tùy chọn
  5. Bấm vào Next
  6. Trong cửa sổ tiếp theo, chọn một nhóm từ menu bật lên
  7. Bấm vào Choose
  8. Nhấn vào Exportnút

Khi ứng dụng của bạn được xuất, bạn nên kiểm tra với Gatekeeper được bật và một lần nữa với Gatekeeper bị vô hiệu hóa.


Cảm ơn câu trả lời, tôi sẽ cố gắng điều này càng sớm càng tốt.
Zze
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.