从reMail中获取MailCore框架

如果你下载了MailCore,,那么你下载可能在为编译MailCore而苦恼。因为无论你是根据 https://github.com/mronge/MailCore还是上的介绍,你都无法编译该项目,总是有无数莫名其妙的编译错误等你解决。

reMail被Google收购后,终于开源了。尽管它运行时也会出错(崩溃) ,但经过简单的处理后,它好歹还是编译通过了。 由于reMail使用了MailCore框架,因此,我们可以从reMail中获得一个可编译的MailCore框架。

根据reMail安装指南,reMail需要安装 Mercurial和Git,如果你的机器上没有安装这两个东西,你可以在这里下载它们:

Mercurial:

Git:

然后,我们就可以下载reMail项目了:

hg clone https://remail-iphone.googlecode.com/hg/remail-iphone

进入下载目录remail-iphone,运行脚本:

sh pull_dependencies.sh

该命令会自动下载reMail项目依赖的两个主要框架three20和MailCore。 这两个整个过程会比较长(1个多小时),大家做好心理准备。

pull_dependencies.sh脚本执行完毕,可以在 remail-iphone的同级目录下,看到两个新增的目录:three20合MailCore,其中包含了两个框架的源文件。

一、编译Remail

打开ReMailIPhone.xcodeproj,Scheme选择“ReMail”,Build。

由于 Xcode4.2的一个bug,当编译到CTCoreFolder.m文件时,编译器会报一个错误:

Implicit declaration of function ‘uid_list_to_env_list’ is invalid in C99

这是由于,当编译器在看见函数’uid_list_to_env_list’定义时,未发现该函数原型。解决方法是在函数定义之前加入函数原型声明。

注意:要解决此错误,可以把函数原型插入到类的interface声明内(.h头文件),也可以把函数原型插入到类的implementation语句之前(.m文件)。

打开CTCoreFolder.h头文件,在@end语句之前插入函数原型声明,即可解决此错误。

Build,ReMail即可在模拟器中运行。

二、拷贝MailCore项目

现在,可以把MailCore项目移植到你的Xcode项目中了。

新建Xcode项目(本例中的项目名称未TestApp),将MailCore整个目录拷贝到新项目的文件夹下(在Finder中操作),如下图所示:

–TestApp

—-MailCore

—-TestApp

—-TestApp.xodeproj

将MailCore文件夹从上图的Finder窗口拖到TestApp的Xcode出口中

。打开TestApp的Build Phases窗口,将MailCore项目增加为TestApp的依赖项目(子项目),如下图所示:

在LinkedBinary With Libraries中增加如下框架和库:

转到Build Settings窗口,在Header Search Paths中增加如下头文件路径:

注意:勾选Recursive选择。

编译TestApp,如果没有任何错误,表明MailCore框架添加成功。

带着感恩的心启程,学会爱,爱父母,爱自己,爱朋友,爱他人。

从reMail中获取MailCore框架

相关文章:

你感兴趣的文章:

标签云: