XMPPFramework框架的導(dǎo)入有兩種方式
1.通過cocopods進(jìn)行配置,比較方便,但某些時(shí)候可能會配置不成功.
2.手動配置.需要導(dǎo)入XMPPFramework礦建并配置相關(guān)依賴以及一些處理,較為麻煩.
**下面介紹的就是手動配置XMPP框架 **
簡介
在提供的Xcode示例項(xiàng)目中,包含有在iOS中使用XMPPFramework的演示項(xiàng)目。您可以在Xcode/iPhoneXMPP文件夾中找到它绵咱。該項(xiàng)目的設(shè)計(jì)并不是為了演示一個(gè)完整的商業(yè)應(yīng)用,而僅是為了演示如何使用XMPPFramework框架课蔬,并提供有iOS平臺上需要使用的具體代碼。您可以隨意修改及測試該項(xiàng)目郊尝,并瀏覽AppDelegate文件中的代碼二跋。提示,該示例程序僅使用了框架中的一小部分功能流昏。
本文檔提供了如何將XMPPFramework框架添加到iOS項(xiàng)目的詳細(xì)說明扎即,您也可以參照iPhoneXMPP項(xiàng)目中的具體引用。
提示:請按照以下步驟逐一執(zhí)行况凉,而不要省略或者跳過某個(gè)步驟谚鄙。
第一步
使用源代碼管理器檢出最新版本的項(xiàng)目。默認(rèn)的分支包含有最新穩(wěn)定版本的代碼刁绒。
github地址:https://github.com/robbiehanson/XMPPFramework
下載對應(yīng)的壓縮包并解壓縮第二步
盡管本框架包含有對其他項(xiàng)目的依賴闷营,不過您已無需再使用git去分別克隆這些項(xiàng)目。在克隆XMPPFramework框架的同時(shí)知市,這些項(xiàng)目會被同時(shí)克隆并保存在Vendor文件夾中傻盟。接下來,我們將逐一確認(rèn)每一個(gè)依賴嫂丙,以確保在完成最后一步工作之后娘赴,能夠正常編譯項(xiàng)目。
第一個(gè)依賴是CocoaLumberjack跟啤,這是XMPPFramework框架使用的日志框架诽表。
(有關(guān)日志框架的進(jìn)一步信息,可以參見XMPPFramework的介紹文檔隅肥,另外在Lumberjack的項(xiàng)目主頁中也提供有大量的文檔关顷。)
將Vendor/CocoaLumberjack復(fù)制并添加入Xcode項(xiàng)目。
Lumberjack不包含任何子依賴或特殊要求的框架武福。
現(xiàn)在,請確認(rèn)您的項(xiàng)目可以正常編譯痘番。第三步
第二個(gè)依賴是CocoaAsyncSocket捉片,這是XMPPFramework框架使用的底層網(wǎng)絡(luò)框架平痰。
將Vendor/CocoaAsyncSocket復(fù)制并添加入Xcode項(xiàng)目。
要使用此依賴伍纫,需要將蘋果的CFNetwork框架添加到項(xiàng)目宗雇。
要使用此依賴,還需要將蘋果的Security框架添加到項(xiàng)目莹规。
現(xiàn)在赔蒲,請確認(rèn)您的項(xiàng)目可以正常編譯。第四步
第三個(gè)依賴是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)目可以正常編譯。
第五步
第四個(gè)以及最后一個(gè)依賴是libidn篙挽。將以下文件添加到項(xiàng)目中:
Vendor/libidn/idn-int.h
Vendor/libidn/stringprep.h
Vendor/libidn/libidn.a
上述最后一個(gè)文件libidn.a是一個(gè)靜態(tài)庫荆萤,支持包括:x86*64、i386嫉髓、ppc观腊、armv6、armv7等多種架構(gòu)算行。因而該文件的個(gè)頭也不小梧油,大約有1.7M。但是不用擔(dān)心州邢,編譯器會在編譯時(shí)僅提取架構(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文檔。