web-dev-qa-db-ja.com

静的ライブラリが64ビット用にビルドされているかどうかを確認する方法は?

Architecturesのビルド設定を$(ARCHS_STANDARD_INCLUDING_64_BIT)に設定して、iOS用の静的ライブラリを作成しました。

.aライブラリにそのアーキテクチャが適切に含まれていることを確認したいのですが、lipo -infoその上に、私は見る:

Fatファイルのライブラリ:library.aは次のとおりです:armv7 armv7s(cputype(16777228)cpusubtype(0))

これは、arm64が含まれていないということですか? lipoコマンドで通知できない場合、別の通知方法はありますか?

最新のコマンドラインツールをインストールしてXcode 5を実行しています。

72
Joel Fischer

はい、arm64スライスがあります。これを確認するには、ホストシステム(arm64を認識していない)ではなく、iOSツールチェーンのlipoを使用する必要があります。

xcrun -sdk iphoneos lipo -info $(FILENAME)
116
Stephen Canon

古き良きfileもトリックを行うことができます:

$ file libTestFlight.a

libTestFlight.a: Mach-O universal binary with 5 architectures
libTestFlight.a (for architecture armv7):   current ar archive random library
libTestFlight.a (for architecture armv7s):  current ar archive random library
libTestFlight.a (for architecture i386):    current ar archive random library
libTestFlight.a (for architecture x86_64):  current ar archive random library
libTestFlight.a (for architecture cputype (16777228) cpusubtype (0)):   current ar archive random library

Appleの誰もfileにarm64 cputypeを追加することを気にかけていないようです。

興味深いことに、iOS 7 Tech Talkビデオ(「現代アプリのアーキテクチャ、パート2」、PDF 35ページ))では、作業ファイルツールの出力を示しています。

enter image description here

64
Nikolai Ruhe

のために .framework

lipo -info myFramework.framework/MyFramework

15