Apple neden iOS'ta yalnızca Statik Çerçevelere izin veriyor?


11

Açıkça Apple, XCode (UIKit gibi) ile birkaç tane gönderdiklerinden, iOS için dinamik olarak yüklenmiş kütüphaneler (çerçeveler olarak bilinir) oluşturma yeteneğine sahiptir. Uygulama geliştiricileri yalnızca statik kütüphaneler oluşturma yeteneğine sahiptir veya en iyisi, aslında statik bir kütüphane yüklerken bir çerçeve yüklediğini düşünmek için Xcode'u kandırır, bu sahte bir çerçeve, sürükle ve bırak kolaylığı, ancak dinamik yükleme avantajlarından hiçbiri kullanılmaz.

Apple'ın uygulama geliştiricilerinden dinamik çerçeveler tutmasının nedeni nedir? Geliştiricilerin titiz bağlayıcı bayraklarına veya açık kaynaklı kütüphane bağımlılık zincirlerine güvenmesi gerekmediğinden, harici kütüphaneleri kullanmayı oldukça kolaylaştıracak gibi görünüyor.

Ortak bir neden görüyorum güvenlik. Apple neden iOS'a değil OSX'e izin veriyor? Güvenlik de orada bir gereklilik değil mi?

EDIT: Bu artık iOS 8'den itibaren geçerli değil. Apple dinamik çerçeveler için destek ekledi.

Yanıtlar:


17

Apple'ın bir programı kabul etme ölçütlerinden biri, desteklenmeyen Apple API'lerine (veya diğer kötü şeylere) çağrı yapıp yapmadığıdır. Statik bağlantı gerektirerek, yazılımın bu tür çağrılar yapmadığını kanıtlayabilirler. Dinamik bağlantıya izin vermek, daha sonra her türlü davranışın eklenmesine izin verir ve bu da onay süreçlerini hemen hemen geçersiz kılar.

Apple, OSX'te dinamik bağlantıya izin verir, çünkü Macintosh'lar tablet cihazlar değil gerçek bilgisayarlardır ve gerçek bilgisayar kullanıcıları bu şekilde programlanabilir olmasını bekler. Tablet ve telefon pazarı, masaüstü ve dizüstü bilgisayarlardan oldukça farklıdır. Bilgisayarlar üretim cihazlarıdır; kullanıcılar istedikleri şeyi, istedikleri şeyi yapan programlar yazmak da dahil olmak üzere üzerlerinde ürün üretmeyi beklerler. Bu hiçbir zaman tüketim cihazı olan tablet cihazların beklentisi değildi .

Tabletlerin ve Apple Store'un tüm amacı, tüketicileri yaya virüslerinden ve benzerlerinden korumak için kapalı bir ortam yaratmaktı (ve Apple'ın mağazalarından yapılan tüm yazılım satışlarının% 30'unu toplamasına izin vermek).


7
Not: Apple, iOS 8'den itibaren iOS'ta dinamik çerçevelere izin verdi
Joel Fischer

@Robert Harvey açıklama için teşekkürler, ancak iOS 8'den dinamik çerçeveler kullanmaya açıklar. bilgisayar korsanlarının iOS / Uygulamayı etkilemesine izin verecek mi? Apple'ın dinamik çerçeveleri geliştiricilere nasıl açık hale getirdiğini, ancak hacker'ı ondan engellediğini düşünüyor musunuz? Teşekkürler!
Vijay-Apple-Dev.blogspot.com

8

Nedeni, bu Yığın Taşması sorusunda belirtildiği gibi güvenliktir :

Nedeni güvenliktir: Dinamik bir kütüphane çalışma zamanında yüklenip kaldırılabildiğinden, ek yürütülebilir kod indirip yükleyebilirsiniz (eklentiyi düşünün). Bu bir hacker tarafından ele geçirilebilir ve ardından telefonunuzda kötü amaçlı kod yürütülmesi çok kötü bir şeydir. Ayrıca, onaylanmış bir uygulamaya onaylanmamış özellikler eklemeyi mümkün kılacaktır. Kısacası: bu ortamda, Apple dinamik bağlantıyı sıkı bir şekilde kontrol edilmesi gereken bir Pandoras kutusu olarak görüyor, aksi takdirde güvenliği tehlikeye atabilir ve telefonda mantıklı olduğunu kabul ediyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.