我正在尝试从源代码构建TextualIRC客户端。
四月份,它在同一台OS X 10.7计算机上使用了当时最新的源代码和最新的XCode,对我来说很有效。现在它不起作用了。
错误消息示例
在类型为"NSArray*"的对象上找不到读取数组元素的预期方法
在类型为"NSDictionary*"的对象上找不到读取字典元素所需的方法
在类型为"NSMutableDictionary*"的对象上找不到写入字典元素所需的方法
我已经关闭了所有项目和目标的构建设置中的代码签名(通过将Code Signing Identity
设置为Don't Code Sign
),否则源代码是干净的。
错误是因为Mac OS X 10.8 SDK中引入了新功能。其中许多仍然向后兼容Mac OS X Snow Leopard 10.6。
Textual的Base SDK
构建设置设置为Current OS X
。假设其他开发人员使用的是Mac OS X Mountain Lion 10.8,他们将自动使用(目前最新的)10.8 SDK。即使10.8 SDK安装在10.7机器上,编译器也会选择10.7 SDK,因为此设置依赖于操作系统。
修复方法:在Textual的构建设置中,将Base SDK
更改为OS X 10.8
或Latest OS X (OS X 10.8)
,以便能够使用新功能
更改所有项目的设置,并确认该设置已应用于各自的目标:主项目(文本)、Blowfish加密框架,超链接处理器框架lowfish密钥控制扩展、Brag垃圾邮件扩展以及最后的系统档案器扩展本(标准版本)现在应该可以工作了。
相关承诺:转换为现代Objective-C,引入10.8 SDK功能。