如何在OS X 10.6上构建可在10.5上运行的应用程序和框架?

时间:2010-04-12 18:25:07

标签: objective-c cocoa macos portability

这是我的情况:我有第三方框架的源代码,我希望将其包含在我的项目中。我正在开发10.6但我想支持10.5,所以我将基本SDK和部署目标设置为10.5。

我可以构建框架和应用程序,应用程序在Xcode和机器上运行。但是,它在10.5.8上失败并崩溃。崩溃报告说

Unknown required load command 0x80000022

我也尝试在10.5.8机器上构建框架,将架构设置为'32 / 64-bit Universal'。将此框架移动到10.6计算机并尝试构建应用程序,但应用程序无法运行,抛出多个错误:

-[NSCFArray matchAndAssemble:]: unrecognized selector sent to instance 0x3503c0

有没有人见过这个?你知道修复或解决方法吗?这不是一种罕见的情况。

2 个答案:

答案 0 :(得分:2)

标记的加载程序命令是压缩二进制文件的加载程序命令,它是仅在10.6上支持的二进制类型。

matchAndAssemble:不是NSArray / NSMutableArray的(记录)方法。然而,它是PKParser试剂盒的一种方法。那是你想要建立的框架吗?

无论如何,你的项目中的某些东西只是为10.6构建的,它可能就是那个框架。检查所有目标的构建设置,以及任何子项目的任何目标,并在任何第三方框架上执行otool -l以查找22 load命令。

答案 1 :(得分:0)

回答第一个错误:unable to read unknown load command 0x80000022 - Stack Overflow,它可能与第二个错误有关。您使用的是什么版本的Xcode和SDK?