programing tip

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

itbloger 2020. 8. 2. 17:39
반응형

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 답변은 ​​꽤 똑똑한 또 다른 방법을 설명합니다-그것은 또한 카메라 오버레이와 함께 작동합니다.


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

참고 URL : https://stackoverflow.com/questions/2168484/how-do-i-test-a-camera-in-the-iphone-simulator

반응형