我有一个使用CoreText框架的应用程序。我能够在iPhone和iPad 1和2上成功运行该应用程序。
但是我无法在xCode iPhone / iPad模拟器中运行该应用程序。我收到以下错误消息:
ld:警告:忽略文件/Users/croydonbod/Documents/iDevelopment/MyApp/CoreText.framework/CoreText,文件是为不支持的文件格式构建的,而不是所链接的体系结构(i386)
架构i386的未定义符号: “_CTFontCreateWithName”,引自: - 在View.o中查看drawRect:] “_CTFramesetterCreateWithAttributedString”,引自: - 在View.o中查看drawRect:] “_CTFramesetterCreateFrame”,引自: - 在View.o中查看drawRect:] “_CTFrameGetVisibleStringRange”,引自: - 在View.o中查看drawRect:] “_CTFrameDraw”,引自: - 在View.o中查看drawRect:] “_kCTFontAttributeName”,引自: - 在View.o中查看drawRect:] “_kCTForegroundColorAttributeName”,引自: - 在View.o中查看drawRect:] ld:找不到架构i386的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
有谁能说明为什么会这样?
谢谢。
答案 0 :(得分:8)
您似乎将将CoreText框架文件从SDK复制到您的应用程序中而不是弱链接框架(这意味着适当的框架将为设备或模拟器正确加载)。
从项目中删除CoreText框架并重新添加,确保 取消选中 “将项目复制到目标文件夹”复选框(如果出现)和CoreText添加框架,确保为项目中的CoreText框架设置“相对于SDK”位置。以下是为UIKit框架设置的方法: