在Xcode 5.1中删除arm64

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

您想删除导致问题的代码吗?还是在询问如何将代码编译为非arm64? - Black Frog
我想问如何将代码编译为非arm64架构。 - Nicolas Roy
构建32位应用程序:https://dev59.com/Hn3aa4cB1Zd3GeqPd399 - ohho
可能是在Xcode 5.1中的Arm64架构的重复问题。 - M. Porooshani
这是一个重复的问题:在Xcode 5.1中使用arm64架构 - M. Porooshani
3个回答

8
根据苹果发布说明,请查看以下注意事项。
注意:
要在Xcode 5.1中打开现有项目时,请注意以下架构问题:
- 当为所有架构构建时,请删除任何显式的架构设置并使用默认的标准架构设置。对于以前使用“包括64位标准架构”的“标准架构”设置的项目,请切换回“标准架构”设置。 - 第一次打开现有项目时,Xcode 5.1可能会显示有关使用Xcode 5.0架构设置的警告。选择警告提供了一个修订设置的工作流程。 - 无法支持64位的项目需要将架构构建设置特别设置为不包括64位。
因此,您需要按以下方式设置架构以支持库架构。

enter image description here

参考自post1post2


如果你需要更多的帮助,我在另一个帖子中发布了一个几乎相同的答案:https://dev59.com/32Eh5IYBdhLWcg3whTsR#22580609 - jsherk
@jsherk 嘿,老兄,你在3月24日发布了帖子,但我在3月13日就已经发布了。为什么我们要等你的回答呢? - Mani

1

首先,如果你可以停止使用JSONKit,就应该这么做!如果可以的话,请转换到NSJSONSerialization。

但事实上,我有一个非常类似的问题。我正在使用cocoa pods导入一个使用JSONKit的依赖项 - 所以我也被困在其中!正如Mani所指出的那样,如果您不想为arm64构建JSONKit,则需要从ARCHS构建设置中删除它。此外,JSONKit不再构建,直到您禁用“isa”错误,这只是一个构建设置:CLANG_WARN_DIRECT_OBJC_ISA_USAGE = NO。

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

对于我自己而言,由于我使用cocoa pods获取了JSONKit,因此我需要更改我的Pods项目中的这些构建设置。我在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

0
打开你的项目构建设置,选择有效架构,然后移除 arm64。

我相信"有效架构"指的是设备芯片类型,即应用程序将在其中运行。如果从有效架构中删除arm64,则您的应用程序将无法在新款iPhone或iPad Air上运行,因为它们采用64位芯片。 - JScarry
1
错误。ARMv8 向后兼容 ARMv7 http://www.realworldtech.com/arm64/2/ - Jonathan Crooke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接