XMPPFramework框架的導(dǎo)入有兩種方式
1.通過cocopods進(jìn)行配置,比較方便,但某些時候可能會配置不成功.
2.手動配置.需要導(dǎo)入XMPPFramework礦建并配置相關(guān)依賴以及一些處理,較為麻煩.
**下面介紹的就是手動配置XMPP框架 **
簡介
在提供的Xcode示例項(xiàng)目中,包含有在iOS中使用XMPPFramework的演示項(xiàng)目。您可以在Xcode/iPhoneXMPP文件夾中找到它。該項(xiàng)目的設(shè)計并不是為了演示一個完整的商業(yè)應(yīng)用,而僅是為了演示如何使用XMPPFramework框架,并提供有iOS平臺上需要使用的具體代碼。您可以隨意修改及測試該項(xiàng)目,并瀏覽AppDelegate文件中的代碼。提示,該示例程序僅使用了框架中的一小部分功能。
本文檔提供了如何將XMPPFramework框架添加到iOS項(xiàng)目的詳細(xì)說明,您也可以參照iPhoneXMPP項(xiàng)目中的具體引用。
提示:請按照以下步驟逐一執(zhí)行,而不要省略或者跳過某個步驟。
第一步
使用源代碼管理器檢出最新版本的項(xiàng)目。默認(rèn)的分支包含有最新穩(wěn)定版本的代碼。
github地址:https://github.com/robbiehanson/XMPPFramework
下載對應(yīng)的壓縮包并解壓縮第二步
盡管本框架包含有對其他項(xiàng)目的依賴,不過您已無需再使用git去分別克隆這些項(xiàng)目。在克隆XMPPFramework框架的同時,這些項(xiàng)目會被同時克隆并保存在Vendor文件夾中。接下來,我們將逐一確認(rèn)每一個依賴,以確保在完成最后一步工作之后,能夠正常編譯項(xiàng)目。
第一個依賴是CocoaLumberjack,這是XMPPFramework框架使用的日志框架。
(有關(guān)日志框架的進(jìn)一步信息,可以參見XMPPFramework的介紹文檔,另外在Lumberjack的項(xiàng)目主頁中也提供有大量的文檔。)
將Vendor/CocoaLumberjack復(fù)制并添加入Xcode項(xiàng)目。
Lumberjack不包含任何子依賴或特殊要求的框架。
現(xiàn)在,請確認(rèn)您的項(xiàng)目可以正常編譯。第三步
第二個依賴是CocoaAsyncSocket,這是XMPPFramework框架使用的底層網(wǎng)絡(luò)框架。
將Vendor/CocoaAsyncSocket復(fù)制并添加入Xcode項(xiàng)目。
要使用此依賴,需要將蘋果的CFNetwork框架添加到項(xiàng)目。
要使用此依賴,還需要將蘋果的Security框架添加到項(xiàng)目。
現(xiàn)在,請確認(rèn)您的項(xiàng)目可以正常編譯。第四步
第三個依賴是KissXML,由于蘋果并沒有針對iOS提供NSXML類以處理NSXMLDocument、NSXMLElement、NSXMLNode,因此我們使用KissXML取而代之。
將Vendor/KissXML復(fù)制并添加入Xcode項(xiàng)目。
由于KissXML內(nèi)部使用到libxml2。因此還需要告訴Xcode在哪里可以找到libxml2的頭文件,并且在編譯完成后鏈接libxml2編譯庫。要做到這兩點(diǎn),在項(xiàng)目的編譯設(shè)置中設(shè)置以下兩條編譯指令即可:
- Other Link Flags = -lxml2
- Header Search Paths = /usr/include/libxml2
執(zhí)行完上述操作后,請確認(rèn)您的項(xiàng)目可以正常編譯。
第五步
第四個以及最后一個依賴是libidn。將以下文件添加到項(xiàng)目中:
Vendor/libidn/idn-int.h
Vendor/libidn/stringprep.h
Vendor/libidn/libidn.a
上述最后一個文件libidn.a是一個靜態(tài)庫,支持包括:x86*64、i386、ppc、armv6、armv7等多種架構(gòu)。因而該文件的個頭也不小,大約有1.7M。但是不用擔(dān)心,編譯器會在編譯時僅提取架構(gòu)所需的內(nèi)容,并且只會提取被使用的那一部分,而由于框架中僅僅只用到了該靜態(tài)庫中很小的一部分內(nèi)容。換言之,該靜態(tài)庫的使用不會明顯增加您應(yīng)用程序的大小!
注釋:libidn的源代碼包含在libidn-1.15.tar.gz中。不過很顯然,沒有必要將其添加到項(xiàng)目之中。
執(zhí)行完上述操作后,請確認(rèn)您的項(xiàng)目可以正常編譯。第六步
將以下文件夾復(fù)制并添加入Xcode項(xiàng)目:
Authentication
Categories
Core
Utilities
另外,還需將libresolv.dylib添加至Xcode項(xiàng)目。
執(zhí)行完上述操作后,請確認(rèn)您的項(xiàng)目可以正常編譯。
大功告成!!!
至此,您已經(jīng)準(zhǔn)備好在項(xiàng)目中使用XMPPFramework框架了。后續(xù)的相關(guān)操作請參見:Intro to XMPPFramework文檔。