我已经导入框架从应用程序发送电子邮件在后台即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中的字段

更新:

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


当前回答

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

其他回答

当我遇到同样的问题时,我忘记添加“编译版本的库(扩展名为.a)”。通常我们会在Build Phases的Target Dependency中添加导入项目的库,但是我们忘记在Link Binary with Libraries in Build Phases中添加“compiled library”。

是的,这和艾伦说的有关…在源文件的Utilities部分中查找TargetMembership。有一个复选框将该文件与项目关联起来。检查这个也为我解决了这个问题。

我也有同样的问题。我添加了2个框架,我需要构建阶段。 希望这对你有所帮助!

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

最后试试这个:

所以我尝试了本页上的所有建议。没有工作. .我的问题是通过遵循本教程中的步骤开始的,该教程教授如何链接静态库。与我的样本项目说明工作良好..但后来在我的实际项目中,我开始得到上面的错误。

所以我所做的就是通过上述教程的每个步骤,并在每个步骤之后构建。令人不快的台词是这样的: 添加-all_load到构建设置->其他链接标志

原来这个标志曾经被推荐用于将类别链接到静态库。但后来发现这个标志不再需要Xcode 4.2+..(同样适用于-force_load标志..其他文章也推荐过)..