Objective-C,以编程方式检测二进制的i386或x86_x64体系结构?
是否有一种方法可以通过编程方式检测/确定二进制文件(与我的应用程序分离)是否已编译为i386、x86_x64或两者?我想象有一种方法(显然),尽管我真的不知道如何。如果您有任何建议,我们将不胜感激,谢谢 编辑:我在Apple开发者网站上找到了一个例子,尽管它是用C语言编写的,并且设置为更多地用作命令行工具。如果有人知道如何将它实现到我的objective-c代码中,那将非常有帮助Objective-C,以编程方式检测二进制的i386或x86_x64体系结构?,objective-c,binary,x86-64,Objective C,Binary,X86 64,是否有一种方法可以通过编程方式检测/确定二进制文件(与我的应用程序分离)是否已编译为i386、x86_x64或两者?我想象有一种方法(显然),尽管我真的不知道如何。如果您有任何建议,我们将不胜感激,谢谢 编辑:我在Apple开发者网站上找到了一个例子,尽管它是用C语言编写的,并且设置为更多地用作命令行工具。如果有人知道如何将它实现到我的objective-c代码中,那将非常有帮助 示例[C]代码: 您可以包括mach-o标头,只需加载二进制文件,然后检查mach\u标头。你应该阅读苹果公司的M
- 示例[C]代码:
mach-o
标头,只需加载二进制文件,然后检查mach\u标头
。你应该阅读苹果公司的Mach-O格式说明以了解更多信息,它包括你需要的一切:你可以解析文件的输出
或objdump
。可能是@grahamparks的重复,它似乎只检测应用程序本身(带有该代码)正在运行的架构。我试图检测与我的应用程序无关的完全不同的二进制代码。我从apple developer示例中找到了一些C代码,尽管我不确定如何将其与我的objective-C代码集成。@JustSide,我将如何包含它们?i、 e.-(void)检测{[self-architecture];}
?
- (void)checkArchitecture {
NSArray *bundleArch = [[NSBundle bundleWithPath:@"/path/to/other/bundle"] executableArchitectures];
}