如何构buildiOS设备和模拟器实际上有所不同?

由于iOS模拟器是一个模拟器,为什么我需要专门为它build立? 是不是模拟器在某种虚拟机/沙箱中运行真实代码的重点?

那么,设备/模拟器的构build方式与构build的应用程序有何不同?

在iOS设备上本地运行的应用程序是ARM程序。 但是,在iOS模拟器中运行的应用程序是普通的32位(i386架构)Mac OS X程序。 换句话说,模拟器不会将iOS设备模拟到硬件级别。 它提供了一个忠实的iOS环境副本,重新实现在Mac上本地运行。

模拟器构build使用i386指令集,因为这是你的Mac使用的。

当您为iOS设备构build时,您正在构buildarmv6或armv7指令集。

模拟器的重点在于,您可以在Mac上进行一些快速testing,而无需使用设备。

要了解有关指令集的更多信息,请访问http://en.wikipedia.org/wiki/Instruction_set

模拟器和设备应该运行相同的代码,但是有一些问题需要考虑。

  1. 模拟器不能运行设备可以运行的所有function,例如,模拟器不与相机交互,GPS数据不存在(但是可以从选项中设置固定的位置),并且除此之外还有其他一些事情线。

  2. 模拟器可以用来检查你的代码和function,比开发时在设备上转储代码要快得多,但模拟器正在使用你的计算机的内存和CPU,这意味着它不能反映真实设备的性能,速度和内存明智的。

好的做法是在模拟器上进行testing和开发,当你的代码稳定并按照计划工作时 – 是时候在设备本身上进行testing,以获得性能和设备特定的其他问题。

我可以详细说明这个话题,但是我可以很快回答你的问题。