【问题标题】:How to remove unwanted architecture x86_64 from Xcode build?如何从 Xcode 构建中删除不需要的架构 x86_64?
【发布时间】:2016-04-01 05:58:35
【问题描述】:

我正在尝试重新编译别人的代码。该代码包含对第三方库 myLib.a 的引用,该库有两个切片:

Architectures in the fat file: myLib.a are: armv7 arm64 

我收到此警告,然后是一堆链接错误:

ld: warning: ignoring file myLib.a, missing required architecture x86_64 in file myLib.a (2 slices)

现在,我知道这个库不适用于模拟器。所以我想把模拟器从构建中扔掉。我不太了解构建目标,所以我这样做了:

仍然,同样的错误。我做错了什么?

Xcode 7.3

【问题讨论】:

  • 尝试添加 armv7s 或 armv6s
  • 尝试添加 armv7s。现在它说“文件是为存档而构建的,而不是被链接的架构(i386)”。嗯……这是怎么回事?为什么加armv7会有这种效果?
  • 我想你正在尝试模拟器。在设备上试用。或删除派生数据并清理项目
  • 当你说我在模拟器上尝试时,不确定你的意思。我正在做产品 > 清洁,然后是产品 > 构建。是你的意思吗?这是一台远程计算机,macincloud.com,所以在设备上尝试并不容易,但我当然想关闭模拟器。
  • 尝试删除派生数据,结果相同

标签: ios xcode


【解决方案1】:

您确实将架构师设置为 armv7、arm64,因此只需在调试模式下将 Build Active Architecture Only 更改为 YES:

调试模式:是

释放模式:NO(默认值)

所以在调试时你只会为当前设备构建

【讨论】:

  • 另外,i86_64 是否在发布模式下使用?如果不是(我认为不会),它是如何被删除的,我可以在调试模式下做同样的事情吗?或者,我可以完全删除调试模式吗?在线运行的调试模式对我有什么好处吗?
  • 为什么在我尝试构建存档时它甚至尝试这样做(模拟器)?
  • 嘿幼虫!!,谢谢伙计,你让我的一天过得很好!!! :)
  • just change Build Active Architecture Only to YES 为我工作
【解决方案2】:

我在这里回答了这个问题:https://stackoverflow.com/a/65307436/5303139

同样的回答者

对于一个 iOS 项目,你有以下架构:arm64armv7armv7si386x86_64

x86_64, i386 用于模拟器。

您的问题可能是您使用的框架是为 iOS 构建的,而不是模拟器。

要解决此问题,您可以绕过构建框架并使用 lipo 命令行。

第一lipo -info [The library.framework location]

使用示例lipo -info /Users/.../library.framework/LibrarySDK

示例输出

Architectures in the fat file: /Users/.../library.framework/LibrarySDK are: i386 x86_64 armv7 arm64 

您将获得用于该框架的架构列表。

第二个:我们需要从模拟器架构中剥离框架,并制作该框架的 2 个版本(1 个用于 iOS 设备,1 个用于模拟器)

使用lipo -remove [architecture] [location] -o [output_location]

示例lipo -remove i386 /Users/.../SDK -o /Users/.../SDK_Output_Directory

转到您选择的输出目录以获取新生成的 SDK,而无需删除架构,以验证您是否可以使用与上述相同的 lipo -info 命令

您可以在新创建的 SDK 上使用相同的 lipo remove 命令,但使用其他架构 lipo -remove x86_64 ...,您将获得一个仅适用于 iOS 设备的 SDK

第三:获取最终的 SDK 并将其重命名为“SDK_Name_IOS”并使用它。

编码愉快!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2021-06-27
    • 2021-04-13
    相关资源
    最近更新 更多