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

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



답변

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

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

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

답변

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

저는 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 사진과 동일합니다. 분명히 다른 해상도를 테스트하려면 크기를 변경해야합니다.


답변

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


답변

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

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

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

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

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


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

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


답변

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

Repo


답변

나는 그것을 시도한 적이 없지만 시도해 볼 수 있습니다!
iCimulator

 iCimulator


답변

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