升级到 Xcode 4 和 iOS 4.3 后的 iPhone JSON 错误

Posted

技术标签:

【中文标题】升级到 Xcode 4 和 iOS 4.3 后的 iPhone JSON 错误【英文标题】:iPhone JSON Error After Upgrading to Xcode 4 and iOS 4.3 【发布时间】:2011-03-12 14:33:02 【问题描述】:

我刚刚更新到 Xcode 4 和 ios 4.3,但现在当我尝试构建/运行我的项目时,它返回以下 JSON SDK 错误:

ld: warning: ignoring file /var/folders/OV/OVQ5LuaPFY4lW0L0a9jdRk+++TI/-Caches-/com.apple.Xcode.501/CompositeSDKs/iphoneos-iPhoneOS4.3-dqtvoenrseczxwakgamuhnlmhcbu/usr/local/lib/libjson.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_SBJSON", referenced from:
      objc-class-ref in Neighbourhoods.o
      objc-class-ref in StreetLevel.o
      ...
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status

升级到 Xcode 4 后,它现在似乎正在尝试为发布而构建,而在旧版本中,我相信它是为调试而构建的,但我似乎看不到在哪里可以更改。

我在 ~/Library/SDKs/ 下安装了 JSON SDK

SDK 已添加到附加 SDK 部分,用于发布和调试。我还确保以下“其他链接器标志”也添加到发布和调试中:“-all_load -ObjC -ljson”。

检查/添加所有内容后,它仍然无法构建。

任何人都能够阐明这个问题?

【问题讨论】:

每当我在升级后遇到链接器错误时,我总是会进行完全卸载,然后删除开发人员文件夹。然后我只是重新安装,它似乎总是工作正常。 运气不好,我卸载了 Xcode,删除了 Developer 文件夹并重新安装,但仍然没有运气。 【参考方案1】:

我不确定为什么更新后它最终停止了工作,但我现在已经删除了 SDK,只是将源代码添加到项目中,并不理想,但它可以工作。

【讨论】:

查看我上面的答案,这是正确且更理想的解决方案 刚刚看了一下,所有这些设置都已经到位,所以我认为这不会解决我的问题。【参考方案2】:

我在构建第三方库时遇到了同样的错误,在 4.2.6 下它之前没有抱怨。打开库项目,进入菜单“项目-->编辑项目设置-->构建选项卡”并在“架构”下查看。

在子项“架构”和“有效架构”下检查它们是否包含对“armv7”的引用。如果没有,您将不得不选择/添加它。

对您的活动目标执行相同操作:菜单“Project --> Edit Active Target --> Build”。

进行更改后,再次构建,您应该不会出现链接器错误。

【讨论】:

【参考方案3】:

在更新 Xcode 4 后切换到 SDK 4.3 后,我的工作项目无法链接。我从目标架构中删除了 ARM7,只留下了 ARM6,并且修复了它。在黑暗中拍摄,但也许其他人也可以使用此解决方法。

【讨论】:

一开始我自己也尝试过,但我了解到 ARM7 是一种更新更快的架构,所以我试图找到一种解决方法并将其保留在原地。

以上是关于升级到 Xcode 4 和 iOS 4.3 后的 iPhone JSON 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 4.2 中包含低于 4.3 的 iOS SDK

Xcode 4.3 / iOS 5.1

Xcode:升级到 Xcode 4.4 后如何恢复 4.3 模拟器? [复制]

从 xcode3.2 升级到 xcode4.3.2 后的 Builderror

xcode 4.5 是不是支持 ios 4.3 模拟器或更早版本?

Xcode 4.5 与 iOs 6 在 iOs 4.3 中的问题