现在我在我的应用程序中添加了咆哮通知支持,当我将它提交到带有管理器的 mac 应用商店时,它说“不支持的架构 - 应用程序可执行文件可能支持英特尔架构中的一个或两个:
i386 (32-bit) x86_64 (64-bit) " 最后我发现它的问题是由咆哮库引起的,所以我需要删除咆哮中的 ppc 部分,那么,如何?请帮助..
使用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。
您也可以使用“同上”。我提交了我的最后一个 Mac 应用程序,其中包含使用以下两个命令剥离 ppc 支持的框架。苹果没有拒绝。
$ ditto -rsrc --arch i386 --arch x86_64 Growl-WithInstaller Growl-WithInstaller_noppc
$ lipo -info Growl-WithInstaller_noppc