Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Apple

แก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS

บ่อยครั้งเรารันแอปพลิเคชันบนระบบที่ไม่ได้ลงนามอย่างถูกต้อง หรือในบางกรณี แค่เก่าเกินไป สำหรับผู้ใช้ Windows พวกเขามักได้รับคำเตือนพร้อมตัวเลือกให้รันแอปพลิเคชันต่อไป อย่างไรก็ตาม นั่นไม่ใช่กรณีของระบบ Mac เมื่อคุณพยายามรันแอปพลิเคชันที่ไม่ได้ลงนามดิจิทัลอย่างถูกต้อง หรือซอฟต์แวร์อื่นที่พัฒนาโดยชุมชนเพื่อวัตถุประสงค์ต่างๆ คุณอาจได้รับข้อความข้อผิดพลาด "Application.app is damaged and can't be opened"

แก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS

เหตุผลที่ข้อความข้อผิดพลาดนี้เกิดขึ้นชัดเจนมาก macOS มีฟีเจอร์ความปลอดภัยเฉพาะที่ตรวจสอบแอปพลิเคชันที่คุณต้องการรัน และจากนั้นขึ้นอยู่กับการลงนามโค้ด อนุญาตให้แอปพลิเคชันทำงาน อย่างไรก็ตาม ในบางสถานการณ์ เมื่อแอปที่คุณต้องการรันเป็นเวอร์ชันเก่าและไม่ได้ลงนาม คุณจะถูกโยนข้อความข้อผิดพลาดดังกล่าว เนื่องจาก Gatekeeper ไม่อนุญาตให้รัน แอปถูกจัดว่าไม่ปลอดภัย และแนะนำให้ลบ

ตอนนี้ นี่อาจช่วยได้ในกรณีส่วนใหญ่ แต่มีแอปที่เชื่อถือได้ และถูกตรวจจับว่าไม่ปลอดภัยโดยฟีเจอร์ความปลอดภัย Gatekeeper ในกรณีนี้ เพื่อเอาชนะปัญหา สิ่งที่คุณต้องทำคือเปลี่ยน System Preferences, รันแอปพลิเคชันด้วยคำสั่ง xattr, หรือปิด Gatekeeper ชั่วคราวทั้งหมด ด้วยที่กล่าวมา เรามาเข้าสู่วิธีต่างๆ ที่จะช่วยแก้ปัญหา

วิธีที่ 1: รันแอปจากหน้าต่าง Terminal

ตามที่พบ หากคุณรันแอปพลิเคชันเดียวกันจากหน้าต่าง terminal โดยใช้สิทธิ์ superuser มันจะรันโดยไม่มีปัญหา พื้นฐานแล้วสิทธิ์ superuser จะ override ฟีเจอร์ Gatekeeper และดังนั้นแอปพลิเคชันจะได้รับอนุญาตให้ทำงาน คุณควรทำเช่นนี้ก็ต่อเมื่อคุณเชื่อถือแอปพลิเคชันที่ต้องการรันอย่างสมบูรณ์ การทำเช่นนี้สำหรับแอปสุ่มที่คุณได้จากอินเทอร์เน็ตไม่ใช่ความคิดที่ดี ด้วยที่กล่าวมา ทำตามคำแนะนำด้านล่างเพื่อรันแอป:

  1. ก่อนอื่น เปิดหน้าต่าง Terminal โดยไปที่ Finder > Go > Utilitiesแก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  2. จากนั้น ค้นหาและเปิด Terminal
  3. เมื่อหน้าต่าง terminal พร้อม ใช้คำสั่งต่อไปนี้เพื่อรันแอปพลิเคชัน:
    sudo xattr -cr /path/to/application.app
    แก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  4. ทริกเล็กๆ นี่คือแค่ไปที่ไดเรกทอรีที่แอปอยู่ แล้วลากวางลง terminal นั้นจะวางพาธของแอปพลิเคชันอัตโนมัติ
  5. เมื่อทำแล้ว แค่พิมพ์ sudo xattr -cr หน้าพาธ แล้วกด Enter
  6. คุณจะถูกขอรหัสผ่านแอดมิน ใส่แล้วกด Enter อีกครั้ง
  7. แอปควรจะรันได้ตอนนี้

วิธีที่ 2: ปิดการตรวจสอบชั่วคราว

