3

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

我应该怎么办 ?:/

谢谢

4

3 回答 3

8

根据苹果的发布说明,请参阅以下注释点。

笔记:

在 Xcode 5.1 中打开现有项目时,请注意以下架构问题:

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

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

在此处输入图像描述

来自post1 , post2的参考

于 2014-03-13T06:32:30.727 回答
1

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

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

使用 cocoapods 禁用 arm64 和“isa”错误

对于我自己,因为我使用可可豆荚来获取 JSONKit,所以我需要在我的豆荚项目中更改这些构建设置。我发现了一篇关于在可可豆中禁用 arm64的博文,我修改了该帖子中的代码以禁用“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
于 2014-03-25T03:48:04.823 回答
0

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

于 2014-03-12T22:54:48.740 回答