无法在 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 错误组