2011-05-09 70 views
28

首先,我使用的是XCode 4.0.2。MFMailComposeViewController不会链接模拟器

好的,这是我的问题。我可以为MFMailComposerViewController创建Apple示例程序并在模拟器中运行它(我知道它不会发送电子邮件,我只是担心它会生成)。这似乎工作正常。然而,当我尝试在我的应用程序中构建时,我收到以下消息。

ld: warning: ignoring file /Users/lloyd/Projects/iOS/simpleApp/MessageUI.framework/MessageUI, 
    missing required architecture i386 in file 
    Undefined symbols for architecture i386: "_OBJC_CLASS_$_MFMailComposeViewController", referenced from: 
    objc-class-ref in MailData.o 
ld: symbol(s) not found for architecture i386 
collect2: ld returned 1 exit status 

SOLUTION

寻找 “生成设置”(基本和复合)我看到了,我不得不 “框架搜索路径” 设置。这很奇怪,因为我从不记得设置它。删除它可以解决问题。

我现在可以为模拟器和目标都构建。注意:您不能从模拟器发送电子邮件,但您仍然应该能够运行代码(如果有意义的话)。

+0

这是解决...嘿... – 2011-06-02 15:51:25

+17

您还可以得到这个错误,如果你不按添加MessageUI.framework:[链接]( http://stackoverflow.com/questions/3352664/how-to-add-existing-frameworks-in-xcode-4) – Cephi 2011-06-07 17:35:35

+0

是的。但情况并非如此,这是令人生厌的部分。 – 2011-06-22 15:20:30

回答

4

SOLUTION

寻找“生成设置”(基本和复合)我看到了,我不得不“框架搜索路径”设置。这很奇怪,因为我从不记得设置它。删除它可以解决问题。

我现在可以为模拟器和目标都构建。注意:您不能从模拟器发送电子邮件,但您仍然应该能够运行代码(如果有意义的话)。

这是解决我的问题:)

+0

THAAAAANKK YOUUUU,我生气了,但我想我现在知道为什么发生了,我正在拖拽和从另一个项目的框架到这个... – AntonijoDev 2013-11-28 08:18:43

83

在Xcode中,转到您的目标的构建阶段选项卡。确保你看到MessageUI.framework。如果不在那里点击+添加一个新的框架。

+1

MessageUI.framework是构建的一部分 - 见上面我有“解决方案”。 – 2011-09-22 13:51:03

+0

谢谢!我忘了添加框架... – Heartinpiece 2012-02-07 06:02:29

+2

我意识到这是一个古老的问题,但对于从网络搜索出现的其他人来说,问题可能是您有多个目标,并且您忘记将框架添加到所有目标。这发生在我身上。 – 2012-03-09 00:45:23

1

添加MessageUI.framework到项目链接的框架和库