เหตุใด Apple จึงอนุญาตเฉพาะสำหรับ Static Frameworks บน iOS


11

เห็นได้ชัดว่า Apple มีความสามารถในการสร้างไลบรารี่ที่โหลดแบบไดนามิก (เรียกว่าเฟรมเวิร์ก) สำหรับ iOS เนื่องจากพวกมันมาพร้อมกับ XCode (เช่น UIKit) นักพัฒนาแอปมีความสามารถในการสร้างห้องสมุดแบบคงที่หรืออย่างดีที่สุดหลอก Xcode ให้คิดว่ามันกำลังโหลดเฟรมเวิร์กเมื่อมันโหลดไลบรารีแบบสแตติกจริง ๆ แล้วสิ่งนี้เรียกว่าการสร้างเฟรมปลอม แต่ไม่มีประโยชน์ในการโหลดแบบไดนามิก

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

ฉันเห็นเหตุผลทั่วไปคือความปลอดภัย เหตุใด Apple จึงอนุญาตบน OSX และไม่ใช่ iOS การรักษาความปลอดภัยไม่ใช่ข้อกำหนดที่มีเช่นกัน?

แก้ไข: นี่ไม่เกี่ยวข้องกับ iOS 8 อีกต่อไป Apple ได้เพิ่มการรองรับเฟรมเวิร์กแบบไดนามิก

คำตอบ:


17

หนึ่งในเกณฑ์ของ Apple สำหรับการยอมรับโปรแกรมคือการโทรไปยัง Apple API ที่ไม่รองรับ (หรือสิ่งอื่น ๆ ที่ไม่สนับสนุน) หรือไม่ พวกเขาสามารถพิสูจน์ได้ว่าซอฟต์แวร์ไม่ได้ทำการโทรออกดังกล่าว การอนุญาตการเชื่อมโยงแบบไดนามิกจะอนุญาตให้มีการเพิ่มลักษณะการทำงานในภายหลังซึ่งจะทำให้กระบวนการอนุมัติของพวกเขาเป็นโมฆะ

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

จุดรวมของแท็บเล็ตและ Apple Store คือการสร้างสภาพแวดล้อมที่ปิดเพื่อปกป้องผู้บริโภคจากไวรัสคนเดินเท้าและสิ่งอื่น ๆ ที่คล้ายคลึงกัน


7
หมายเหตุ: ขณะนี้ Apple อนุญาตให้ใช้เฟรมเวิร์กแบบไดนามิกบน iOS ตั้งแต่ iOS 8
Joel Fischer

@ Robert Harvey ขอบคุณสำหรับคำอธิบาย แต่จาก iOS 8 พวกเขาเปิดให้ใช้เฟรมเวิร์กแบบไดนามิก จะอนุญาตให้แฮกเกอร์ส่งผลกระทบต่อ iOS / แอพไหม คุณมีความคิดอย่างไร Apple สร้างเฟรมเวิร์กแบบไดนามิกให้กับนักพัฒนา แต่ป้องกันแฮ็กเกอร์ได้อย่างไร ขอบคุณ!
Vijay-Apple-Dev.blogspot.com

8

เหตุผลคือความปลอดภัยตามที่กล่าวไว้ในคำถาม Stack Overflow :

เหตุผลคือความปลอดภัย: เนื่องจากไลบรารีแบบไดนามิกสามารถโหลดและยกเลิกการโหลดในขณะทำงานคุณสามารถดาวน์โหลดรหัสปฏิบัติการเพิ่มเติมและโหลด (คิดว่าปลั๊กอิน) สิ่งนี้อาจทำให้แฮ็กเกอร์ถูกโจมตีและการมีรหัสที่เป็นอันตรายซึ่งดำเนินการกับโทรศัพท์ของคุณนั้นเป็นสิ่งที่เลวร้ายมาก นอกจากนี้ยังทำให้สามารถเพิ่มคุณสมบัติที่ไม่ได้รับการอนุมัติให้กับแอพที่ได้รับอนุมัติ กล่าวโดยย่อ: ในสภาพแวดล้อมเช่นนี้ Apple ถือว่าการเชื่อมโยงแบบไดนามิกเป็นกล่อง Pandoras ที่ต้องมีการควบคุมอย่างเข้มงวดมิฉะนั้นจะสามารถลดความปลอดภัยลงได้

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