Tại sao Apple chỉ cho phép các Khung tĩnh trên iOS?


11

Rõ ràng Apple có khả năng tạo các thư viện được tải động (được gọi là khung) cho iOS, khi họ gửi một số với XCode (chẳng hạn như UIKit). Các nhà phát triển ứng dụng chỉ có khả năng tạo thư viện tĩnh hoặc tốt nhất là lừa Xcode nghĩ rằng nó đang tải một khung khi nó thực sự tải một thư viện tĩnh, điều này được gọi là tạo một khung giả, một số tiện lợi kéo và thả, nhưng không có lợi ích tải động.

Lý do của Apple để giữ các khung động từ các nhà phát triển ứng dụng là gì? Có vẻ như nó sẽ dễ dàng sử dụng các thư viện bên ngoài một cách đáng kể, vì các nhà phát triển sẽ không phải dựa vào các cờ liên kết khó tính hoặc chuỗi phụ thuộc thư viện nguồn mở.

Tôi thấy một lý do phổ biến là bảo mật. Tại sao sau đó Apple cho phép nó trên OSX mà không phải iOS? Có phải bảo mật cũng là một yêu cầu không?

EDIT: Điều này không còn phù hợp kể từ iOS 8. Apple đã thêm hỗ trợ cho các khung động.

Câu trả lời:


17

Một trong những tiêu chí của Apple để chấp nhận một chương trình là liệu nó có thực hiện các cuộc gọi đến API của Apple không được hỗ trợ (hoặc các nội dung xấu khác) hay không. Bằng cách yêu cầu liên kết tĩnh, họ có thể chứng minh rằng phần mềm không thực hiện các cuộc gọi như vậy. Cho phép liên kết động sẽ cho phép bất kỳ loại hành vi nào được thêm vào sau đó, điều này làm mất hiệu lực quá trình phê duyệt của họ.

Apple cho phép liên kết động trong OSX bởi vì, Macintosh là máy tính thật chứ không phải thiết bị máy tính bảng và người dùng máy tính thật mong muốn chúng có thể được lập trình theo kiểu này. Thị trường máy tính bảng và điện thoại khá khác biệt so với máy tính để bàn và máy tính xách tay. Máy tính là thiết bị sản xuất; Người dùng mong đợi có thể sản xuất các sản phẩm trên đó, bao gồm viết các chương trình làm những gì họ muốn, họ muốn như thế nào. Điều này không bao giờ là kỳ vọng của các thiết bị máy tính bảng, là thiết bị tiêu thụ.

Toàn bộ quan điểm của máy tính bảng và Apple Store là tạo ra một môi trường khép kín để bảo vệ người tiêu dùng khỏi virus dành cho người đi bộ và những thứ tương tự (tốt, và cho phép Apple thu thập 30% tổng doanh số phần mềm được thực hiện thông qua cửa hàng của họ).


7
Lưu ý: Apple hiện đã cho phép các khung động trên iOS kể từ iOS 8.
Joel Fischer

@Robert Harvey cảm ơn vì lời giải thích, nhưng từ iOS 8, họ đã mở để sử dụng các khung động. nó sẽ cho phép tin tặc ảnh hưởng đến iOS / Ứng dụng? Bạn có biết gì không, làm thế nào Apple tạo ra các khung động như mở cho các nhà phát triển, nhưng ngăn chặn tin tặc khỏi nó. cảm ơn!
Vijay-Apple-Dev.blogspot.com

8

Lý do là bảo mật như được đề cập trong câu hỏi Stack Overflow này :

Lý do là bảo mật: vì một thư viện động có thể được tải và tải trong thời gian chạy, bạn có thể tải xuống mã thực thi bổ sung và tải nó (nghĩ là trình cắm). Điều này có thể bị xâm nhập bởi một tin tặc và sau đó có mã độc thực thi trên điện thoại của bạn là một điều rất tồi tệ. Nó cũng có thể thêm các tính năng chưa được phê duyệt vào một ứng dụng được phê duyệt. Nói tóm lại: trong môi trường này, Apple coi liên kết động là một hộp Pandoras phải được kiểm soát chặt chẽ, nếu không nó có thể ảnh hưởng đến bảo mật và tôi đồng ý rằng nó có ý nghĩa trên điện thoại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.