无法在 Xcode 6 中构建 - Apple 框架中的 ARC 问题

Posted

技术标签:

【中文标题】无法在 Xcode 6 中构建 - Apple 框架中的 ARC 问题【英文标题】:Can't Build in Xcode 6 - ARC Issues in Apple Frameworks 【发布时间】:2014-10-09 16:43:18 【问题描述】:

更新到 Xcode 6 后,我无法再构建我的应用程序。 Xcode 会抛出如下错误和警告:

错误:

/Applications/Xcode-6.0.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreData.framework/Headers /NSManagedObjectContext.h:121:5: 指向没有明确所有权的非常量类型“id”

警告:

/Applications/Xcode-6.0.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Foundation.framework/Headers /NSString.h:206:4: 警告:'__strong' 仅适用于 Objective-C 对象或块 指针类型;这里的类型是 'const char *' [-Wignored-attributes]

错误在 CoreData.framework 中,警告在 Foundation.framework 中。

这是我的构建日志的链接:http://pastebin.com/RCgV8Pj1

我尝试通过从 Frameworks 目录拖放以及 Project->Build Phases 中的添加按钮来删除和重新添加我的框架。两者都没有修复错误。我还尝试删除 SharedPrecompiledHeaders 目录。我也看到了this,但他的修复对我不起作用。我的项目中没有“框架”目录。我什至重新安装了 Xcode 6。

我认为这是某个地方的构建设置错误,但我不知道会发生什么变化或应该更新什么。最初使用 Xcode 6 后,我也无法在 Xcode 5 中构建,但我恢复了我的 xcodeproj,它在旧版本中运行良好。

【问题讨论】:

【参考方案1】:

确保在项目设置或目标设置中的 FRAMEWORK_SEARCH_PATHS 中没有框架路径,因为它可能会导致从 iPhoneOS.platform 和 iPhoneSimulator.platform 中读取标头,从而导致编译期间出现警告并在链接期间导致错误。

如果您在项目中添加/更改框架,并且一旦重建 Xcode 的缓存,您也将失去编译项目备份的能力,因为错误在 Xcode级别。

见:

My answer in '__strong' only applies to objective-c object or block pointer types; type here is XXX" warning

【讨论】:

我最终不得不为此使用支持票,但这基本上是他们对我的项目所做的更改。他们删除了 FRAMEWORK_SEARCH_PATHS 中的“$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks”和“$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS. sdk/usr/lib" 在 LIBRARY_SEARCH_PATHS 中。【参考方案2】:

这似乎已通过升级到 OS X 10.10 GM 并重新安装 Xcode 6 得到解决。不确定哪一个实际上允许构建项目。

[更新]这并没有永久解决问题。大约 5 天后它又回来了。

【讨论】:

以上是关于无法在 Xcode 6 中构建 - Apple 框架中的 ARC 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何处理Xcode上传IPA文件后无法在后台架构版本中显示的问题?

如何发送在 Xcode 5 上创建但已迁移到 Xcode 6 的 Apple Beta 测试项目?

无法构建 xCode 项目:错误 Apple LLVM 9.0 错误组

无法使用 Chilkat 库构建项目

xcode 4.6 目标构建设置缺少“Apple LLVM 编译器 4.2 - ...”部分

XCode 6.0.1 上的 Apple Mach-O 链接器错误