2012-05-03 92 views
3

我需要比較軟件包的體系結構並將其與安裝程序的機器體系結構進行比較;如果它們匹配,則安裝將繼續,否則它將中止。 使用宏可以輕鬆獲得體系結構;我想知道是否有方法檢查要安裝的軟件包的體系結構。OSX軟件包體系結構

回答

0

這將決定當前應用程序(或任何束被判定爲mainBundle)與目標包共享一個共同的架構。需要Mac OS X 10.5 for NSBundle的executableArchitectures方法。

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 
} 
1

從貝,你可以做

otool -hv <path to mach-o image> 

圖像通常是在應用Contents/MacOSVersions/Current在框架