2012-05-03 5 views
3

バンドルのアーキテクチャを比較し、それをインストーラのマシンアーキテクチャと比較する必要があります。一致した場合はインストールが続行され、それ以外の場合は中止されます。 マクロを使用するとアーキテクチャを簡単に取得できます。私は、インストールするバンドルのアーキテクチャをチェックする方法があるかどうかを知りたいと思います。OSXバンドルアーキテクチャ

答えて

0

Versions/Currentに通常ありますターゲットバンドルと共通のアーキテクチャを共有します。 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> 

イメージを行うことができ、現在のアプリケーション(または任意のバンドルはmainBundleであることが決定)場合、これは決定するアプリケーションでContents/MacOSやフレームワーク