我听说过有些应用在模拟器上无法正常工作,但在实际的iPhone设备上却可以正常工作。有没有人经历过在模拟器上完美运行但在实际iPhone设备上无法运行的应用呢?
我听说过有些应用在模拟器上无法正常工作,但在实际的iPhone设备上却可以正常工作。有没有人经历过在模拟器上完美运行但在实际iPhone设备上无法运行的应用呢?
有许多琐碎的例子。例如,您可以在模拟器上分配比实际手机更多的内存。如果您没有视网膜Mac,则无法在模拟器上接收推送通知,因为显示点距不同。
在更基本的层面上,模拟器只是模拟iPhone OS X使用Mac OS X。这可以从模拟器上的文件系统不区分大小写而手机上会区分大小写来证明。更微妙的是,它不仿真硬件,所以像位置这样的事情将不起作用,并且3D将非常不同 - 特别是如果您正在使用Metal。
您应该始终在实际硬件上进行测试。
在一些内存消耗较大的应用程序中,模拟器工作得很好(因为它假设iPhone/iPod Touch的内存都是你可以使用的),而设备可能会崩溃(因为其他应用程序泄漏了内存,而苹果后台服务也占用了部分内存),我没有实施适当的内存管理或对didReceiveMemoryWarning
选择器做出响应。
当尝试访问UIDevice.currentDevice()时,它返回iOS模拟器而不是您正在测试的实际设备。这很糟糕,因为您无法在模拟器上执行某些操作。
我有一个电影文件(m4v格式),第一次播放正常。
但第二次在模拟器中会闪屏……
然而在iPhone设备上却没有问题……
不考虑两者之间的性能差异,模拟器曾经存在一些问题 - 即在某些情况下会弄乱音频(请参见this question)。 但是自从2.2 SDK以来,这个问题已经得到解决,模拟器中的声音似乎很好。 这并不意味着还有其他不兼容性潜藏在那里!(只是我没有遇到过)
我有一些在模拟器中播放正常的音效,在设备上却无法播放。我不得不将格式更改为设备可以处理的格式。
是的...
为2.x编译的应用程序可以在3.0设备上正常工作,但在3.0模拟器上会崩溃。
注意:1. 如果您为3.0编译,应用程序也将在3.0模拟器上正常工作... 2. a) 为2.x编译并在模拟器中启动应用程序。 b) 现在将iPhone模拟器硬件更改为“3.0”。 c) 然后启动我们在步骤a)中安装的应用程序。 崩溃!!!!!!!!