การบังคับให้คำสั่ง `open 'เพื่อเปิดแอปที่ไม่ได้ลงชื่อ?


21

ฉันได้ตั้งค่าความปลอดภัยไว้เพื่ออนุญาตให้แอพที่ดาวน์โหลดจาก "Mac App Store และนักพัฒนาที่ระบุ" เมื่อฉันพยายามเปิดแอปที่ไม่ได้ลงชื่อ:

open xyz.app

ฉันเห็นสิ่งต่อไปนี้:

ไม่สามารถเปิดแอปได้

โดยปกติแล้วฉันคลิกขวาที่แอพและคลิก "เปิด" สิ่งนี้จะแสดงบทสนทนาที่คล้ายกัน แต่อันนี้รวมถึงปุ่ม - open "ประเภท:

ไม่สามารถเปิดแอปได้ด้วยปุ่มเปิด

มีวิธีการทำสิ่งนี้เพียงใช้openคำสั่ง - สิ่งที่ชอบ:

open --even-if-unsigned xyz.app

คำตอบ:


33
  1. สร้างและเพิ่มป้ายกำกับ Gatekeeper ให้กับแอป ('อนุมัติแล้ว' เป็นสตริงโดยพลการ)

    spctl --add --label "Approved" /path/to/xyz.app
  2. อนุมัติแอปทั้งหมดที่มีป้ายกำกับ

    spctl --enable --label "Approved"

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

  3. เปิดแอปตามปกติ

    open xyz.app

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ spctl (ความปลอดภัยของนโยบายระบบ SecAssessment) ให้ดูที่หน้า man


3
อ่านอกจากนี้ใหม่ในรายการสิ่งที่ฉันเพิ่งรู้วิธีการทำ GUI-ly และตอนนี้สามารถทำได้ในบรรทัดคำสั่ง! ขอบคุณ!
LSpice

19

คุณสามารถดึงกักกันออกจากแอพได้:

xattr -r -d com.apple.quarantine /path/to/xyz.app

คุณอาจต้องการ / จำเป็นต้องใช้sudoคำสั่งนั้นขึ้นอยู่กับการอนุญาต

จากนั้น Gatekeeper ไม่เกี่ยวข้องเลย แน่นอนว่านั่นหมายความว่าลายเซ็นต์ยังไม่ผ่านการตรวจสอบซึ่งจะลบคุณลักษณะด้านความปลอดภัยที่สำคัญออกไป


ฉันรักคำตอบนี้เช่นกัน มันน่าเสียดายที่ฉันเลือกได้เพียงอันเดียว!
bonh

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