我需要比较捆绑包的体系结构,并将其与安装程序中的计算机体系结构进行比较;如果它们匹配,安装将继续,否则它将中止。 使用宏可以轻松获得架构;我想知道是否有办法检查要安装的软件包的体系结构。
答案 0 :(得分:1)
从shell中,你可以做到
otool -hv <path to mach-o image>
图片通常位于应用程序中的Contents/MacOS
或框架中的Versions/Current
答案 1 :(得分:0)
这将确定当前应用程序(或任何确定为mainBundle
的包)是否与目标包共享一个公共体系结构。对于NSBundle的executableArchitectures
方法,需要Mac OS X 10.5。
NSArray *targetArch = p[NSBundle bundleWithPath:@"/path/to/bundle.bundle"] executableArchitectures];
NSArray *thisArch = [[NSBundle mainBundle] executableArchitectures];
if ([targetArch firstObjectInCommonWithArray:thisArch])
{
// target bundle has architecture which matches current application
}