【问题标题】:Remove arm64 in Xcode 5.1在 Xcode 5.1 中移除 arm64
【发布时间】:2014-03-12 12:38:10
【问题描述】:

我正在使用一个不能在 Xcode 5.1 上编译的子模块 (JsonKit),因为它使用了一个折旧的赋值 (isa)。显然,这个问题只出现在arm64上。由于我不需要 arm64,有没有办法在此子模块更新之前将其删除?

我该怎么办? :/

谢谢

【问题讨论】:

标签: ios arm64 xcode5.1


【解决方案1】:

根据apple's release note,请看以下注意点。

注意:

打开您的 Xcode 5.1 中的现有项目:

  • 为所有架构构建时,删除任何显式 架构设置并使用默认的标准架构 环境。对于以前使用“标准”选择加入的项目 包括 64 位的架构,切换回“标准” 架构”设置。
  • 首次打开现有项目时,Xcode 5.1 可能 显示有关使用 Xcode 5.0 架构的警告 环境。选择警告提供了一个工作流程来修改 设置。
  • 不支持64位的项目需要专门设置 架构构建设置不包括 64 位。

所以你必须设置如下架构来支持库架构。

来自post1post2的参考

【讨论】:

  • 如果您需要更多帮助,我在另一个线程中发布了几乎相同的答案:stackoverflow.com/questions/22323039/…
  • @jsherk 嘿伙计,你在 3 月 24 日发帖,但我在 3 月 13 日发帖。为什么还要等你的答复?
【解决方案2】:

首先,如果你可以停止使用 JSONKit,你应该这样做!如果可以,切换到 NSJSONSerialization。

但我实际上有一个非常相似的问题。我正在使用可可豆荚导入使用 JSONKit 的依赖项 - 所以我也坚持使用它!正如 Mani 指出的那样,如果您不想为 arm64 构建 JSONKit,则需要将其从 ARCHS 构建设置中删除。此外,除非您禁用只是构建设置的“isa”错误,否则 JSONKit 将不再构建: CLANG_WARN_DIRECT_OBJC_ISA_USAGE = 否。

使用 cocoapods 禁用 arm64 和 'isa' 错误

对于我自己,因为我使用可可豆荚来获取 JSONKit,所以我需要在我的豆荚项目中更改这些构建设置。我在disabling arm64 in cocoa pods 上找到了一篇博文,我修改了该博文中的代码以禁用“isa”警告:(此代码位于您的 Podfile 中)

# Remove 64-bit build architecture and 'isa' errors from Pods targets
post_install do |installer|
    installer.project.targets.each do |target|
        target.build_configurations.each do |configuration|
            target.build_settings(configuration.name)['ARCHS'] = '$(ARCHS_STANDARD_32_BIT)'
            target.build_settings(configuration.name)['CLANG_WARN_DIRECT_OBJC_ISA_USAGE'] = 'NO'
        end
    end
end

【讨论】:

    【解决方案3】:

    打开您的项目 Build Settings,选择 Valid Architectures,然后删除 arm64

    【讨论】:

    • 我相信 Valid Architectures 表示将运行应用程序的设备上的芯片类型。如果您从 Valid Architectures 中删除 arm64,您的应用将无法在配备 64 位芯片的新 iPhone 或 iPad Air 上运行。
    • 不正确。 ARMv8 向后兼容 ARMv7 realworldtech.com/arm64/2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2019-03-08
    • 2016-04-14
    相关资源
    最近更新 更多