TL; DR ขึ้นอยู่กับผู้พัฒนาที่จะเลือกว่าส่วนใดของแอพที่ลงชื่อและไม่ว่าการแก้ไขด้วยผลงานชิ้นนั้นจะส่งผลให้เกิดการกระทำใด ๆ เมื่อเปิดตัวแอพ คุณต้องใช้การทดลองและข้อผิดพลาดในการพิจารณาเป็นรายแอป
ส่วนใหญ่ขึ้นอยู่กับผู้พัฒนาที่จะตัดสินใจว่าส่วนประกอบใดในชุดแอปพลิเคชันของพวกเขาจะถูกแสดงในตราประทับที่ได้รับการลงนามก่อนที่พวกเขาจะส่งใบสมัครของพวกเขา สิ่งใดก็ตามในตราประทับที่มีการพิสูจน์การงัดแงะได้อย่างมีประสิทธิภาพเนื่องจากส่วนใหญ่ไม่สามารถแก้ไขสิ่งเหล่านี้ได้โดยไม่ต้องเปลี่ยนลายเซ็นแฮช แต่นั่นไม่ได้หมายความว่าคุณไม่สามารถเข้าไปยุ่งกับพวกเขาได้
คู่มือนักพัฒนา Appleได้กล่าวถึงสิ่งที่คุณควรเซ็น:
คุณควรลงชื่อทุกไฟล์ที่ปฏิบัติการได้ในผลิตภัณฑ์ของคุณรวมถึงแอพพลิเคชั่น, เครื่องมือ, เครื่องมือช่วยเหลือที่ซ่อนอยู่, ยูทิลิตี้และอื่น ๆ การเซ็นชื่อบันเดิลของแอปพลิเคชันนั้นครอบคลุมถึงทรัพยากร แต่ไม่รวมถึงคอมโพเนนต์ย่อยเช่นเครื่องมือและกลุ่มย่อย แต่ละรายการจะต้องลงชื่อด้วยตนเอง
หากแอปพลิเคชันของคุณประกอบด้วยส่วน UI ขนาดใหญ่ที่มีเครื่องมือช่วยเหลือตัวน้อยหนึ่งตัวหรือมากกว่าที่พยายามนำเสนอหน้าเดียวให้กับผู้ใช้คุณสามารถทำให้พวกเขาไม่สามารถแยกแยะการเซ็นชื่อรหัสได้ (คุณสามารถทำได้โดยตรวจสอบให้แน่ใจว่าพวกเขาทั้งหมดมีค่า CFBundleIdentifier เดียวกันใน Info.plist หรือโดยใช้ตัวเลือก -i ในคำสั่ง codesign เพื่อกำหนดรหัสเดียวกัน) ในกรณีนั้นองค์ประกอบโปรแกรมทั้งหมดของคุณมี เข้าถึงรายการพวงกุญแจเดียวกันและตรวจสอบเป็นโปรแกรมเดียวกัน ทำสิ่งนี้เฉพาะเมื่อโปรแกรมที่เกี่ยวข้องมีความหมายอย่างแท้จริงในการสร้างเอนทิตีเดียวโดยไม่มีการแยกความแตกต่าง
universal binary (บันเดิลหรือเครื่องมือ) จะมีลายเซ็นของแต่ละบุคคลที่ใช้กับแต่ละองค์ประกอบของสถาปัตยกรรมโดยอัตโนมัติ สิ่งเหล่านี้มีความเป็นอิสระและมักจะมีเพียงสถาปัตยกรรมดั้งเดิมในระบบของผู้ใช้ปลายทางที่ได้รับการตรวจสอบแล้ว
ในกรณีของแพ็คเกจตัวติดตั้ง (ชุด. pkg และ. mp4) ทุกอย่างจะถูกลงชื่อโดยปริยาย: ไฟล์เก็บถาวร CPIO ที่ประกอบด้วยส่วนบรรจุข้อมูล, ชุดเก็บถาวร CPIO ที่ประกอบด้วยสคริปต์ติดตั้งและรายการวัสดุ (BOM) แต่ละรายการจะมีแฮชที่บันทึกไว้ใน XAR ส่วนหัวและส่วนหัวนั้นจะถูกเซ็นชื่อ ดังนั้นหากคุณแก้ไขสคริปต์การติดตั้ง (ตัวอย่าง) หลังจากแพ็คเกจได้ลงนามแล้วลายเซ็นจะไม่ถูกต้อง
คุณอาจต้องการลงชื่อปลั๊กอินและไลบรารีของคุณ แม้ว่าจะไม่จำเป็นต้องใช้ในปัจจุบัน แต่จะมีในอนาคตและไม่มีข้อเสียในการมีลายเซ็นบนส่วนประกอบเหล่านี้
Codeign อาจเพิ่มลงในไฟล์เรียกทำงาน Mach-O ของคุณเพิ่มแอตทริบิวต์เพิ่มเติมหรือสร้างไฟล์ใหม่ในไดเรกทอรีเนื้อหาของบันเดิลของคุณ ไม่มีไฟล์อื่นของคุณถูกแก้ไข
นอกจากนี้จากที่นี่มันไม่จำเป็นต้องเป็นจริงว่ามีลายเซ็นไม่ถูกต้องสำหรับการประยุกต์ใช้วิธีการที่มันจะล้มเหลวในการเปิดตัว หน้าพูดว่า:
มันขึ้นอยู่กับระบบหรือโปรแกรมที่เปิดตัวหรือโหลดรหัสที่เซ็นชื่อเพื่อตัดสินใจว่าจะตรวจสอบลายเซ็นหรือไม่และหากเป็นเช่นนั้นเพื่อกำหนดวิธีการประเมินผลลัพธ์ของการตรวจสอบนั้น
แอปพลิเคชันอาจเลือกที่จะอนุญาตการแก้ไข
ทางออกที่ดีที่สุดของคุณคือวิธีการทดลองและข้อผิดพลาดกับแอปพลิเคชันที่คุณพยายามแก้ไข มันอาจใช้งานได้ ไม่มีคำตอบที่เป็นจริงที่สามารถให้ได้
หากแอปได้รับการลงนามคุณสามารถค้นหาContents/CodeResources
ไฟล์หรือ Contents/_CodeSignature/CodeResources
ไฟล์ในชุดรวม ไฟล์นี้แสดงรายการส่วนประกอบที่ลงนามทั้งหมดและค่าแฮชที่คาดไว้ในบันเดิล เป็นจุดเริ่มต้นที่ดีในการทำความเข้าใจว่าแอปพลิเคชันชิ้นใดที่นักพัฒนาเห็นว่าสำคัญพอที่จะคอยดูการเปลี่ยนแปลง