Есть ли способ протестировать камеру iPhone в симуляторе без развертывания на устройстве? Это кажется ужасно утомительным.
Есть ли способ протестировать камеру iPhone в симуляторе без развертывания на устройстве? Это кажется ужасно утомительным.
Ответы:
Есть ряд специфических функций устройства, которые вы должны протестировать на устройстве, но это не сложнее, чем использование симулятора. Просто создайте цель отладки для устройства и оставьте ее подключенной к компьютеру.
Список действий, требующих реального устройства:
Мне нужно было протестировать несколько пользовательских оверлеев для фотографий. Наложения необходимо отрегулировать в зависимости от размера / разрешения изображения.
Я подошел к этому так же, как и предложение Стефана, я решил закодировать «фиктивный» отклик камеры.
Когда симулятор запущен, я выполняю этот фиктивный код вместо стандартного «captureStillImageAsynchronouslyFromConnection».
В этом фиктивном коде я создаю «черную фотографию» необходимого разрешения и затем отправляю ее через конвейер, чтобы она обрабатывалась как обычная фотография. По сути, дает ощущение очень быстрой камеры.
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);
Изображение выше эквивалентно 8-мегапиксельным фотографиям, которые отправляет большинство современных устройств. Очевидно, чтобы протестировать другие разрешения, вы бы изменили размер.
Распространенной причиной необходимости доступа к камере является создание снимков экрана для AppStore.
Поскольку камера недоступна в симуляторе, хороший трюк (единственный, который я знаю) - изменить размер вашего представления до нужного вам размера, как раз для того, чтобы сделать снимки экрана. Вы обрежете их позже.
Конечно, вам нужно иметь устройство с большим экраном.
IPad идеально подходит для тестирования макетов и создания снимков для всех устройств. Скриншоты для iPhone6 + придется немного растянуть (в масштабе 1,078125 - не беда…)
Хорошая ссылка на краткую ссылку на разрешения устройств iOS: http://www.iosres.com/
Изменить: в недавнем проекте, где используется настраиваемый контроллер вида камеры, я заменил AVPreview на UIImageView в цели, которую я использую только для запуска в симуляторе. Таким образом, я могу автоматизировать скриншоты для загрузки iTunesConnect. Обратите внимание, что кнопки управления камерой находятся не в наложении, а на виде поверх предварительного просмотра камеры.
Ответ @Craig ниже описывает еще один метод, который я нашел довольно умным - он также работает с наложением камеры, в отличие от моего.
Я никогда не пробовал, но вы можете попробовать! iCimulator
Я написал замещающее представление для использования в режиме отладки. Он реализует тот же API и выполняет те же обратные вызовы делегатов. В моем случае я заставил его возвращать случайное изображение из моего тестового набора. Писать довольно тривиально.