2010-01-30 202 views

回答

102

有许多设备特定的功能,你必须在设备上测试,但没有比使用模拟器更难。只需为该设备构建一个调试目标并将其连接到计算机即可。那需要一个实际的设备动作

列表:

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

-t

+30

这有点糟糕,如果您需要测试部署目标中设置的操作系统的早期版本,那么猜测您会被拧紧。 – marchinram 2010-12-15 04:03:02

+0

降级?这就是Xcode包含一键恢复的原因。 – 2012-06-25 01:58:39

+2

这里是说明如何降级您的设备:http://www.iclarified.com/31004/how-to-downgrade-from-ios-7-beta-to-ios-6 – knagode 2013-06-18 15:25:59

1

没有(除非他们已经在3.2中添加了一个方法,还没有检查)。

0

我写在调试模式下使用的替代视图。它实现相同的API并且使相同的委托回调。在我的情况下,我使它从我的测试集中返回一个随机图像。写作很琐碎。

+66

你能分享代码吗? :) – Tudorizer 2011-02-18 14:19:03

+3

而且,你可以让它从iSight Camera返回一个图像:) – 2011-05-04 12:40:22

1

需要访问摄像头的常见原因是为AppStore制作截图。

由于相机在模拟器中不可用,一个好的诀窍(我唯一知道的)就是根据您需要的尺寸调整视图大小,只是截取屏幕截图的时间。你以后会裁剪它们。

当然,你需要有更大的屏幕可用的设备。

iPad非常适合测试布局并为所有设备制作快照。 截图为iPhone6 +将不得不绷得有点(由1,078125缩放 - 没什么大不了的......)

好链接到iOS设备分辨率快速参考:http://www.iosres.com/

+6

或者只是在iOS模拟器中使用文件 - >“保存屏幕截图”? ... – Cyrus 2016-06-26 05:24:38

+0

这就是问题的要点......模拟器中没有摄像头。 – Moose 2016-06-26 08:18:17

+0

为什么你需要一个摄像头来截图? – Raphael 2017-03-16 09:49:05

6

我需要一些测试自定义覆盖照片。叠加层需要根据图像的大小/分辨率进行调整。

我以一种类似于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照片。显然要测试其他分辨率,你会改变大小。