從reMail中擷取MailCore架構

來源:互聯網
上載者:User

 如果你下載了MailCore,那麼你下載可能在為編譯MailCore而苦惱。
reMail被Google收購後,終於開源了。儘管它運行時也會出錯(崩潰) ,但經過簡單的處理後,它好歹還是編譯通過了。 由於reMail使用了MailCore架構,因此,我們可以從reMail中獲得一個可編譯的MailCore架構。

根據reMail安裝指南,reMail需要安裝 Mercurial和Git,如果你的機器上沒有安裝這兩個東西,你可以在這裡下載它們:

Mercurial:http://mercurial.selenic.com/

Git:http://code.google.com/p/git-osx-installer/

然後,我們就可以下載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架構添加成功。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.