2009-02-18 18 views
13

Mentre capisco che per l'accettazione di un'applicazione iPhone su App Store, è necessario utilizzare solo librerie documentate.Controlli personalizzati per la fotocamera dell'iPhone (non utilizzando UIImagePickerController)

Se questo è il caso, in che modo alcune applicazioni come "Night Camera" e "Camera Plus" utilizzano un controllo della fotocamera che sembra essere diverso da quello contenuto in UIImagePickerController?

Ho sentito di alcuni casi in cui a uno sviluppatore è stato concesso un accesso "speciale" a determinate intestazioni che consentono funzionalità altrimenti impossibili se limitate a utilizzare solo librerie documentate. Tuttavia, dato l'opaco processo di selezione delle applicazioni per l'App Store, preferirei attenermi a ciò che è consigliato piuttosto che rischiare.

Qualcuno vuole fare più luce su questo?

risposta

6

Si potrebbe voler controllare un classdump delle intestazioni del framework privato di Apple. Eseguire questo script perl:

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

e passare alla directory PhotoLibrary sotto PrivateFrameworks. Alcune delle classi qui sembrano piuttosto promettenti per l'accesso diretto alla telecamera.

L'utilizzo dell'API non documentata può compromettere le possibilità di passare attraverso l'app store, ma è tutto molto soggettivo. Se il tuo prodotto è buono, Apple probabilmente lo farà scivolare. Consiglierei di fare amicizia con uno sviluppatore evangelista di Apple.

+0

Grazie per il collegamento di dump del framework.Gestirò la sceneggiatura a scopo didattico, ma per ora rimarrò con le classi documentate. –

+0

Sicuro. Fammi sapere se trovi una soluzione che non violi i termini di Apple –

1

UIImagePickerController è una sottoclasse UIViewController che gestisce una gerarchia di viste. Sei libero di giocare con la gerarchia della vista, come quelle app, ma è rischioso visto che Apple non lo documenta e potrebbe cambiarlo su qualsiasi aggiornamento del SO.

Non ho sentito parlare di nessuno che abbia accesso speciale alle biblioteche, ma ho letto che c'è una piccola distinzione tra classi e metodi non documentati e quadri privati. Le classi non documentate sono un'area grigia, ma i quadri privati ​​non sono assolutamente consentiti.

+0

Definitivamente. Grazie per le informazioni. –

0

La spiegazione semplice è che le applicazioni nel negozio non dovrebbero utilizzare API non supportate, ma questo non viene controllato in modo coerente. Le app che hai menzionato utilizzano o funzioni/classi/metodi non supportati o giocano con la gerarchia della vista, che è a sua volta non documentata, anche se può essere eseguita con API standard.

Si potrebbe fare quello che fanno e correre il rischio. Basta essere consapevoli dei rischi. La tua app potrebbe (a) essere respinta dal negozio, (b) essere accettata ma successivamente avviata (ciò è accaduto per uso API non supportato), (c) essere accettata e non avviata ma interromperà la prossima volta che Apple ha un nuovo aggiornamento software iPhone (poiché le API non supportate o le gerarchie delle viste possono cambiare senza preavviso). O potresti essere fortunato e non succedere nulla di tutto ciò.

Problemi correlati