在 iOS 3.0 中测试 iPhone 应用程序

Posted

技术标签:

【中文标题】在 iOS 3.0 中测试 iPhone 应用程序【英文标题】:Testing a iPhone app in iOS 3.0 【发布时间】:2010-09-18 15:38:52 【问题描述】:

我有一个在 ios 2.0 中运行的程序,现在正在对其进行一些更新。我认为我没有做过任何在 3.0 中不可用的事情,但我没有 3.0 设备来测试它。我确实知道我将一个已弃用的函数 addTimeInterval 更新为新版本 dateByAddingTimeInterval

几个问题 -

1) 有什么方法可以让 XCode 突出显示在以前的操作系统版本中已弃用的任何代码?

2) 如果我将目标设置为 3.0,并且它编译文件,那是否一定意味着我没有调用任何 3.0 无法运行的东西?

3) 我有一个升级到 4.0 的旧 3GS。有什么方法可以让我获得 3.0 或 3.1 的还原文件,这样我就可以降级 iPhone 并将其用作测试平台?

谢谢

【问题讨论】:

【参考方案1】:

1) 有什么方法可以让 XCode 突出显示任何已弃用的代码 在以前的操作系统版本中?

Xcode 会自动执行此操作,因为存在表示弃用的 C 宏,即:

UIKIT_EXTERN NSString *const UIKeyboardBoundsUserInfoKey        __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_3_2);

2) 如果我将目标设置为 3.0,并且它 编译文件,有必要吗 意味着我没有调用任何东西 3.0无法运行?

不,因为这里重要的不是部署目标,而是基础 SDK 设置。例如,如果您将 Base SDK 设置为 4.1,将 Deployment Target 设置为 3.1.3,然后编译以下代码:

if (UI_USER_INTERFACE_IDIOM == UIUserInterfaceIdiomPad)

它可以正常编译,但在 3.1.3 设备上会导致运行时错误(实际上,任何运行

3) 我有一个旧的 3GS 升级到4.0。有什么办法我 可以得到一个 3.0 或 3.1 的恢复文件,所以我 可以降级 iPhone 并使用 作为测试平台?

无法在 iPhone 上回滚固件(虽然我读过可以回滚 iPod Touch 上的固件,但我没有尝试过)。

【讨论】:

这似乎是开发系统的不足。或者,它可能是 Apple 有意的“功能”,鼓励开发人员将非升级者抛在脑后 如果您说的是无法回滚固件版本,我认为您是部分正确的。我认为这可能是多种因素的组合:它是一个支持旧固件的巨型 PITA;旧固件可能具有不应重新启用的旧运营商设置;它消除了用户问题的潜在来源;等

以上是关于在 iOS 3.0 中测试 iPhone 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

分发兼容 iOS 3.0 + 的应用程序

PhoneGap Build 6.3.0 geolocation getCurrentPosition 在IOS上慢

警告:属性不可用:iPhone SDK for iOS 3.0 之前的版本中的 Content Edge Inset

Adobe AIR 3.0自带运行时兼容什么版本的Android和iOS?

使应用程序适用于 ios 3.0

在 iphone 上测试 ios 版本高于 xcode sdk 的应用程序