Iphone 在真实设备上测试iOS与在模拟器上测试

Iphone 在真实设备上测试iOS与在模拟器上测试,iphone,ipad,ios-simulator,Iphone,Ipad,Ios Simulator,我是iPhone/iPad开发的新手,我即将完成我的第一个应用程序,我正在寻求一些一般性建议 我知道在实际设备上进行测试很重要,而不仅仅是在模拟器上。在交易设备上进行测试时,人们通常会遇到哪些在模拟器中看不到的情况 该应用程序本身主要是一种跟踪在线交易的方式。在使用相机或GPS等方面,它不需要任何特别的东西。 模拟器的运行速度比真实设备慢得多 当模拟器不运行时,实际设备可能会耗尽内存,反之亦然 这只是一般使用测试。该设备在与您的计算机完全不同的环境中运行,这是确保您将应用程序推出到设备时不会发生

我是iPhone/iPad开发的新手,我即将完成我的第一个应用程序,我正在寻求一些一般性建议

我知道在实际设备上进行测试很重要,而不仅仅是在模拟器上。在交易设备上进行测试时,人们通常会遇到哪些在模拟器中看不到的情况

该应用程序本身主要是一种跟踪在线交易的方式。在使用相机或GPS等方面,它不需要任何特别的东西。


  • 模拟器的运行速度比真实设备慢得多
  • 当模拟器不运行时,实际设备可能会耗尽内存,反之亦然

这只是一般使用测试。该设备在与您的计算机完全不同的环境中运行,这是确保您将应用程序推出到设备时不会发生意外情况的最佳方法。例如,电话/键盘可能具有有限的数据覆盖范围、低内存情况、来电等。。这些情况在设备上更为常见,当人们通过模拟器进行模拟时

从硬件的角度来看,该设备使用的处理器架构与Mac不同,这也需要加以考虑(不像其他情况那样多,但你需要覆盖你的基础)。Mac也不能可靠地模拟RAM、磁盘空间、处理器速度等。因此,在设备上进行测试也很有用

显然,有些功能只能在设备上测试,比如摄像头、GPS(当然iPod库的使用情况也不太明显),如果你的应用程序使用了这些功能,那么不在设备上测试就太粗心了


总体而言如果您打算将应用程序发布到应用商店,或者至少发布到设备上,那么值得在设备本身上进行测试。只有这样,您才能确保它将在您打算瞄准的平台上按预期运行。模拟器毕竟只是一个模拟器,不是真的

首先:用户体验非常不同

基于鼠标的交互与触摸交互非常不同。盯着显示器看感觉和盯着手掌上的设备看感觉很不一样

此外,在模拟器和真实设备上运行动画的体验可能会非常不同

在模拟器中的使用不会告诉你任何关于真实设备上的电池消耗的信息

我的意见是:每一个将被运送到应用商店或客户进行测试的应用程序都应该在几个不同的真实设备上进行测试。没有借口。

  • 应用内购买,如果您已包括在内
  • 方向(不是那样 它们在模拟器上不可用,但很容易忘记 在那里!)
  • 应用程序生命周期测试-将应用程序推向前台并 背景
  • 网络访问-当您通过无线或蜂窝网络从设备访问网络,而不是通过mac上的LAN/wifi访问网络时,这可能很重要。如果你的应用程序使用网络上的任何资源,那么在称为可达性(Reachability)的保护伞下有一个巨大的测试要做。根据应用商店的要求,如果在使用任何此类资源之前无法访问网络,您必须提供警报

“模拟器的运行速度比实际设备慢得多。”,你有证据/来源吗?我不相信会是这种情况(至少在Mac Pro上不会)@WDUK:这是我运行OpenGL应用程序的经验。这个问题可能会有所帮助:是否有一些东西你只能在一种类型的设备上测试,而我们确信它可以在所有设备(如磁盘空间)上运行?例如,你能在IPad2和iPhone4上进行测试,然后在模拟器中进行分辨率测试吗?或者你应该在每一台设备上进行测试吗?是否有可能只在一台iPhone上进行测试?正确地测试来电只能在物理手机上进行。总的来说……这取决于你想冒多大的风险。当然,对于独立开发人员来说,他们没有完整的设备可供选择,因此他们只能测试有限的子集。你可以使用iPad2和iPhone4,这是一个不错的传播。如果你的应用程序
QuartzCore
太重,你可能会错过iPad,这可能会导致性能问题。我强烈建议至少在一部手机和一台“pad”设备上进行测试,否则你就完全失去了一个平台。就我个人而言,我测试的是我想要的最低规格的设备,最高规格的设备(对于手机和pad,至少4台设备),以及它们之间的任何设备(如果它们在附近)。此外,性能测试也不能忘记iPod Touch,它主要针对游戏应用程序。幸运的是,我们的应用程序不太依赖硬件,主要是从服务器检索数据以显示。因此,即使只使用低端设备进行测试,我认为也可以进行性能测试。