Xcode 5 为 OS X 10.6 开发

Posted

技术标签:

【中文标题】Xcode 5 为 OS X 10.6 开发【英文标题】:Xcode 5 Developing for OS X 10.6 【发布时间】:2014-01-09 23:05:14 【问题描述】:

我有 10.9/Xcode 5,我正在尝试为 Snow Leopard 编写一个 Cocoa 应用程序。我停用了自动布局并将部署目标设置为 10.6,但存档的应用程序不会在 10.6 上启动,因为它无法加载 nib(控制台输出)。根据我的阅读,我需要使用垃圾收集而不是 ARC。如果这是真的,我如何修改我的项目以构建和运行 10.6?谢谢你的建议。

【问题讨论】:

【参考方案1】:

首先,确保将 XIB 本身配置为针对 10.6 构建。在 Interface Builder 的右侧窗格中,您应该会看到:

如果您的目标是 64 位 10.6,那么您可以使用 ARCLite,这很好,我强烈推荐它。您真正放弃的唯一一件事是自动归零弱引用。如果你使用 32 位,你只需要放弃 ARC。如果可以的话,我建议您使用 64 位。如果您以 32 位为目标,您会放弃很多。要使用 ARCLite,您无需进行任何更改。为 10.6 编译 ARC 程序时会自动选择它。

请注意:是的,您正在做的事情是完全可能的。我仍然使用 10.9/Xcode5 设置以 10.5 为目标。

【讨论】:

请注意,当我们使用 Xcode 5 定位 10.5 时,我们发现了一个糟糕的崩溃程序。对于一些客户,他们会在名为 BUF_MEM_GROW() 的 Apple 函数中的线程 5 中崩溃。此崩溃仅出现在 10.5 机器上,并且在 5 年前从未出现过此应用程序。这是在 32 位、非 ARC 上。 我不知道我的目标机器是 64 位还是 32 位,但因为我已经完成了上面列出的步骤,但它没有t工作,我猜它是32位的。我将如何转换我的项目以支持这一点?我是在引入 ARC 时开始开发的,所以我之前没有做过任何其他方式。 转换为手动内存管理只需要在构建设置中关闭“Objective-C 自动引用计数”。但是您需要学习手动内存管理。 ocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html 但请仔细检查您是否使用的是 32 位机器。当您说“它不起作用”时,您的具体意思是它抱怨找不到 ARClite 吗? “它不起作用”涵盖了很多事情。

以上是关于Xcode 5 为 OS X 10.6 开发的主要内容,如果未能解决你的问题,请参考以下文章

如何调试旧版Mac OS X的应用程序?

Xcode 5 上的目标 OS X 10.7+

Mac OS X 终端错误:开发人员目录无效“/Applications/Xcode-5.1.1.app”

Qt 5.4 - Mac OS X 10.6 支持

Mac OS X >= 10.6 上的 Finder 文件图标标记(图标覆盖)

Mac OS X 10.6(雪豹)上的 Qt 4.4 视觉伪影是不是有解决方法