iPhone 시뮬레이터에서 카메라를 어떻게 테스트합니까?


122

장치에 배포하지 않고도 시뮬레이터에서 iPhone 카메라를 테스트 할 수있는 방법이 있습니까? 이것은 끔찍하게 지루해 보입니다.

답변:


137

장치에서 테스트해야하는 장치 별 기능이 많이 있지만 시뮬레이터를 사용하는 것보다 어렵지 않습니다. 장치에 대한 디버그 대상을 빌드하고 컴퓨터에 연결된 상태로 둡니다.

실제 장치가 필요한 작업 목록 :

  • 실제 전화
  • 카메라
  • 가속도계
  • 실제 GPS 데이터
  • 나침반
  • 진동
  • 푸시 알림 ...

54
그건 좀 짜증이납니다. 배포 대상에 설정된 이전 버전의 OS에서 테스트해야한다면 당황 할 것입니다.
marchinram 2010

2
장치를 다운 그레이드하는 방법은 다음과 같습니다. iclarified.com/31004/how-to-downgrade-from-ios-7-beta-to-ios-6
knagode 2013-06-18

5
푸시 알림도 기기 전용 기능이 아니 었나요?
mgarciaisaia

12
iOS 기기가 없습니다. 내가 누군가에게 요청해야 실제 장치에서 테스트하려는 경우 .. 즉 .. 짜증
루카

10
태권도 연맹, 모든 사람은 iOS 용 개발하고 단지 때문에 iOS 장비가
피트

7

사진 용 맞춤 오버레이를 테스트해야했습니다. 오버레이는 이미지의 크기 / 해상도에 따라 조정해야했습니다.

저는 Stefan의 제안과 비슷한 방식으로 접근했습니다. 저는 "더미"카메라 응답을 코딩하기로 결정했습니다.

시뮬레이터가 실행 중일 때 표준 "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);

위의 이미지는 현재 대부분의 장치에서 보내는 8MP 사진과 동일합니다. 분명히 다른 해상도를 테스트하려면 크기를 변경해야합니다.


Smart @Craig-최근 프로젝트에서 비슷한 작업을 수행했지만 (그렇게 똑똑하지는 않지만) 리소스에 저장된 사진을 사용했습니다. 이 방법은 iTunesConnect에 보내 추월 차선과 스크린 샷을 자동화 할 수 있습니다
무스

1

아니요 (3.2에서이를 수행하는 방법을 추가하지 않은 경우 아직 확인하지 않은 경우).


0

카메라에 액세스해야하는 일반적인 이유는 AppStore의 스크린 샷을 만드는 것입니다.

시뮬레이터에서 카메라를 사용할 수 없기 때문에 좋은 트릭 (내가 아는 유일한 방법)은 스크린 샷을 찍을 시간에 필요한 크기로 뷰의 크기를 조정하는 것입니다. 나중에자를 것입니다.

물론, 더 큰 화면을 사용할 수있는 기기가 있어야합니다.

iPad는 레이아웃을 테스트하고 모든 장치의 스냅 샷을 만드는 데 적합합니다. iPhone6 ​​+의 스크린 샷은 약간 늘려야합니다 (1,078125로 확장-큰 문제가 아닙니다…)

iOS 장치 해상도 빠른 참조에 대한 좋은 링크 : http://www.iosres.com/


편집 : 사용자 정의 카메라 뷰 컨트롤러가 사용되는 최근 프로젝트에서 AVPreview를 시뮬레이터에서 실행하는 데만 사용하는 대상의 UIImageView로 대체했습니다. 이렇게하면 iTunesConnect 업로드를위한 스크린 샷을 자동화 할 수 있습니다. 카메라 제어 버튼은 오버레이가 아니라 카메라 미리보기의보기에 있습니다.

아래의 @Craig 답변은 ​​내가 꽤 똑똑하다고 생각한 또 다른 방법을 설명합니다-그것은 또한 내 카메라 오버레이와 함께 작동합니다.


3
그게 질문의 요점입니다 ... 시뮬레이터에는 카메라가 없습니다.
Moose

1
스크린 샷을 찍기 위해 카메라가 필요한 이유는 무엇입니까?
Raphael

3
의미하는 카메라의 스크린 샷을 찍어야하는 이유는 무엇입니까? 다양한 화면 크기로 스토어에서 작동중인 카메라 애플리케이션의 스크린 샷을 업로드합니다.
Moose

0

이미지, 비디오 또는 MacBook 카메라로 iOS 시뮬레이터에서 카메라 기능을 시뮬레이션하는 데 도움이되는 git 저장소를 방금 찾았습니다.

Repo



-1

디버그 모드에서 사용할 대체보기를 작성했습니다. 동일한 API를 구현하고 동일한 대리자 콜백을 만듭니다. 제 경우에는 테스트 세트에서 임의의 이미지를 반환하도록했습니다. 쓰기는 매우 사소합니다.


3
그리고 iSight 카메라에서 이미지를 반환하도록 만들 수 있습니다. :)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.