我有一个使用 CoreText 框架的应用程序。我能够在 iPhone 和 iPad 1 和 2 上成功运行该应用程序。
但是我无法在 xCode iPhone/iPad 模拟器中运行该应用程序。我收到以下错误消息:
ld: 警告:忽略文件/Users/croydonbod/Documents/iDevelopment/MyApp/CoreText.framework/CoreText,文件是为不受支持的文件格式构建的,这不是链接的架构 (i386)
架构 i386 的 undefined symbol : “_CTFontCreateWithName”,引用自: -[View drawRect:] in View.o “_CTFramesetterCreateWithAttributedString”,引用自: -[View drawRect:] in View.o “_CTFramesetterCreateFrame”,引用自: -[View drawRect:] in View.o “_CTFrameGetVisibleStringRange”,引用自: -[View drawRect:] in View.o “_CTFrameDraw”,引用自: -[View drawRect:] in View.o “_kCTFontAttributeName”,引用自: -[View drawRect:] in View.o “_kCTForegroundColorAttributeName”,引用自: -[View drawRect:] in View.o ld:未找到架构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
谁能解释为什么会这样?
谢谢。
最佳答案
看起来您将 CoreText 框架文件从 SDK 复制到您的应用程序中,而不是弱链接框架(这意味着适当的框架将为设备或模拟器正确加载)。
从您的项目中删除 CoreText 框架并重新添加它,确保取消选中“将项目复制到目标文件夹”复选框(如果出现)并且一旦 CoreText添加框架后,请确保为项目中的 CoreText 框架设置“相对于 SDK”位置。以下是为 UIKit 框架设置的方式:
关于objective-c - CoreText 框架 - 应用程序无法在模拟器中运行 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367411/