อีกวิธีหนึ่งที่คุณสามารถกำจัดข้อความข้อผิดพลาดคือปิดการตรวจสอบทั่วไปชั่วคราว ตามที่กล่าวไว้ข้างต้น Gatekeeper เป็นฟีเจอร์ความปลอดภัยใน macOS ที่ตรวจสอบแอปที่คุณต้องการรัน และปกป้องระบบจากมัลแวร์ ตามที่พบ ในบางกรณี มันจัดการกับแอปที่ไม่ได้ลงนามที่คุณดาวน์โหลดว่าไม่ปลอดภัย นั่นคือเหตุผลที่คุณได้รับข้อความข้อผิดพลาดดังกล่าว ดังนั้น วิธีแก้ง่ายคือแค่ปิดฟีเจอร์ชั่วคราวแล้วเปิดใหม่ นี่คือวิธีทำ:

  1. เพื่อปิด Gatekeeper คุณต้องเปิดหน้าต่าง Terminal บน Mac ก่อน
  2. คุณสามารถทำได้ผ่าน Finder > Go > Utilities หรือแค่ค้นหาใน Spotlightแก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  3. เมื่อ Terminal เปิดแล้ว ให้รันคำสั่งต่อไปนี้เพื่อปิดการตรวจสอบ:
    sudo spctl --master-disable
    แก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  4. ใส่รหัสผ่านแอดมินเพื่อดำเนินการให้เสร็จ
  5. เมื่อทำแล้ว ไปรันแอปพลิเคชัน
  6. สำคัญที่คุณต้องเปิดการตรวจสอบอีกครั้งหลังจากใช้แอปพลิเคชัน
  7. เพื่อทำเช่นนี้ ให้รันคำสั่งต่อไปนี้:
    sudo spctl --master-enable

วิธีที่ 3: อนุญาตแอปจากที่ใดก็ได้

คุณยังสามารถอนุญาตแอปจากที่ใดก็ได้ให้รันโดยไม่มีปัญหาจาก macOS System Preferences นี่คือที่ตั้งค่า Gatekeeper และคุณแค่ต้องแก้ไขเพื่ออนุญาตให้แอปทั้งหมดทำงาน ทำตามขั้นตอนด้านล่าง:

  1. ก่อนอื่น เปิดหน้าต่าง System Preferences บน Mac
  2. จากนั้น บนหน้าจอ System Preferences ไปที่ Security & Privacy
  3. บนแท็บ General ของ Security & Privacy คลิกไอคอนล็อกเพื่อปลดล็อกตัวเลือกบางส่วนแก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  4. คุณจะถูกขอรหัสผ่านแอดมิน ใส่แล้วกด Enter
  5. จากนั้น ภายใต้ "Allow applications downloaded from" เลือกตัวเลือก Anywhereแก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  6. สุดท้าย คลิกไอคอนล็อกอีกครั้งเพื่อบันทึกการเปลี่ยนแปลง
  7. เมื่อทำแล้ว รันแอปพลิเคชัน
  8. ตรวจสอบให้แน่ใจว่าเปลี่ยนการตั้งค่ากลับเป็นค่าเริ่มต้นเมื่อเปิดแอปพลิเคชันแล้ว คุณจะไม่ต้องการในอนาคตสำหรับแอปเดียวกัน

วิธีที่ 4: ให้สิทธิ์

ในบางสถานการณ์ ปัญหาอาจปรากฏเนื่องจากข้อจำกัดสิทธิ์ หากคุณพยายามรันไฟล์ที่ไม่มีสิทธิ์ execute คุณน่าจะได้รับข้อความข้อผิดพลาดดังกล่าว ในกรณีนี้ สิ่งที่คุณต้องทำคือให้สิทธิ์ที่จำเป็น และลองรันอีกครั้ง ทำตามขั้นตอนด้านล่าง:

  1. ก่อนอื่น เปิดหน้าต่าง Terminal บน Mac พิมพ์ sudo chmod +x ในหน้าต่าง Terminal แต่อย่ากด Enter
  2. จากนั้น ไปที่แอปพลิเคชัน คลิกขวาแล้วเลือก Show Package Contentsแก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  3. ที่นี่ ไปที่ Contents > MacOS
  4. จากนั้น หาไฟล์ที่มีชื่อแอปพลิเคชันและไม่มีส่วนขยาย หากมีไฟล์เดียว แค่ลากวางลง terminalแก้ไข: แอปเสียหาย ไม่สามารถเปิดได้ บน MacOS
  5. ตอนนี้ คำสั่งควรจะเป็นแบบนี้:
    sudo chmod +x /path/to/application
  6. สุดท้าย กด Enter เพื่อรันคำสั่ง ใส่รหัสผ่านแอดมิน
  7. จากนั้น รันแอปพลิเคชัน และดูว่านั้นแก้ปัญหาหรือไม่