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

只需启用“仅构建活动架构”选项

>> Build Settings >> Build Active Architecture Only >>是

记住检查它们是否也在每个目标中启用

如果您在项目中添加了第三方库,而这些库需要项目中未包含的原生框架,则可能会出现这种类型的错误。

您需要查看新添加的库的.h和.m文件,并查看它需要什么框架,然后将这些框架包含到您的项目中(Target > Build Phases > Link Binary With Libraries)。

尝试删除框架,清理项目,将其添加回来并编译。 或 删除已被xcode在编译源代码中添加的类,清理项目,然后将其添加回build。

我的情况有点不同

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

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

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