2009-02-18 20 views
13

Bir iPhone uygulamasının App Store'da kabul edilmesini sağlamak için, bir gereksinim yalnızca belgelendirilmiş kitaplıkların kullanılması gerektiğidir.Özel iPhone kamera denetimleri (UIImagePickerController kullanılmıyor)

Bu durumda, UIImagePickerController içinde bulunandan başka bir şey gibi görünen bir kamera kontrolü kullanarak "Gece Kamerası" ve "Kamera Artı" gibi belirli uygulamalar nasıldır?

Belirli geliştiricilere, yalnızca belgelendirilmiş kütüphaneleri kullanmakla sınırlandırılması mümkün olmayan, olanaksız olan özelliklere izin veren belirli başlıklara "özel" erişim verildiği belirli durumları duydum. Ancak, uygulama seçim sürecinin App Store için ne kadar opak olduğu göz önüne alındığında, şansımı almaktan ziyade önerilenlere bağlı kalmayı tercih ederim.

Bu konuda biraz daha fazla ışık tutmak isteyen var mı?

cevap

6

Apple'ın özel çerçeve başlıklarının bir sınıf yığınını kontrol etmek isteyebilirsiniz.

http://arstechnica.com/apple/news/2008/11/dumping-the-iphone-2-2-frameworks.ars

ve PrivateFrameworks altında PhotoLibrary dizine gidin: Bu perl komut dosyasını çalıştırın. Buradaki bazı sınıflar doğrudan kamera erişimi için oldukça umut verici görünüyor.

Belgelenmemiş API'yi kullanmak uygulama mağazasından geçme şansınızı zedeleyebilir, ancak hepsi çok sübjektiftir - Ürününüz iyi ise, elma muhtemelen kaymasına izin verecektir. Apple'da bir geliştirici evangelist ile arkadaş olmanızı öneriyorum.

+0

Çerçeve dökümü bağlantısı için teşekkürler.Komut dosyasını eğitim amaçlı kullanacağım, ancak şu ana kadar belgelendirilmiş sınıflara sadık kalacağım. –

+0

Elbette. Apple'ın koşullarını ihlal etmeyen bir çözüm bulursanız lütfen bildirin. –

1

UIImagePickerController bir görünüm hiyerarşisini yöneten bir UIViewController alt sınıftır. Bu uygulamalar gibi, görünüm hiyerarşisi ile oynamaktan özgürsünüz, ancak Apple'ın bunu belgelemediğini ve herhangi bir OS güncellemesinde değiştirebileceğini düşünürsek risklidir.

Kütüphanelere özel erişim verilen herhangi birisini duymadım, ancak belgelenmemiş sınıflar ve yöntemler ile özel çerçeveler arasında küçük bir ayrım olduğunu okudum. Belgesiz sınıflar gri bir alan, ancak özel çerçevelere kesinlikle izin verilmiyor.

+0

Kesinlikle. Bilgi için teşekkürler. –

0

Basit bir açıklama, mağazadaki uygulamaların desteklenmeyen API'leri kullanmamaları gerektiğidir, ancak bu tutarlı bir şekilde denetlenmez. Bahsettiğiniz uygulamalar desteklenmeyen işlevler/sınıflar/yöntemler kullanıyor ya da standart hiyerarşilerle yapılabiliyor olsa bile görüntülenme hiyerarşisiyle oynuyor.

Yaptıklarını yapabilir ve şansınızı kendiniz de üstlenebilirsiniz. Sadece risklerin farkında olun. Uygulamanız (a) mağazadan reddedilebilir, (b) kabul edilebilir ancak daha sonra başlatılır (bu desteklenmeyen API kullanımı için gerçekleşmiştir), (c) kabul edilmeli ve başlatılmamış ancak Apple'ın yeni bir iPhone yazılımı güncellemesine sahip olduğu bir sonraki bölüme son verilmelidir (desteklenmeyen API'ler veya görünüm hiyerarşileri uyarı vermeden değiştirilebilir). Ya da şansın olabilir ve bunların hiçbiri olmaz.