Cocoapods方式匯入OC庫和swift庫
阿新 • • 發佈:2019-02-13
Cocoapods 是 iOS 應用的包管理程式。它簡化了第三方庫的匯入並且將幫你處理庫之間的依賴。在這個教程中,我們將會使用 cocoa pods
匯入 Alamofire(swift庫)和AFNetworking(OC庫)這兩個個第三方庫。本教程的環境基於
iOS8 和 Xcode7.3.1。
開啟 Xcode 使用
Single View Application 建立一個專案。專案名稱可以使用
IOS8SwiftCocoapodsTutorial,其他配置項可以自定義。選擇 Swift 作為開發語言,並且裝置項選中
iPhone。
新建專案 咱們的這個教程中會用到一個字型,可以從 這裡下載,並加入到專案中。接下來,關閉 Xcode 專案並開啟終端。首先我們需要安裝
cocoa pods。這個過程將會用到 ruby環境,而 Mac OS X 系統已經自帶了 ruby。ruby -v檢視當前Ruby的版本。在終端中輸入如下命令:
sudo gem install cocoapods
譯者注:因某些原因不能安裝成功的同學,
ERROR: Error installing cocoapods:
activesupport requires Ruby version >= 2.2.2.
可以參考唐巧的這篇部落格
升級ruby版本
(如果出現ruby版本升級問題,可以參考ruby升級筆記 )
然後再次執行sudo gem install cocoapods
下一步clone 專案
pod setup --verbose
一、匯入swift庫Alamofire
首先,搜尋需要的第三方庫是否支援 CocoaPods ,執行命令:
新建專案CocoaPodsDemo然後進入 Xcode 專案檔案目錄,輸入命令pod init新建
Podfile 檔案
pod init
之後需要編輯 Podfile 檔案,讓它包含 FontBlaster 這個第三方庫。使用如下命令開啟它 open -a Xcode Podfile
不要使用文字編輯去編輯Podfile,使用Xcode編輯,或者使用終端敲命令去編輯。
編輯後的 Podfile 檔案如下
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'CocoaPoasDemo' do
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'AlamofireImage', '~> 2.0'
end
譯者注:這裡的版本號 1.0.8 為譯者加上,FontBlaster 已經支援 Swift 2.0,如果不指定為該版本號,會下載最新的 FontBlaster,這要求 Xcode 7.x版本。如果你使用的是 Xcode6.x 版本,需要指定該版本號。
專案的 target 是 iOS8.0,use_frameworks! 這句是必須的,因為 Swift 使用的是框架而不是靜態庫。pod
'FontBlaster' 告訴 Cocoapods 你想在專案中使用 FontBlaster 。儲存對檔案的修改,並在終端中輸入以下命令pod install,但這裡又會遇到問題了,上網找了之後發現用這個命令已經不行了,用 pod install
--verbose --no-repo-update 就可以,前面的被牆啦!!
bogon:CocoaPoasDemo frosoft$
pod install --verbose --no-repo-update
.........
.........
Sending stats
- Alamofire, 3.4.2
- AlamofireImage, 2.4.1
Pod installation complete! There is 1 dependency from the Podfile and 2 total
pods installed.
bogon:CocoaPoasDemo frosoft$
FontBlaster 和相關依賴都會被自動安裝。
完成後用Xcode開啟.xcworkspace白色檔案,不再開啟.xcodeproj那個藍色檔案
開啟後工程目錄如下,紅色框內仍然是工程檔案:
測試是否引入成功: 在swift檔案中新增import Alamofire沒有報錯則成功。 1、先關閉工程,修改Podfile,新增 pod 'AFNetworking',然後update一下podfile再開啟工程 target 'CocoaPoasDemo' do source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'AlamofireImage', '~> 2.0' pod 'AFNetworking' end swift語言使用cocoapods配置Podfile檔案時要加上use_framework!這句程式碼,作用是把三方庫打包成靜態庫
2、建立一個橋接檔案Bridging-Header.h標頭檔案
3、修改標頭檔案內容 #ifndef CocoaPoasDemo_Bridging_Header_h #define CocoaPoasDemo_Bridging_Header_h #import "AFNetWorking.h" #endif /* Bridging_Header_h */ 4、設定一個User Header Search Paths,否則在需要用三方庫的地方是調不出來的。在target——>Build Setting裡找到search Paths,雙擊User Header Search Paths後面的空白處,設定目錄路徑為${SRCROOT} ,後邊選擇recursive。
5、測試匯入是否成功:import AFNetworking
新建專案 咱們的這個教程中會用到一個字型,可以從
1 | $ pod search Alamofire |
之後需要編輯 Podfile 檔案,讓它包含 FontBlaster 這個第三方庫。使用如下命令開啟它 open -a Xcode Podfile
開啟後工程目錄如下,紅色框內仍然是工程檔案:
測試是否引入成功: 在swift檔案中新增import Alamofire沒有報錯則成功。 1、先關閉工程,修改Podfile,新增 pod 'AFNetworking',然後update一下podfile再開啟工程 target 'CocoaPoasDemo' do source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'AlamofireImage', '~> 2.0' pod 'AFNetworking' end swift語言使用cocoapods配置Podfile檔案時要加上use_framework!這句程式碼,作用是把三方庫打包成靜態庫
2、建立一個橋接檔案Bridging-Header.h標頭檔案
3、修改標頭檔案內容 #ifndef CocoaPoasDemo_Bridging_Header_h #define CocoaPoasDemo_Bridging_Header_h #import "AFNetWorking.h" #endif /* Bridging_Header_h */ 4、設定一個User Header Search Paths,否則在需要用三方庫的地方是調不出來的。在target——>Build Setting裡找到search Paths,雙擊User Header Search Paths後面的空白處,設定目錄路徑為${SRCROOT} ,後邊選擇recursive。
5、測試匯入是否成功:import AFNetworking