When using the EmailComposer plugin to develop iOS apps on PhoneGap / Cordova, I've seen this error multiple times:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MFMailComposeViewController", referenced from:
objc-class-ref in EmailComposer.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Translation: MessageUI.framework is not linked to your project.
It is likely the framework used to be linked to your project and was unintentionally removed. I like to blame the latest plugin I've added for removing the link.
Adding MessageUI.Framework To Your Project
Step 1: Find where to link libraries inside of Xcode:
Step 2: Open 'add library' dialog:
Step 3: Type "message" to find the MessageUi.Framework. Add library to project.
Step 4: Build.
That should do it.
I know PhoneGap / Cordova developers aren't always comfortable in Xcode so I figured I'd take some time and share this quick fix.
This post was written using Markdown for Sitecore.