我已经导入框架从应用程序发送电子邮件在后台即SKPSMTPMessage框架。有人能建议为什么下面的错误显示

Undefined symbols for architecture i386:

"_OBJC_CLASS_$_SKPSMTPMessage", referenced from:
  objc-class-ref in ConfirmController.o

"_kSKPSMTPPartContentTransferEncodingKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

"_kSKPSMTPPartMessageKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

"_kSKPSMTPPartContentTypeKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

框架的来源:-

锁定MFMailComposeViewController中的字段

更新:

答:只需将文件夹拖放到项目上,然后单击复制。 这就是选择项目复选框和目标复选框。


当前回答

当我遇到同样的问题时:

架构i386的未定义符号: _OBJC_CLASS_$_SKPSMTPMessage,引用自ConfirmController.o中的objc-class-ref

结果我忘记添加框架了。确切地说,是QuartzCore.framework。

其他回答

只检查有效架构和构建活动架构属性。

当我添加PSTCollectionviewcontroller时,我有同样的7个错误的问题。这个问题的一个解决方案是检查你的“xcode ->构建阶段->编译源”在这里添加你的所有”。M”文件..希望这篇文章对今后的用户有所帮助。

清洁对我来说很管用

你的框架是为armv(x)编译的吗?在我看来,它是为i386编译的,而i386的代码不能在iOS设备上运行。或者它是为armv(x)编译的,你试图在模拟器上运行它,这是i386代码。使用Akshay上面显示的构建设置,确保您的框架为将要运行的芯片正确编译。

如果你正在使用cocoapods,请确保你的目标的构建设置在其他链接器标志部分包含$(inherited)