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

更新:

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


当前回答

在我的案例中,pod更新并没有以某种方式更新项目。所以我必须自己做,添加MBProgressHud到OtherLinkerFlags。

其他回答

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

我也遇到了这个问题,我通过检查编译源和链接二进制库是否包含了我所需的所有文件/库/框架来修复它。

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

当我打开同一个项目两次时,我就遇到了这个问题,只有一个项目是原始的,另一个是从git url克隆的。

“产品”>“清洁”解决了这个问题。

补充对我有用的东西,以防其他人有同样的问题,并最终在这里结束。我有一个旧的项目,CLANG_ENABLE_MODULES设置为No。经过几个小时的挫折,我比较了一个工作项目,发现我已经在我的LLVM构建设置下启用模块设置为no。将此设置为Yes解决了我的问题,应用程序构建良好。

项目设置->构建设置->搜索“模块”并更新启用模块(C和Objective-C)为YES。