Lipo - 如何为ARMv7/ARMv7s/ARM64架构 创建通用文件(Universal Files)

      当前iOS app 一般要运行在三种不同的ARM平台上, 分别是ARMv7,  ARMv7S 和 ARM64(ARMv8),  在Xcode中, 可以定义Target Architectures 为 Standard Architectures,  也就是编译器预先定义好的变量 $(ARCH_STANDARD),  这个自然包含了iOS app所需要支持的不同架构的binary库或App.    但是如果我们的程序并非用Xcode编译 而是用 GNU make 呢?  如何把多种不同架构的biarary combine 在一起呢?   答案是利用MAC OS 的Lipo 工具。  

          Lipo的命令格式定义如下:      

lipo  [-info]  [-detailed_info]  [-arch  arch_type  input_file]  ...   [  input_file] ...  [-arch_blank arch_type] [-create] [-thin arch_type] [-replace arch_type filename] ...

       [-remove arch_type] ...  [-extract arch_type] ...  [-extract_family arch_type] ...  [-verify_arch arch_type ...]  [-output output_file] [-segalign arch_type value] ...


常见的使用

      1.    lipo -info filename  或者  lipo -detailed_info filename

       -info:  简要显示输入文件的architectures.   

       -detailed_info:  详细显示输入文件的architectures.   这两个options用来查看生产的文件所能支持的architecture信息。  

     2.    lipo create -arch armv7 armv7_filename -arch armv7s armv7s_filename -arch arm64 arm64_filename -output target_filename

       这个命令用来把三种不同的architecture的文件合到一个文件中, 并且这个文件支持上述三种architectures.   


  虽然 lipo的功能还有不少, 但是上述两种是最常用的, 掌握他们已经足够满足日常应用了。  

       

你可能感兴趣的:(ios,lipo,armv7,arm64,armv7s)