我已经导入框架从应用程序发送电子邮件在后台即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目标的重复部分后,它工作得很好。

除了Allan所做的,添加缺少的类,我遵循@emdog4的解决方案,通过在Xcode中构建阶段并在“链接二进制库”下单击+并选择“CoreData.framework”来添加核心数据库。这纠正了我的错误

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

我的情况有点不同

在前缀头中有一个定义缺失

#ifdef DEBUG
#   define TWDLog(fmt, ...) NSLog((@"\n%s\n" fmt), __PRETTY_FUNCTION__, ##__VA_ARGS__)
#else
#   define TWDLog(...)
#endif

搜索PROJECTNAME-Prefix。PCH并检查它是否在两个项目中都缺少一些东西