ไม่สามารถเปิดแอปได้เนื่องจากมาจากผู้พัฒนาที่ไม่ระบุชื่อ


9

คำถาม:

โปรดทราบก่อนที่จะอ่านสิ่งนี้ว่า: "บอกให้พวกเขาไปที่System preferences > Security & privacyและallow 3rd party applications to runไม่ใช่วิธีแก้ปัญหาที่ยอมรับได้สำหรับปัญหานี้

ฉันได้สร้าง.appสิ่งนั้นแล้วซึ่งลงชื่อด้วยใบรับรองนักพัฒนา Mac ที่ถูกต้อง แต่การดาวน์โหลดจากอินเทอร์เน็ตและการใช้งานยังคงมีข้อความแจ้งเตือนเรื่องความปลอดภัย:

ไม่สามารถเปิดแอปได้เนื่องจากมาจากผู้พัฒนาที่ไม่ระบุชื่อ

นี่คือcodesign -vvvเทอร์มินัลดัมพ์สำหรับ.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

ฉันไม่เข้าใจว่าทำไมสิ่งนี้ถึงไม่ผ่าน Gatekeeper มีบางอย่างขาดหายไปหรือไม่? Apple ต้องการอะไรเพิ่มเติมหรือไม่


อัปเดต 1:

@TheDarkKnight.appได้ชี้ให้เห็นว่าฉันใช้ใบรับรองที่ไม่ถูกต้องที่จะลงนาม ดูเหมือนว่าพวกเขาจะถูกต้องดังนั้นฉันจึงไปสร้างใหม่Developer ID Application certificateแต่เห็นได้ชัดเพราะฉันไม่ได้เป็น 'ตัวแทน' ในบัญชีกลุ่มดังนั้นตอนนี้ฉันต้องรอจนกว่า 'ตัวแทน' สร้างหนึ่งสำหรับฉัน - ดูเหมือนย้อนหลังจะมี ไม่มีวิธีอื่นในการรอ 'ตัวแทน' เพื่อทำสิ่งนี้ให้ฉัน

(ใน Xcode) หากปุ่มตัวเลือก "รหัสนักพัฒนาซอฟต์แวร์" เป็นสีเทาคุณอาจมีบัญชีกลุ่ม บัญชีประเภทนี้อนุญาตเฉพาะบทบาท "ตัวแทน" เพื่อสร้างรหัสผู้พัฒนา ติดต่อผู้ที่สร้างบัญชีนักพัฒนา Apple กลุ่มของคุณถ้าคุณติดอยู่ที่นี่

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


อัปเดต 2:

ดังนั้นฉันจนได้ใบรับรองใหม่ของฉันในวันนี้อีกครั้งได้ลงนามใน.appดาวน์โหลดได้จากวิ่งเซิร์ฟเวอร์และยังคงมีข้อผิดพลาด ผู้มีอำนาจดูเหมือนว่าจะถูกต้องในขณะนี้:

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

ฉันแค่ลงนามเท่านั้น.appยังมีอะไรอีกบ้างที่ฉันต้องทำเพื่อทำงานนี้? มีช่วงเวลาที่ฉันต้องรอก่อนที่จะทำงานได้หรือไม่


อัปเดต 3:

ขณะนี้เกือบ 1 เดือนนับจากอัปเดต 2 ปัญหานี้ยังคงเป็นปกติและได้รับรางวัลมากมาย


1
แอปพลิเคชันฝังอยู่ในอิมเมจของดิสก์ที่เซ็นชื่อDMGแล้วเมื่อดาวน์โหลด คุณกำลังทดสอบ macOS รุ่นใด
Graham Miln

