ファイルを使用すると、Mach-O に 2 つのアーキテクチャがあると報告するアプリがあります。
iPad:~/map/MyApp.app root# file MyApp
MyApp: Mach-O fat file with 2 architectures
編集-Xcodeのツールでもこれを確認しました
xcrun -sdk iphoneos lipo -info MyApp
Architectures in the fat file: MyApp are: armv7 arm64
otool を使用してアーキテクチャを特定すると、ARMv7 (cpusubtype 9) と ARM64 (cpysubtype 0) の 2 つがあることがわかります。
iPad:~/map/MyApp.app root# otool -arch all -Vh MyApp
MyApp (architecture cputype (12) cpusubtype (9)):
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC ARM 9 0x00 EXECUTE 41 4760 NOUNDEFS DYLDLINK TWOLEVEL PIE
MyApp (architecture cputype (16777228) cpusubtype (0)):
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 16777228 0 0x00 EXECUTE 41 5368 NOUNDEFS DYLDLINK TWOLEVEL PIE
ただし、リポを使用してバイナリを間引くと、次のエラーが発生します
iPad:~/map/MyApp.app root# lipo -thin armv7 MyApp -output ~/map/myappv7
-sh: /usr/bin/lipo: Bad CPU type in executable
この特定のバイナリを考え出すことができない理由はありますか? armv7 で使用したときの前のリポバイナリは、次のように更新しました:このタイプのアーキテクチャはありません。