【问题标题】:Can I build for 4.x simulator but run in 3.x simulator?我可以为 4.x 模拟器构建但在 3.x 模拟器中运行吗?
【发布时间】:2011-05-06 08:57:42
【问题描述】:

好的,之前有一些问题暗示了这个问题,我什至读过一些关于有人成功做到这一点的二手报告,但到目前为止我还没有找到具体的答案。

基本上,我想使用 iOS 4.x 为模拟器构建一个应用程序,然后在 3.x 模拟器上运行它。

我已经安装了这两个 SDK,所以我需要的只是让应用程序显示在 3.x 模拟器中的最后一英里。

我尝试将应用程序从 Library/Application Support/iPhone Simulator/4.2/Applications 复制到 Library/Application Support/iPhone Simulator/3.0/Applications,但是当我加载 3.x 模拟器时它没有显示。有一个名为 applicationstate.plist 的二进制 plist,我猜它会跟踪模拟器上安装了哪些应用程序,但我不知道二进制格式是什么,所以我有点卡在这一点上。

有没有人设法将 4.x 应用程序加载到 3.x 模拟器上?如果是这样,你是怎么做到的?

【问题讨论】:

    标签: iphone-sdk-3.0 ios ios4 ios-simulator


    【解决方案1】:

    您为什么还要尝试这样做?你想达到什么目的?如果您真正想要做的是确保应用程序在 iOS 3.x 上运行,那么只需在 xcode 中说明这一点,而不必担心实际的模拟器。只要您在 xcode 的项目设置中将“iOS 部署目标”设置为“3.0”,模拟器就可以运行 iOS 5.0。这将确保应用程序与 iOS 3.x 及更高版本兼容。显然,当 SDK 4.x 将在 iOS 3.x 设备上运行时,您仍然需要确保没有调用来自 SDK 4.x 的方法。如果那是您要测试的内容,那么您正在做的事情实际上将不起作用。您应该(正如 Apple 建议的那样)始终抓住运行目标固件版本的真实设备并在其上进行测试。拿一个带有 iOS 3.x 的旧 iPod,并尝试在上面测试您的应用,以确保在旧固件下运行时没有调用 iOS 4.x 方法。

    【讨论】:

    • 我设法通过在较新的 Xcode 旁边安装较旧的 Xcode 来使其正常工作。就像一个魅力,我现在可以测试我是否不小心调用了 iOS 4.x API,而无需连接旧设备(现在越来越难找到了)。
    【解决方案2】:

    答案是:不,由于模拟器工作方式的根本变化,您不能为 4.x 模拟器构建并在 3.1.x 或更早版本的模拟器上运行。

    测试 3.x 支持的唯一方法是在 3.x 设备上运行它(在设置最小部署目标之后),或者在支持 3.x 模拟器的旧 xcode 上构建(如果您使用 Xcode 4,iPad 3.2 除外)。

    注意:设置部署目标不会测试与旧操作系统的兼容性。重要的是它实际运行的操作系统(例如“iPhone 4.3 Simulator”、“iPhone 4.0 Simulator”、“iPad 3.2 Simulator”或实际设备)。

    当然,既然 3.x 用户占总人口的比例不到 10%,那就不值得再去支持它了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多