Як перевірити камеру в тренажері iPhone?


122

Чи є можливість протестувати камеру iPhone в тренажері без необхідності розгортання на пристрої? Це здається жахливо нудним.

Відповіді:


137

Існує ряд особливостей пристрою, які вам доведеться протестувати на пристрої, але це не складніше, ніж використовувати тренажер. Просто побудуйте ціль налагодження для пристрою та залиште його прикріпленим до комп'ютера.

Перелік дій, для яких потрібен фактичний пристрій:

  • власне телефон
  • камера
  • акселерометр
  • реальні дані GPS
  • компас
  • вібрація
  • push-сповіщення ...

54
Це неначе гарно, а якщо вам потрібно тестувати на більш ранній версії ОС, встановленої у вашій цілі розгортання, напевно, ви тоді будете накручені.
marchinram

2
Ось інструкції щодо пониження рівня пристрою: iclarified.com/31004/how-to-downgrade-from-ios-7-beta-to-ios-6
knagode

5
Чи не були також натискання сповіщень функцією лише для пристроїв?
mgarciaisaia

12
Я не володію пристроєм ios. Якщо я хочу протестувати на справжньому пристрої, мені потрібно попросити когось .. Це гарно ...
Лука

10
wtf, не у всіх є пристрій iOS лише тому, що вони розробляються для iOS
піт

7

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

Я підійшов до цього способом, схожим на пропозицію від Стефана, і вирішив зашифрувати відповідь камери.

Коли тренажер працює, я виконую цей макетний код замість стандартного "captureStillImageAsynchronmousFromConnection".

У цьому макетному коді я створюю "чорну фотографію" потрібної роздільної здатності, а потім надсилаю її через конвеєр, щоб оброблятись як звичайна фотографія. По суті, забезпечує відчуття дуже швидкої камери.

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);

Зображення вище еквівалентно 8MP фотографії, які надсилає більшість пристроїв поточного дня. Очевидно, що для тестування інших резолюцій ви змінили б розмір.


Smart @Craig - я нещодавно (не так розумно, напевно) робив у недавньому проекті, але використовував картинку, збережену в ресурсах. Таким чином можна автоматизувати скріншоти за допомогою Fastlane для надсилання на iTunesConnect
Moose

1

Ні (якщо ви додали спосіб зробити це в 3.2, ще не перевірили).


0

Поширеною причиною необхідності доступу до камери є створення скріншотів для AppStore.

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

Звичайно, потрібно мати пристрій з більшим екраном.

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

Хороша посилання на швидку посилання на рішення пристроїв iOS: http://www.iosres.com/


Редагувати: У недавньому проекті, де використовується спеціальний контролер перегляду камери, я замінив AVPreview на UIImageView в цільовій, яку я використовую лише для запуску в тренажері. Таким чином я можу автоматизувати скріншоти для завантаження iTunesConnect. Зауважте, що кнопки управління камерою знаходяться не в накладанні, а в огляді за попереднім переглядом камери.

Відповідь @Craig нижче описує інший метод, який я вважав досить розумним - він також працює з накладанням камери, протилежним моєму.


3
У цьому і полягає питання ... У тренажері немає камери.
Мус

1
Навіщо вам потрібна камера, щоб робити знімки екрана?
Рафаель

3
Чому вам потрібно робити знімки екрану з камери, яку ви маєте на увазі? Щоб завантажувати знімки екрана програми камери в магазині в різних розмірах екрана.
Мус

0

Щойно знайдено репортаж на git, який допомагає імітувати функції камери на iOS Simulator із зображеннями, відео чи вашою MacBook Camera.

Репо



-1

Я написав перегляд заміни для використання в режимі налагодження. Він реалізує той самий API і робить ті самі зворотні делегати. У моєму випадку я змусив повернути випадкове зображення з мого тестового набору. Досить тривіально писати.


3
І ви можете зробити так, щоб повернути зображення з iSight Camera :)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.