3

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

4

2 に答える 2

1

シェルから、あなたはすることができます

otool -hv <path to mach-o image>

画像は通常、Contents/MacOSアプリケーションまたはVersions/Currentフレームワークにあります

于 2012-05-03T16:31:55.960 に答える
0

これにより、現在のアプリケーション(またはであると判断されたバンドルmainBundle)がターゲットバンドルと共通のアーキテクチャを共有しているかどうかが決まります。NSBundleのexecutableArchitecturesメソッドにはMacOSX10.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
}
于 2012-05-03T21:12:57.090 に答える