1

ファイルを使用すると、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 で使用したときの前のリポバイナリは、次のように更新しました:このタイプのアーキテクチャはありません。

4

1 に答える 1

6

過去に で説明できなかったいくつかの問題がlipoありましたが、それらはすべてXcodesを使用しても問題ありませんでしlipoた。

試してみる:

xcrun -sdk iphoneos lipo -thin armv7 MyApp -output ~/map/myappv7
于 2016-12-06T14:11:41.937 に答える