2

我使用 xcode 4 开发了一个 iPhone 应用程序,它与 iOS 4.3 兼容并在 iPhone 4 设备上顺利运行。
我的问题是如何检查我的应用程序是否与 iOS 3 兼容。
我没有任何 iOS 3 设备来运行该应用程序,因此唯一的解决方案是检查 iOS 3 的兼容性是模拟器,但我没有找到在 iOS 3 模拟器上运行该应用程序的任何选项。任何关于如何为 iOS 3 安装 SDK 的建议。
谢谢

4

4 回答 4

2

确保兼容性的唯一方法是借用或购买运行 iOS 3 的设备进行测试。模拟器,即使是旧模拟器,也不够准确,无法确保兼容性。

如果您在任何地方都找不到仍在运行 3.x 的设备,即使只是借用一个小时,为什么还要为与如此稀有的兼容性而烦恼呢?

于 2011-12-29T19:06:11.557 回答
2

这是我的 iOS 3 清单:

  • 确保您的应用程序在较慢的 CPU 和较少的内存上运行良好。
  • 支持armv6。将 armv6 添加到架构中,从所需的设备功能中删除 armv7,如果您的编译器存在代码生成错误,则禁用 armv6 上的 thumb。
  • 不要使用 ARC,iOS 3 不(官方)支持 whick。
  • 检查是否存在较新的方法(使用 respondsToSelector:) 或类,而不是在大多数情况下检查操作系统版本。
  • 不要使用 iOS 3 上确实存在但属于私有 API 且缺少重要方法的手势识别器。您需要手动处理触摸事件。
  • 如果使用block,需要动态链接系统库,需要iOS 3.1(听说iOS 3.0不支持动态链接)

这是一个示例应用程序:didFinishLaunchingWithOptions: 方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

    if ([self.window respondsToSelector:@selector(setRootViewController:)]) {
        self.window.rootViewController = self.viewController;
    } else {
        [self.window addSubview:self.viewController.view];
    }
    [self.window makeKeyAndVisible];
    return YES;
}
于 2011-12-30T02:58:11.613 回答
1

点击项目,点击您的目标,点击摘要,将您的部署目标设置为 3.x。然后 XCode 顶部的 Scheme 下拉菜单将显示在 3.x 模拟器中运行它的选项。

于 2011-12-29T18:38:45.000 回答
0

On the iOS developer center there's a download link to Xcode 3. That one might include iOS 3.

于 2011-12-29T18:35:53.787 回答