![]() |
1
7
只需使用libtool将两个arm6和arm7版本链接在一起—Xcode就是这样做的。但是,如果您尝试将这些静态库合并到一个新的超级库中,就会出现问题。如果你需要那么读 this . 如果你已经这样做了,这就是为什么Lipo抱怨你的“armv6”库同时包含armv6和armv7。我的文章有一个修复,可能会更容易,因为你不使用Xcode,但基本上你使用Lipo-Extract,以确保你有一个瘦的armv6库和一个瘦的armv7库,然后再进一步。 |
![]() |
2
11
我发现了一个很好的解决方案: Static Libs With Support to iOS 5 and Arm64 编辑: 解决方案是构建不同的体系结构,然后使用命令行(或rakefile)使用lipo绑定它们。 首先使用xcodebuild使用arm生成二进制文件:
请注意,您必须设置iphoneos的部署目标='5.0'和archs='armv7 armv7 s',建议您设置build和product dirs以使事情更清楚,请查看build setting reference了解更多详细信息,了解此标志的含义。 ARM64的下一个版本:
注意arch和iphoneos部署目标的区别。我们还需要为模拟器构建,在这种情况下,我们必须将sdk更改为iphone Simulator7.0,并为i386构建两个步骤:
现在是棘手的部分!如果您只是根据Xcode设置将arch更改为x86_,则会出现如下错误:x86_不是有效的arch_。要避免这种情况,只需添加有效的“archs='x86_':
最后,我们只需要创建一个具有所有5个架构的胖二进制:
作者创建了一个这样的工作示例,您可以得到它: https://github.com/diogot/StaticLibDemo 以下是帖子的链接: 支持iOS 5和ARM64的静态libs 所有学分都归迪奥戈·特里达帕利所有。 |
![]() |
3
2
确保将生成设置设置为
你也总是可以使用
在我的应用程序的发行版上运行它可以让我:
|
![]() |
4
2
在重新加入之前,似乎不需要从脂肪库中提取(如Jamie的回答中所述)。我使用的是来自苹果的最后一个4.0sdk,它在默认情况下创建了fat armv6/armv7库。 我以前是这样指定输入库的体系结构的:
这在后来的sdk上失败了,但是从(现在是fat)arm lib中删除架构可以很好地工作:
Lipo现在必须能够检测FAT库中的体系结构。 |