10

现在我在我的应用程序中添加了咆哮通知支持,当我将它提交到带有管理器的 mac 应用商店时,它说“不支持的架构 - 应用程序可执行文件可能支持英特尔架构中的一个或两个:

i386 (32-bit) x86_64 (64-bit) " 最后我发现它的问题是由咆哮库引起的,所以我需要删除咆哮中的 ppc 部分,那么,如何?请帮助..

4

2 回答 2

19

使用lipo命令行实用程序,它将架构从胖二进制文件中剥离(多么合适的名称)。首先,检查 Growl 框架中有哪些架构:

$ lipo -info path/to/Growl.framework/Growl
Architectures in the fat file: Growl are: x86_64 i386 ppc

在这种情况下,我们只是有ppc,但大约有 10 个变体(其中我遇到了 3 个)。为避免任何意外,您应该在想要从文件中剥离架构时运行此命令,而不是直接跳到删除部分。(如果您很好奇,man 3 arch可以查看 Mac OS 上胖二进制文件可能架构的详尽列表。)

然后,删除ppc架构:

$ lipo -remove ppc path/to/Growl.framework/Growl -output GrowlIntel

找到真正的 Growl 二进制文件(应该在某个地方的 Versions 下)并将其替换为 GrowlIntel。

于 2011-04-21T04:01:07.557 回答
0

您也可以使用“同上”。我提交了我的最后一个 Mac 应用程序,其中包含使用以下两个命令剥离 ppc 支持的框架。苹果没有拒绝。

$ ditto -rsrc --arch i386 --arch x86_64 Growl-WithInstaller Growl-WithInstaller_noppc
$ lipo -info Growl-WithInstaller_noppc
于 2011-08-01T07:33:47.423 回答