Как проверить камеру в симуляторе iPhone? - PullRequest
105 голосов
/ 30 января 2010

Есть ли способ протестировать камеру iPhone в симуляторе без необходимости развертывания на устройстве? Это кажется ужасно утомительным.

Ответы [ 5 ]

125 голосов
/ 30 января 2010

Существует ряд специфических функций устройства, которые вы должны протестировать на устройстве, но это не сложнее, чем использовать симулятор. Просто создайте цель отладки для устройства и оставьте ее подключенной к компьютеру.

Список действий, которые требуют фактического устройства:

  • фактический телефон
  • камера
  • акселерометр
  • реальные данные GPS
  • компас
  • вибрация * * 1016
  • push-уведомления ...
7 голосов
/ 19 декабря 2015

Мне нужно было проверить несколько пользовательских оверлеев для фотографий. Наложения необходимо корректировать в зависимости от размера / разрешения изображения.

Я подошел к этому способом, аналогичным предложению Стефана, я решил закодировать «фиктивный» отклик камеры.

Когда симулятор работает, я выполняю этот фиктивный код вместо стандартного "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-мегапиксельным фотографиям, которые отправляет большинство устройств текущего дня. Очевидно, что для проверки других разрешений вы бы изменили размер.

1 голос
/ 07 января 2015

Распространенной причиной необходимости доступа к камере является создание скриншотов для AppStore.

Поскольку камера не доступна в симуляторе, хороший прием (единственный, который я знаю) - изменить размер изображения до необходимого размера, как раз, чтобы сделать снимки экрана. Вы подрежете их позже.

Конечно, вам нужно иметь устройство с большим экраном.

iPad идеально подходит для тестирования макетов и создания снимков для всех устройств. Скриншоты для iPhone6 ​​+ придется немного растянуть (масштабируется до 1,078125 - ничего страшного ...)

Хорошая ссылка на разрешения устройств iOS, быстрый ref: http://www.iosres.com/


Редактировать: В недавнем проекте, где используется пользовательский контроллер вида камеры, я заменил AVPreview на UIImageView в цели, которую я использую только для запуска в симуляторе. Таким образом, я могу автоматизировать скриншоты для загрузки iTunesConnect. Обратите внимание, что кнопки управления камерой находятся не в наложении, а в режиме просмотра камеры.

Ответ @Craig ниже описывает еще один метод, который мне показался достаточно умным - он также работает с наложением камеры, в отличие от моего.

1 голос
/ 30 января 2010

Я написал замещающее представление для использования в режиме отладки. Он реализует тот же API и делает те же самые ответные вызовы делегата. В моем случае я заставил его вернуть случайное изображение из моего тестового набора. Довольно тривиально написать.

1 голос
/ 30 января 2010

Нет (если они не добавили способ сделать это в 3.2, еще не проверили).

...