我们有一个大约 3 年前编写的 Mac 应用程序。自 Leopard (10.5) 以来,我们一直在所有版本的 OS X 中维护它。它是一个 32 位通用二进制文件,是一套软件包的一部分,所有的编译和构建方式都相同。
除了一个之外,所有应用程序都在 Mavericks 下运行,并且只有一部分被破坏。在这个“损坏”的应用程序中,我们有一个菜单选项,允许用户打开一个简单的日志记录窗口。所有这一切都是一个带有文本视图的 NSPanel。当我们打开它时,旋转的沙滩球出现并观察控制台,它将这个程序识别为“挂起”。
这件事已经工作了很多年。它适用于从 Leopard 到 Mountain Lion 的 PPC 和 Intel。我确信它的某个地方有过时的代码,但我浏览了它并找不到任何代码。反正真的没什么。它所做的只是打开并吐出文本。然后我追踪了代码,发现笔尖没有加载。
我在这个系统上安装了 Xcode 3.2.5(它从 Snow Leopard 开始升级),没有 iPhone 支持,它似乎可以工作。无论如何,我想我会看看实际的内容和窗口布局,看看我是否有一些不受支持或过时的支持,当我从 Xcode 双击 xib 文件时,当 Interface Builder 打开时,它也锁了。我认为这个应用程序中有 5 个 xib 文件,所以我双击所有这些文件,它们都在 Interface Builder 中正确打开。唯一锁定的是这个。作为测试,我在 Xcode 4 中打开了 xib,它可以正常打开。
我们不能真正迁移到 Xcode 4,因为我们有相当多的客户(大约 30%)仍在使用 Leopard 和 Snow Leopard。我们通常在 Lion 或 Snow Leopard 中构建。但在 Mountain Lion 下编译和构建没有任何问题。这个应用程序以及我们拥有的所有其他应用程序将在 Mavericks 系统上使用 Xcode 3.2.5 进行编译和构建。除了这个 xib 文件之外,一切似乎都可以正常工作。
有没有人遇到过这样的事情?我们是否忽略了什么?我们忽略的操作系统有变化吗?这是操作系统错误吗?