Masonry 和 CocoaPods 介紹及安裝步驟
阿新 • • 發佈:2019-02-02
Masonry 和 cocopods 介紹及安裝步驟
Masonry 是什麼、有什麼用?
- 作用:一個輕量級的佈局框架, 封裝了OC的自動佈局。
- 特點:採用鏈式語法、簡潔明瞭、可讀性高。
- 平臺:支援IOS、OSX。
安裝方法(兩種方法):
- 方法一、從github下載原始碼匯入專案。(測試版本: Masonry 0.6.1)
- 方法二、用cocopods管理。
- 本文紹介方法一及cocopods的安裝和使用,方法二測試沒有成功過,待續。
從github下載原始碼匯入專案。(測試版本: Masonry 0.6.1):
- 總步驟有:獲取原始碼、將原始碼加入專案、定義兩個巨集、引用Masonry.h。
- 解包後將Masonry資料夾複製到自己的專案資料夾裡;
- 用XCODE開啟自己的專案,將Masonry資料夾拖入專案,選擇COPY;
- 定義兩個巨集:
#define MAS_SHORTHAND //use Masonry without the 'mas_' prefix
#define MAS_SHORTHAND_GLOBALS //enable auto-boxing for default syntax
- 引用標頭檔案即可使用:
#import "Masonry.h"
- 可新增程式碼自動完成: 原始碼解包後複製CodeSnippets資料夾內的所有檔案到~/Library/Developer/Xcode/UserData/CodeSnippets即可。
- 注:步驟4和5可以用一個PCH檔案實現專案的所有檔案自動引用相關定義。
另外原始碼包解開後有一個README.MD檔案,可以看看裡面的 ‘## Installation’ 一節
* Xcode6/7 中新增 pch 檔案的步驟:*
- 在專案裡 (建議新增到 Supporting Files 組裡) 新增一個.pch檔案:
- 建立檔案: right clicked > New File > IOS或OSX > Other > PCH FILE > NEXT > 設定一個名字然後儲存.
- 將pch檔案完事路徑新增到XCODE6: project > Build Settings > Search “prefix” > find ‘Prefix Header’, enter ‘$(SRCROOT)/path/xxx.pch’。(不要引號, build , release 兩個都要新增);
- 將Precompile Prefix Header為YES;
- Clean 並且 build 你的專案.
- 配置”xxx.pch檔案內容”, 如果一切正常,即可使用:
- xxx.pch內容:
#ifdef __OBJC__
//define this constant if you want to use Masonry without the 'mas_' prefix
#define MAS_SHORTHAND
//define this constant if you want to enable auto-boxing for default syntax
#define MAS_SHORTHAND_GLOBALS
#import "Masonry.h"
#endif
cocopods是什麼有什麼用?
- 作用:下載、管理IOS(測試過OC專案)專案的第三方庫,建立一個Xcode的workspace來將這些第三方庫和我們的工程相連線。
- 特點:自動化的、集中的、直觀的管理第三方開源庫。
安裝CocoaPods:
CocoaPods需要Ruby環境,OSX自帶。直接執行命令:
$ sudo gem install cocoapods
備註:蘋果系統升級 OS X EL Capitan 後改為
$sudo gem install -n /usr/local/bin cocoapods
安裝結束的時後,執行以下命令:
$ pod setup
注意: 會下載100M多流量, 有點久, 可用 Activity Monitor 看看進度.
安裝可能遇到的問題:
- 如果沒有反應,可能是https被牆,用以下命令更換域名:
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -a http://ruby.taobao.org/
//要想驗證是否替換成功了,可以執行:
$ gem sources -l
//正常的輸出是:
*** CURRENT SOURCES ***
https://ruby.taobao.org/
http://ruby.taobao.org/
- gem版本過老
gem是管理Ruby庫和程式的標準包,如果它的版本過低也可能導致安裝失敗,解決方案自然是升級gem,執行下述命令即可:
$ sudo gem update --system
- 執行 pod setup 報錯:
/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (= 0) among 6 total gem(s) (Gem::LoadError)
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'
這就是路徑設定的問題,執行下列命令解決問題:
$ rvm use ruby-1.9.3-p448
- 如果沒有反應,可能是https被牆,用以下命令更換域名:
- 升級CocoaPods
升級很簡單,再次執行安裝命令即可
$ sudo gem install cocoapods
- 重新安裝本地庫
$ pod repo remove master
$ pod setup
- 更新本地庫
$ pod repo update master
使用CocoaPods
- 進入專案目錄, 建立Podfile: CocoaPods的一切都是從一個名為Podfile的檔案開始的,先建立。
$touch Podfile
- 編輯Podfile(以安裝Masonry為例)
pod 'Masonry'
- 在Podfile檔案所在目錄,執行下列命令安裝三方庫:
$ pod install
執行完成後,工程的根目錄下多了三個東西:CocoaPodsTest.xcworkspace、Podfile.lock檔案和Pods目錄。 - 以前的工程檔案不使用了,現在使用xxx.xcworkspace檔案, 開啟它就是我們的專案.
- 工程發生了以下變化:
- 第三方庫會被編譯成靜態庫供我們正真的工程使用:
CocoaPods會將所有的第三方庫以target的方式組成一個名為Pods的工程,該工程就放在剛才新生成的Pods目錄下。整個第三方庫工程會生成一個名稱為libPods.a的靜態庫提供給我們自己的CocoaPodsTest工程使用。 - 我們的工程和第三方庫所在的工程會由一個新生成的workspace管理
為了方便我們直觀的管理工程和第三方庫,CocoaPodsTest工程和Pods工程會被以workspace的形式組織和管理,也就是我們剛才看到的CocoaPodsTest.xcworkspace檔案。原來的工程設定已經被更改了,這時候我們直接開啟原來的工程檔案去編譯就會報錯,只能使用新生成的workspace來進行專案管理。
- 第三方庫會被編譯成靜態庫供我們正真的工程使用:
- 使用一段時間後, 出現莫名其妙的錯誤時, 可更新一下看看:
sudo gem update —system
sudo gem install cocoapods
pod setup
—完—