如何在iPhone模拟器中测试相机?

She*_*lam 113 iphone ios-simulator

有没有办法在模拟器中测试iPhone相机而无需在设备上部署?这看起来非常乏味.

Tim*_*Tim 133

您必须在设备上测试许多设备特定功能,但这并不比使用模拟器更难.只需为设备构建调试目标,并将其连接到计算机.

需要实际设备的操作列表:

  • 实际的手机
  • 相机
  • 加速度计
  • 真实的GPS数据
  • 指南针
  • 振动
  • 推送通知...

  • 这有点糟糕,如果您需要在部署目标中的早期版本的操作系统上进行测试,那么您可能会觉得自己被搞砸了. (47认同)
  • 我没有ios设备.如果我想在真实设备上进行测试,我需要向某人询问..那很糟糕.. (9认同)
  • wtf,不是每个人都有iOS设备只是因为他们正在为iOS开发 (8认同)
  • 推送通知也不仅仅是设备功能吗? (4认同)
  • 以下是如何降级设备的说明:http://www.iclarified.com/31004/how-to-downgrade-from-ios-7-beta-to-ios-6 (2认同)
  • 10年过去了,我们仍然没有这个功能。 (2认同)
  • 问题:“我可以在 IOS sim 卡上使用相机而不是物理设备吗” 答案:“使用物理设备” 结果:“谢谢” (2认同)

Cra*_*aig 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);
Run Code Online (Sandbox Code Playgroud)

上面的图像相当于当前大多数设备发出的800万像素照片.显然,要测试其他分辨率,你会改变大小.