【问题标题】:Can you make Xcode 5.1 target dependencies build only valid architectures?你能让 Xcode 5.1 目标依赖项只构建有效的架构吗?
【发布时间】:2014-04-15 09:56:42
【问题描述】:

Apple 在 Xcode 5.1 中使 $(ARCHS_STANDARD) 包含 arm64。如果您的项目不支持 arm64,您只需将架构构建设置更改为 $(ARCHS_STANDARD_32_BIT),它就不会构建 arm64。

但是,如果您有一个使用 $(ARCHS_STANDARD) 的目标依赖项,它将构建 arm64,并且您会收到错误,因为您的项目需要不是 arm64 的符号。

有没有办法让您的目标依赖项了解您正在构建的对象,以便构建有效的架构?

【问题讨论】:

    标签: ios objective-c xcode llvm xcode5.1


    【解决方案1】:

    我们的快速解决方法是将 Architectures 条目保留为 $(ARCHS_STANDARD),但将 Valid Architectures 更改为 armv7armv7s,直到我们使用第三方库使用已更新。

    【讨论】:

    • 您的意思是您更改了依赖项或 iOS 项目的有效架构?我尝试将有效架构设置更改为 armv7、armv7s,但看起来目标依赖项仍在构建 arm64。
    • 在我的项目构建设置中,架构是 $(ARCHS_STANDARD),有效架构是 armv7 和 armv7s。我的目标是一样的。我还将 Build Active Architectures Only 设置为 NO。我们的第三方库是闭源的,所以我们必须等待他们发​​布 arm64 版本,只要他们有时间。如果您的工作区中有任何其他包含的项目,您可能需要相应地更新设置。
    • 是的,我们包括了大约六个,理想情况下,我不必为了将项目设置设置为不构建 arm64 而分叉它们。奇怪的是,这不是一个简单的设置,因为如果某个第三方给你一个 arm64 位兼容的库,而你的项目只有 32 位,你会被搞砸的。
    • 通常你会得到包含对两者的支持的胖二进制文件,它应该可以正常工作。
    • 对不起,如果他们给了你一个项目来包括。您唯一的选择是通过将 Build Active Architectures 设置为 NO 或将 Architectures 设置为仅 32 位来修改项目。无论哪种方式,您都会不必要地修改项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    相关资源
    最近更新 更多