xcode第三方庫自動下載管理工具cocoapods和Carthage
程式碼倉庫工具介紹
不管是android studio還是xcode,如果沒有遠端程式碼倉庫工具支援,那麼你的專案引用的第三方庫,必須手動下載放到程式碼資料夾一起存放,複雜的話甚至還要額外做一些配置。
用上程式碼倉庫工具,您只需寫上需要依賴庫的名稱就可以,剩下的事情就由工具來幫你去下載相關檔案和相關配置。
xcode中,常用的有個倉庫工具:cocoapods和carthage。
cocoapods
安裝
mac os中預設並沒有cocoapods,需要手工安裝:
sudo gem install cocoapods
使用
1. 在xcode工程的程式碼根目錄,編輯Podfile,例子:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' target "myapp" do pod 'TTTAttributedLabel', '2.0.0' pod 'RegexKitLite-NoWarning', '1.1.0' pod 'hpple', '0.2.0' pod 'MBProgressHUD', '0.9' pod 'TPKeyboardAvoiding', '1.2.4' pod 'BlocksKit', '2.2.5' pod 'ReactiveCocoa', '2.3.1' pod 'MMMarkdown', '0.3' pod 'Masonry', '0.5.3' pod 'SDAutoLayout', '2.1.0' pod 'NYXImagesKit', '2.3' pod 'UIImage+BlurredFrame', '0.0.4' pod 'POP+MCAnimate', '2.0.1' pod 'PPiAwesomeButton', '1.5.2' pod 'FontAwesome+iOS', :git => 'https://github.com/alexdrone/ios-fontawesome' pod 'APParallaxHeader', '0.1.6' pod 'SDCAlertView', '2.5.2' pod 'MarqueeLabel', '2.5.0' pod 'TMCache', '2.1.0' #pod 'iVersion', '1.11.4' pod 'JazzHands', '2.0.0' pod 'SSKeychain', '1.2.3' pod 'evernote-cloud-sdk-ios', '2.0.2' pod 'UMengAnalytics', '4.2.4' pod 'FLEX', '~> 2.0', :configurations => ['Debug'] pod 'UMengUShare/Social/WeChat', '6.4.5' pod 'UMengUShare/Social/QQ', '6.4.5' pod 'UMengUShare/Social/Sina', '6.4.5'
2. 下載、更新相關庫
在Podfile所在路徑,使用終端命令列輸入:
pod update
3.包含使用的庫的標頭檔案
因為搜尋路徑以及設定好,只需import就行,例如:
#import “abc.h”
carthage
安裝
到carthage開源官網下載一個pkg檔案在mac os中安裝即可。
如果不便,我上傳分享了一個:carthage下載
使用
1.在原始碼工程根路徑建立Cartfile,內容例子:
github "libgit2/objective-git" github "AFNetworking/AFNetworking" ~> 3.0 github "Monsory/Monsory"
2.下載、更新相關庫
在Cartfile所在路徑,使用終端命令列輸入:
carthage update
令成果後,必要時候會建立相關目錄,其中兩個目錄:
"Carthage/Checkouts目錄:從github獲取的原始碼
"Carthage/Build目錄:編譯出來的Framework二進位制程式碼庫
3.配置
3.1 開啟專案,點選Target -> Build Phases -> Link Library with Libraries選擇Carthage/Build目錄中要匯入的framework
3.2 新增編譯的指令碼:
(1)點選Build Phases,點選“+” -> New Run Script Phase
(2)新增新增指令碼 /usr/local/bin/Carthage copy-frameworks
(3)新增"Input Files" $(SRCROOT)/Carthage/Build/iOS/AFNetworking.framework
本文結束。