¿Hay alguna forma de probar la cámara del iPhone en el simulador sin tener que implementarla en un dispositivo? Esto parece terriblemente tedioso.
¿Hay alguna forma de probar la cámara del iPhone en el simulador sin tener que implementarla en un dispositivo? Esto parece terriblemente tedioso.
Respuestas:
Hay una serie de funciones específicas del dispositivo que debe probar en el dispositivo, pero no es más difícil que usar el simulador. Simplemente cree un destino de depuración para el dispositivo y déjelo conectado a la computadora.
Lista de acciones que requieren un dispositivo real:
Necesitaba probar algunas superposiciones personalizadas para fotos. Las superposiciones debían ajustarse en función del tamaño / resolución de la imagen.
Me acerqué a esto de una manera similar a la sugerencia de Stefan, decidí codificar una respuesta de cámara "ficticia".
Cuando el simulador se está ejecutando, ejecuto este código ficticio en lugar del estándar "captureStillImageAsynchronouslyFromConnection".
En este código ficticio, construyo una "foto negra" con la resolución necesaria y luego la envío a través del canal para que se trate como una foto normal. Esencialmente brinda la sensación de una cámara muy rápida.
CGSize sz = UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) ? CGSizeMake(2448, 3264) : CGSizeMake(3264, 2448);
UIGraphicsBeginImageContextWithOptions(sz, YES, 1);
[[UIColor blackColor] setFill];
UIRectFill(CGRectMake(0, 0, sz.width, sz.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
La imagen de arriba es equivalente a una foto de 8MP que envían la mayoría de los dispositivos actuales. Obviamente, para probar otras resoluciones cambiarías el tamaño.
Una razón común de la necesidad de acceder a la cámara es realizar capturas de pantalla para la AppStore.
Dado que la cámara no está disponible en el simulador, un buen truco (el único que conozco) es cambiar el tamaño de la vista al tamaño que necesita, justo el tiempo para tomar las capturas de pantalla. Los recortarás más tarde.
Seguro, necesitas tener disponible el dispositivo con la pantalla más grande.
El iPad es perfecto para probar diseños y hacer instantáneas para todos los dispositivos. Las capturas de pantalla para iPhone6 + deberán extenderse un poco (escaladas en 1,078125 - No es gran cosa ...)
Buen enlace a una referencia rápida de resoluciones de dispositivos iOS: http://www.iosres.com/
Editar: En un proyecto reciente, donde se usa un controlador de vista de cámara personalizado, reemplacé AVPreview por un UIImageView en un objetivo que solo uso para ejecutar en el simulador. De esta forma puedo automatizar capturas de pantalla para la carga de iTunesConnect. Tenga en cuenta que los botones de control de la cámara no están superpuestos, sino en una vista sobre la vista previa de la cámara.
La respuesta de @Craig a continuación describe otro método que encontré bastante inteligente: también funciona con la superposición de la cámara, al contrario que la mía.
Nunca lo probé, ¡pero puedes intentarlo! iCimulator
Escribí una vista de reemplazo para usar en modo de depuración. Implementa la misma API y realiza las mismas devoluciones de llamada de delegado. En mi caso, hice que devolviera una imagen aleatoria de mi conjunto de prueba. Bastante trivial de escribir.