2009-02-18 8 views
13

Aunque entiendo que para que una aplicación de iPhone se acepte en la tienda de aplicaciones, un requisito es que solo se utilicen las bibliotecas documentadas.Controles personalizados de cámara para iPhone (sin usar UIImagePickerController)

Si este es el caso, ¿cómo son ciertas aplicaciones tales como "Cámara nocturna" y "Cámara Plus" usando un control de cámara que parece ser algo diferente al contenido en UIImagePickerController?

He oído hablar de ciertos casos en los que un desarrollador tiene acceso "especial" a ciertos encabezados que permiten funciones que de otro modo serían imposibles si se limitara a usar únicamente bibliotecas documentadas. Sin embargo, dado lo opaco que es el proceso de selección de aplicaciones para la App Store, preferiría mantener lo que se recomienda en lugar de correr el riesgo.

¿Alguien quiere arrojar más luz sobre esto?

Respuesta

6

Es posible que desee comprobar un classdump de los encabezados de marcos privados de Apple. Ejecutar este script en perl:

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

y navegue hasta el directorio PhotoLibrary bajo PrivateFrameworks. Algunas de las clases aquí parecen bastante prometedoras para el acceso directo a la cámara.

Usar la API no documentada podría afectar sus posibilidades de pasar por la tienda de aplicaciones, pero todo es muy subjetivo: si su producto es bueno, la manzana probablemente lo deje pasar. Recomiendo hacer amigos con un desarrollador evangelista en Apple.

+0

Gracias por el enlace de volcado del marco.Ejecutaré el guión con fines educativos, pero me quedaré con las clases documentadas por el momento. –

+0

Claro. Avíseme si encuentra una solución que no viole los términos de apple –

1

El UIImagePickerController es una subclase UIViewController que administra una jerarquía de vista. Es libre de jugar con la jerarquía de vistas, como esas aplicaciones, pero es arriesgado teniendo en cuenta que Apple no lo documenta y podría cambiarlo en cualquier actualización del sistema operativo.

No he oído que a nadie se le haya otorgado acceso especial a las bibliotecas, pero he leído que hay una pequeña diferencia entre las clases y métodos no documentados y los marcos privados. Las clases indocumentadas son un área gris, pero los marcos privados definitivamente no están permitidos.

+0

Definitivamente. Gracias por la info. –

0

La explicación simple es que las aplicaciones en la tienda no deben usar API incompatibles, pero esto no se comprueba constantemente. Las aplicaciones que mencionaste están usando funciones/clases/métodos no compatibles o están jugando con la jerarquía de vistas, que a su vez no está documentada, aunque puede hacerse con API estándar.

Puede hacer lo que hace y arriesgarse con él. Solo se consciente de los riesgos. Su aplicación podría (a) ser rechazada de la tienda, (b) ser aceptada pero más tarde iniciada (esto ha sucedido por el uso API no soportado), (c) ser aceptada y no arrancada, pero romper la próxima vez que Apple tenga una nueva actualización de software de iPhone (ya que las API o jerarquías de vista no compatibles pueden cambiar sin previo aviso). O podrías tener suerte y que nada de esto suceda.

Cuestiones relacionadas