@ GrahamMiln ฉันจะต้องกลับไปหาคุณในเวอร์ชั่น macOS ฉันไม่ได้เซ็นชื่อ.dmgคุณต้องเซ็นชื่อด้วยเช่นกัน? ฉันใช้successsoftware.net/2012/08/30/…เป็นข้อมูลอ้างอิงและพวกเขาระบุว่า.dmgไม่จำเป็นต้องมีการลงชื่อเพิ่มเติมดังนั้นฉันจึงไม่ได้ลงนาม
Zze


ลองทดสอบลายเซ็นด้วย:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln

@ GrahamMiln ขอบคุณสำหรับความคิดเห็นฉันจะติดต่อกลับในตอนเช้า!
Zze

คำตอบ:


7

พูดอย่างถี่ถ้วนเมื่อกระจายแอพนอก Mac App Store คุณต้อง:

  1. ตั้งค่าการเซ็นชื่อเป็นรหัสผู้พัฒนา
  2. สร้างใบรับรอง ID นักพัฒนาของคุณ
  3. สร้างแอปถาวรของคุณ
  4. ตรวจสอบแอปของคุณ
  5. ส่งออกแอพที่ลงชื่อ ID นักพัฒนาซอฟต์แวร์
  6. ลงนามในแพ็คเกจการติดตั้ง (ไม่สามารถใช้ได้ในกรณีของคุณ)
  7. ทดสอบพฤติกรรมของแอปโดยเปิดใช้ Gatekeeper และปิดการใช้งาน Gatekeeper อีกครั้ง

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

ดังนั้นเรามาเริ่มต้นด้วยการตรวจสอบอีกครั้งว่าคุณตรวจสอบแอปของคุณอย่างไร

ตรวจสอบแอปของคุณ

ในการตรวจสอบแอพที่ลงชื่อ ID นักพัฒนาซอฟต์แวร์ให้ทำตามขั้นตอนเหล่านี้:

  1. ใน Xcode ไปที่ผลิตภัณฑ์> เก็บถาวร
  2. หน้าต่างผู้จัดเก็บถาวรจะปรากฏขึ้น
  3. เลือกที่เก็บถาวรสำหรับแอพที่เป็นปัญหา
  4. คลิกที่Validateปุ่ม
  5. กล่องโต้ตอบปรากฏขึ้นเพื่อขอให้คุณเลือกวิธีการตรวจสอบ
  6. เลือกตรวจสอบนักพัฒนา ID-ลงนามในการประยุกต์ใช้ตัวเลือก
  7. คลิกที่ Next
  8. ในหน้าต่างถัดไปเลือกทีมจากเมนูป๊อปอัพ
  9. คลิกที่ Choose
  10. คลิกที่Validateปุ่ม

สิ่งนี้จะระบุปัญหาการตรวจสอบใด ๆ หากพบสิ่งใดสิ่งนี้จะเป็นปัญหาของคุณ (หรืออย่างน้อยก็ส่วนหนึ่ง) ดังนั้นคุณจะต้องแก้ไขปัญหานี้

หากไม่พบปัญหาให้ดำเนินการด้านล่าง

ส่งออกแอพที่ลงทะเบียน ID ของนักพัฒนาซอฟต์แวร์

  1. ยังคงอยู่ในหน้าต่างผู้จัดเก็บถาวรให้เลือกไฟล์เก็บถาวรสำหรับแอพที่เป็นปัญหา
  2. คลิกที่Exportปุ่ม
  3. กล่องโต้ตอบปรากฏขึ้นเพื่อขอให้คุณเลือกวิธีการส่งออก
  4. เลือกส่งออกนักพัฒนา ID-ลงนามในการประยุกต์ใช้ตัวเลือก
  5. คลิกที่ Next
  6. ในหน้าต่างถัดไปเลือกทีมจากเมนูป๊อปอัพ
  7. คลิกที่ Choose
  8. คลิกที่Exportปุ่ม

เมื่อแอปของคุณถูกส่งออกคุณควรทดสอบด้วยการเปิดใช้งาน Gatekeeper และปิดการใช้งาน Gatekeeper อีกครั้ง


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