【发布时间】:2019-07-14 08:45:59
【问题描述】:
我正在构建一个静态库以用于我正在处理的另一个项目,最终它将包含在我正在开发的框架中。当我将库引入我的项目时,arm 构建工作正常,但模拟器构建失败,缺少 x86_64 构建的符号。我已将库中的构建架构设置为
arm64 arm64e armv7 armv7s x86_64
我尝试了各种设置,例如 $(ARCHS_STANDARD) 无济于事。我还尝试了所有可以在 SO 上找到的潜在解决方案,其中大部分都相当陈旧。
我们将不胜感激任何和所有建议。
【问题讨论】:
-
您必须分别为每个架构构建,然后将它们一起放入一个胖二进制文件中。参见例如 agilewarrior.wordpress.com/2016/12/22/… 或 medium.com/@hassanahmedkhan/…
-
第一个链接与我的问题密切相关,但不幸的是它不起作用。帖子上的日期是 2016 年 12 月,所以我假设它是指 Xcode 9。我确实在派生数据文件夹中找到了它创建的库,它是另一个库的两倍,但我仍然收到链接器错误。我将尝试手动 lipo 它创建的文件并在此处报告。
-
手动 lipo 确实有效。必须修改链接中提供的脚本以防止错误(从末尾的 cp 行中删除“include”),但它仍然没有构建通用文件。必须完成手动脂。 @matt,如果您将您的评论作为答案发布并引用此评论,我将接受它作为答案。
-
我不明白为什么这不是重复的。您说“我还尝试了所有可以在 SO 上找到的潜在解决方案”,但显然这不是真的,因为调用
lipo -create是其中一种解决方案。
标签: static-libraries xcode10 ios12