Xcode 设备模拟器能否用作测试应用程序与旧 iOS 版本兼容性的可靠方式?
Can Xcode device simulators be used as a reliable way of testing app compatibility with older iOS versions?
我正在使用 Xcode 设备模拟器测试我的应用程序,以确保所有功能至少在 iOS 8.1 上运行良好,但我发现了一些让我感到困惑的事情。有一些代码具有从 8.3 开始可用的功能,但是当我 运行 我的应用程序在模拟器 运行 8.1 上时,一切都按预期工作。这是怎么回事?考虑到几乎 90% 的用户拥有 9.0+,是否值得支持 9.0 以下?
我建议,大多数时候你应该使用模拟器来测试 UI 和你的数据计算或 application/business 逻辑是否有效。但是您必须尝试在真实设备上测试您的应用程序的性能,因为每个 iPhone 的硬件都不同。回到您最初的问题 - 当您说在模拟器上一切正常但在真实设备上不正常时,您是否正在尝试调试任何特定的东西?
有问题的代码是否与与先前 OS 版本一起发布的 class 相关?如果在您设置为部署目标的 OS 版本发布时对象本身不可用,您应该会收到一个编译时错误,显示 "XX is only available on iOS X.X or newer"
如果它只是对现有 class 的一种新方法,您可能可以构建和模拟它。不过,调用代码会使您的应用程序崩溃。使用日志语句来确保该方法确实被调用。
您应该将设备用于测试目的,因为在模拟器和真实设备中实现事物之间存在巨大差异。您可以使用模拟器进行逻辑测试。
我正在使用 Xcode 设备模拟器测试我的应用程序,以确保所有功能至少在 iOS 8.1 上运行良好,但我发现了一些让我感到困惑的事情。有一些代码具有从 8.3 开始可用的功能,但是当我 运行 我的应用程序在模拟器 运行 8.1 上时,一切都按预期工作。这是怎么回事?考虑到几乎 90% 的用户拥有 9.0+,是否值得支持 9.0 以下?
我建议,大多数时候你应该使用模拟器来测试 UI 和你的数据计算或 application/business 逻辑是否有效。但是您必须尝试在真实设备上测试您的应用程序的性能,因为每个 iPhone 的硬件都不同。回到您最初的问题 - 当您说在模拟器上一切正常但在真实设备上不正常时,您是否正在尝试调试任何特定的东西?
有问题的代码是否与与先前 OS 版本一起发布的 class 相关?如果在您设置为部署目标的 OS 版本发布时对象本身不可用,您应该会收到一个编译时错误,显示 "XX is only available on iOS X.X or newer"
如果它只是对现有 class 的一种新方法,您可能可以构建和模拟它。不过,调用代码会使您的应用程序崩溃。使用日志语句来确保该方法确实被调用。
您应该将设备用于测试目的,因为在模拟器和真实设备中实现事物之间存在巨大差异。您可以使用模拟器进行逻辑测试。