我已经导入框架从应用程序发送电子邮件在后台即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,我发现当你实现Cocoapods并打开你的项目的。workspace时,你最终会得到Xcode项目目标和那些你在同一个文件中实现的Pods目标。当时的情况是,有些。m同时被双方使用。当我在Build Phases >> Compile Sources中删除了Xcode目标的重复部分后,它工作得很好。

其他回答

当我从另一个项目中拖放一些源文件时,我得到了这条消息。当我删除它们,然后从文件菜单中通过“添加文件…”添加它们时,它没有出现错误。

如果你在xcode中导入其他项目,如果当前项目和导入项目在编译器源中都有相同的文件,那么只需在“构建阶段”设置中删除当前项目中的相同文件。这对我很管用。

如果你的类的.m文件没有列在目标的“Build Phases”选项卡的“Compile Sources”步骤下,你就会得到这种类型的错误。通常Xcode会为你做这个,但有时它会丢失图形,你需要手动添加.m文件。

这样做:

TargetSettings ->构建阶段->编译源->添加你的。m类->构建和运行

在我的项目中,我在一个增强现实项目中使用Cocoapods,我发现当你实现Cocoapods并打开你的项目的。workspace时,你最终会得到Xcode项目目标和那些你在同一个文件中实现的Pods目标。当时的情况是,有些。m同时被双方使用。当我在Build Phases >> Compile Sources中删除了Xcode目标的重复部分后,它工作得很好。

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