我有一个应用程序,当使用文件时,报告它在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 回答
我们有几个问题,我们过去无法解释
lipo
,所有这些问题都没有使用Xcode
slipo
.试试看: