iOS胖二进制文件和稀释

时间:2016-12-06 13:34:51

标签: ios lipo

我有一个应用程序,当使用文件时,报告它在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定位架构时,我可以看到我有2个,ARMv7(cpusubtype 9)和ARM64(cpysubtype 0)

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

然而,当我尝试使用lipo来稀释二进制文件时,我收到以下错误

iPad:~/map/MyApp.app root# lipo -thin armv7 MyApp -output ~/map/myappv7
-sh: /usr/bin/lipo: Bad CPU type in executable

为什么我无法想出这个特定的二进制文件? 当我与armv7一起使用时,我确实将我的lipo二进制文件更新为前一个二进制文件:没有这种类型的架构。

1 个答案:

答案 0 :(得分:3)

我们在过去使用lipo时遇到了一些我们无法解释的问题,使用Xcode s lipo所有这些问题都没有问题。

试一试:

xcrun -sdk iphoneos lipo -thin armv7 MyApp -output ~/map/myappv7