Xcode 6 GM不会编译iOS设备,但在模拟器中很好 – 奇怪的错误信息
我有一个在XCode 6testing版中编译得很好的项目,但是现在,在GM中,它不会编译为iOS设备,并提供错误信息:
myController.m:393:9: No visible @interface for 'UIDevice' declares the selector 'initialize:'
在这一行:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
它仍然编译绝对好的模拟器; 我也尝试了这些修复:
- 清理整个项目并重新构build。
- 从〜/ Library / Developer / XCode中删除了所有派生数据
- 重新安装XCode
- 检查了XCode首选项,并将指定的命令行工具位置指向XCode 6(XCode 5仍安装在机器上,并指向此处)
…但没有运气。 编译时出现同样的错误。
帮帮我! 我们正处于紧张的时期,iOS8正在逼近,这真是令人头疼。
PS:我们也在工作区使用Cocoapods,这是值得的。
好的,我解决了这个问题。 有问题的应用程序是一个iOS 8应用程序,具有embedded式的今日扩展。
事实certificate,当添加Today Extension时,XCode添加了一个构build设置:
'启用模块(C和Objective-C':是的
我的项目和包含的应用程序目标都没有使用这个构build设置,但是将其设置为YES导致了与尝试自动链接框架(以及失败)以及最终与头文件相关的各种相关的奇怪错误消息的问题。
问题进一步复杂化,因为源文件既是包含应用程序的目标,也是今天扩展的目标的成员。
希望这个信息可以帮助别人。
卡尔