【问题标题】:Testing a iPhone app in iOS 3.0在 iOS 3.0 中测试 iPhone 应用程序
【发布时间】: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 并将其用作测试平台?

谢谢

【问题讨论】:

    标签: iphone cocoa-touch xcode ios


    【解决方案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;旧固件可能具有不应重新启用的旧运营商设置;它消除了用户问题的潜在来源;等
    猜你喜欢
    • 2011-03-31
    • 2014-05-06
    • 2010-10-16
    • 2012-12-06
    • 1970-01-01
    • 2014-05-25
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多