【问题标题】:Developing an iOS 3.1 application with iOS 4.0 SDK and device?使用 iOS 4.0 SDK 和设备开发 iOS 3.1 应用程序?
【发布时间】:2011-04-09 03:26:31
【问题描述】:

我为 iOS 部署目标 3.2 开发了一个 iPhone 应用程序。

但我的客户改变了主意,希望该应用可用于 iOS 3.1。 因此,我将 iOS 部署目标设置为 3.1 并将基础 SDK 保留为 4.0,但一切都可以正常编译,而我确定我只使用 iOS 3.2 中引入的方法和类。

如何识别无法在 3.1 设备上运行的代码? (并可能导致应用程序崩溃)

我的问题是我只有一个 iPhone 设备(安装了 4.0.2)并且 Xcode 不再提供 SDK 3.1.x。

【问题讨论】:

标签: iphone version compilation building


【解决方案1】:

Henry,这可能会对您有所帮助:将旧的 xcode 和 sdk 与新的并行安装。可在此处找到旧 SDK 的链接: http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html

希望,这就是你想要的。

【讨论】:

  • 太棒了!这就是我想要的!
【解决方案2】:

您可以确定您的应用程序可以在运行 3.1 的设备上运行的唯一方法是在运行 3.1 的设备上对其进行测试。对旧(iPhone 3GS 之前)硬件的支持也是如此。我在商店中看到太多应用程序,这些应用程序显然只在较新的设备上进行了测试,并且在较旧的硬件上陷入困境或内存不足。如果您不支持该硬件,很好,只需适当地设置您的 Info.plist 以使其不适用于这些设备。

无论您认为自己检查了更新的方法和类多么彻底,您仍然可能会遇到一些微妙的问题。例如,您可能需要也可能不需要弱链接某些框架,否则即使您不使用任何新的 API,您的应用程序也会在旧操作系统上崩溃。

旧型号的 iPod touch 在 eBay 上很便宜,如果安装了 4.0,可以降级到旧的操作系统版本。或者,您可以找到设备运行较旧操作系统版本的人,并向他们发送应用程序的临时构建以进行测试。这不太理想,因为您需要将 Instruments 连接到设备,以确保内存使用不会太接近旧设备上的危险区域。

很抱歉,这是唯一可以确定的方法。正如另一位开发人员对我所说,“如果您尚未在特定的操作系统版本或设备上对其进行测试,请考虑您的应用程序不会在那里运行。”

【讨论】:

  • 我 50% 同意你的观点 :) 由于编译工具还不够,我认为测试也不够。您需要测试和编译工具来提供一种 100% 确定应用程序质量的方法。这就是为什么我现在正在寻找适用于 iOS 的 3.1 基础 SDK,Apple 网站的当前 Xcode 下载中未提供该 SDK。如何获取旧的 3.1 SDK?
【解决方案3】:

您也检查过警告吗?如果找不到选择器,那么它将编译,但可能会警告您找不到匹配的选择器或类似的东西。你说你确定你用过 >=3.2 的东西。你不知道它们是什么吗?

【讨论】:

  • 我检查了警告,但它们只是相对于基础 SDK(即 4.0)。
  • 我已经确定了 >=3.2 的类(例如 MPMoviePlayerViewController),但我想找到一种方法来 100% 确保不会忘记应用程序中的任何内容。
  • 能否将基础 SDK 更改为 3.1?我不能 100% 确定它是否会有所帮助。
  • 那是我的下一个问题。 Apple 网站上当前版本的 XCode 仅提供 3.2 基础 SDK。如何再次使用 3.1 基础 SDK?可以从任何网站下载吗?
  • 哎呀。我不知道。我仍在使用 sdk 3.0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2019-12-01
  • 1970-01-01
  • 2011-11-18
相关资源
最近更新 更多