【问题标题】:iOS fat binaries and thinning outiOS 胖二进制文件和稀疏化
【发布时间】:2016-12-06 13:34:51
【问题描述】:

我有一个应用程序在使用文件时报告它在 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 二进制文件:没有这种类型的架构。

【问题讨论】:

  • 请使用file MyApp 仔细检查包含的切片。
  • 嗨,我已经这样做了,它在问题的顶部:MyApp: Mach-O fat file with 2 architectures
  • 啊,对不起。这会在这里吐出更详细的信息。也许尝试使用 Xcodes lipo:xcrun -sdk iphoneos lipo -info MyApp。也许也是为了瘦身。
  • xcrun -sdk iphoneos lipo -info MyApp Architectures in the fat file: MyApp are: armv7 arm64
  • 用 Xcode lipo 瘦身?同样的问题?

标签: ios lipo


【解决方案1】:

我们有几个问题在过去使用 lipo 无法解释,而使用 Xcodes lipo 时所有这些问题都没有问题。

试一试:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多