我有一个项目在 XCode 6 beta 中编译得很好,但现在在 GM 中,它无法为 iOS 设备编译,并给出错误:
myController.m:393:9: No visible @interface for 'UIDevice' declares the selector 'initialize:'
在这一行:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
对于模拟器来说,它仍然可以完美编译;我也尝试过这些修复:
- 清理了整个项目并重新构建。
- 从 ~/Library/Developer/XCode 中删除了所有派生数据
- 重新安装XCode
- 检查 XCode 首选项并将命令行工具位置指向 XCode 6(XCode 5 仍然安装在计算机上,并且指向那里)
...但没有运气。编译时出现同样的错误。
帮助!随着 iOS8 的临近,我们的时间紧迫,这确实令人头疼。
PS:我们还在工作空间中使用 Cocoapods,因为它很有价值。
好吧,经过一番折腾后我解决了这个问题。该应用程序是一个 iOS 8 应用程序,带有嵌入式 Today 扩展。
原来,在添加Today Extension时,XCode添加了一个构建设置:
“启用模块(C 和 Objective-C”):是
我的项目和包含的应用程序目标都没有使用此构建设置,但将其设置为 YES 会导致与尝试自动链接框架(并失败)以及最终与头文件相关的各种相关奇怪错误消息有关的问题。
问题变得更加复杂,因为源文件既是包含应用程序的目标的成员,也是 Today 扩展的目标的成员。
希望此信息对其他人有帮助。
Carl
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)