如何合并为 armv7 和 i386 构建的两个 .a 文件?

How to merge two .a files which is built for armv7 and i386?

我有 2 个静态库 (.a) 文件。这两个文件基本上是同一个库。 一个是为架构 armv7 构建的,另一个是为架构 i386 构建的。 是否可以将这 2 个库合并到 1 个文件中? 不幸的是,我没有任何源代码来重新构建它们。

提前谢谢你:D

您需要了解 lipolibtool 命令行工具可以做什么,这两个工具都随 Xcode 一起提供。

Here's a tutorial that might get you started 正在处理中。

这些步骤包括:

  1. lipo -info libFirst.a libSecond.a找出.a文件中的架构
  2. lipo -extract armv7s libFirst.a -o libFirst_armv7s.a提取你想要的架构
  3. libtool -static libFirst_armv7.a libSecond_armv7.a -o libCombined_armv7.a 将特定于体系结构的 .a 文件合并为一个
  4. lipo -create libCombined_armv7.a libCombined_armv7s.a -o libCombined.a 这为您提供了最终的 .a 库。

这里 some older documentation from Apple 描述了如何使用工具创建组合静态库。