从两个应用程序创建“通用二进制”?

时间:2009-08-19 14:10:11

标签: xcode macos universal-binary

简短问题:你如何使用两个应用程序,一个用于intel和另一个ppc,并将它们打包成一个通用二进制文件?

我目前对此问题的看法:

我已阅读有关通用二进制文件的Apple开发人员文档,但未能找到答案,因此可能无法实现。

由于我不会进入这里的原因,我有两个程序的应用程序(通常使用xtools来编译二进制文件),一个用于Intel Macs,另一个用于Mac> = 10.3.9运行PPC。共享资源不是问题。

我可以将MyProg_intel.app和MyProg_ppc.app放入一个zip并以这种方式分发;但这可能会导致我将分发我的程序的许多人感到困惑。

4 个答案:

答案 0 :(得分:5)

请参阅lipo工具。它可以让你将PPC和i386二进制文件拼接在一起。

此外,有时在Xcode中使用conditional build settings可以避免不同体系结构的单独目标。例如,如果您需要链接每个体系结构的不同二进制库,这将非常有用。

答案 1 :(得分:3)

查看lipo的手册页。我相信你可以使用-create来获取多个输入文件并创建一个具有多种架构的单个输出文件。

答案 2 :(得分:1)

要创建通用二进制文件,您必须使用Xcode并选择Intel和PPC目标体系结构。据我所知,你不能只将两个不同的二进制文件放入一个.app ex post facto。

答案 3 :(得分:1)

Apple的开发人员网站上有一篇关于Building an Open Source Universal Binary的文章解释了如何使用Xcode使用构建脚本“打包”通用二进制文件。这可能是您通往理智的最佳途径。您可以使用lipo,但从长远来看,如果您要更新和维护您的应用程序,拥有一个为您带来魔力的Xcode项目将占用更少的时间。