Cocoapods安裝、使用與填坑

1、安裝

安裝命令:ios

sudo gem install cocoapods
複製代碼

這個須要訪問牆外,若不能正常安裝,請看下面介紹的換源流程。
git


步驟:

(1)移除自帶源

$ gem sources --remove https://rubygems.org/
複製代碼

(移除原有的自帶ruby源)github

$ gem sources -a https://ruby.taobao.org/
複製代碼

(換用國內淘寶源,請注意是https,http已被棄用,固然,也有用ruby中國的源的,只需將連接改爲:gems.ruby-china.com/ 便可,區別你們本身感覺)vim

(2)換源

用下面的命令查看源是否更換xcode

$ gem sources -l
複製代碼

顯示:ruby

*** CURRENT SOURCES ***https://ruby.taobao.org/
複製代碼

即更換成功bash

(3)安裝

$ sudo gem install cocoapods
複製代碼

(4)查看版本

pod --version
複製代碼

查看版本,檢查cocoapods是否安裝成功,若顯示版本號,則安裝成功網絡

2、使用

經過命令行工具進入到項目所在目錄:app

vim Podfile
複製代碼

進行編輯,以導入Masonry爲例: ide

第1行:確認使用平臺是在iOS 10.0以上使用
第3行:將這些第三方類庫用在本身創建的項目上
第5行:導入的第三方庫Masonry 1.1.0版本,固然,這句也能夠寫成

pod 'Masonry'
複製代碼

不知道導哪一個版本能夠這樣寫,可是我的建議最好寫上版本號,也能夠用命令

pod search Masonry
複製代碼

查看Masonry的版本
保存關閉Podfile文件,在命令行輸入:

pod install
複製代碼

此時會下載第三方庫到項目中。若是第三方類庫有不少,能夠在pod 'Masonry'下面寫下其餘類庫的名稱,如:

pod 'Masonry'
pod 'AFNetworking'
複製代碼

保存關閉install,第三方類庫就會下載到項目的Pods文件夾中。到此,CocoaPods使用介紹完畢。


3、卸載

一、卸載命令:

$ sudo gem uninstall cocoapods
複製代碼

二、先查看本地安裝過的cocopods相關東西,命令以下:

$ gem list --local | grep cocoapods
複製代碼

會顯示以下:

cocoapods-core (0.39.0)
cocoapods-downloader (0.9.3)
cocoapods-plugins (0.4.2)
cocoapods-search (0.1.0)
cocoapods-stats (0.6.2)
cocoapods-trunk (0.6.4)
cocoapods-try (0.5.1)
複製代碼

三、逐個刪除:

$ sudo gem uninstall cocoapods-core
複製代碼

4、填坑

這就完了麼,不,不論是用一個東西,仍是開發一個東西,咱們總會遇到一些坑,如今咱們來看看使用中均可能會遇到什麼坑:

坑一:

[!] Oh no, an error occurred.
It appears to have originated from your Podfile at line 1.

Search for existing github issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%2FUsers%2Fhuaqiao%2FDesktop%2FUserCommand1%2FPodfile%3A1%3A+syntax+error%2C+unexpected+%27%3A%27%2C+expecting+end-of-input%0Aplatform+%3A+ios+%0A++++++++++%5E&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md
複製代碼

看到第一句是否是頗有喜感,解決方案: You need reinstall cocoapods: so

sudo gem uninstall cocoapods
sudo gem install cocoapods
pod setup
複製代碼

坑二:

Invalid `Podfile` file: [!] Unsupported options `{:exclusive=>true}` 
for target 'CocoaPodsDemo'
複製代碼

這種通常是pod install別人的工程,解決辦法是將:

target 'mySuperApp_Tests', :exclusive => true do 
pod 'mySuperApp', :path => '../'end
複製代碼

改爲:

target 'mySuperApp_Tests' do pod 'mySuperApp', :path => '../' end
複製代碼

坑三:

[!] Unable to add a source with url 
`https://github.com/CocoaPods/Specs.git` named `master`.
複製代碼

解決辦法:

cd ~/.cocoapods/repos 
git clone https://github.com/CocoaPods/Specs.git master
複製代碼

還有一種報錯是:

[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master-1`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.
複製代碼

解決辦法:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
複製代碼

能夠經過:

cd ~/.cocoapods
du -sh *
複製代碼

命令來查看文件大小

坑四:不管是執行pod install仍是pod update都卡在了Analyzing dependencies不動緣由在於當執行以上兩個命令的時候會升級CocoaPods的spec倉庫,加一個參數能夠省略這一步,而後速度就會提高很多。加參數的命令以下:

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
複製代碼

坑五:提示找不到頭文件

1,找到TARGETS -> Build Settings -> SearchPaths -> User Header Search Paths 在後面的空白處雙擊 2, 點擊 ‘+’號,添加一個新的鍵爲${SRCROOT},值設置爲recursive

坑六:pod install和pod update這倆命令字面意思理解就行,一個安裝,一個更新而後咱們要說說Podfile.lock文件和Pods文件夾:

Podfile.lock :這個文件是用來保存已經安裝的Pods依賴庫的版本。 Pods文件夾:這裏邊全是引用的三方類庫。若是Podfile.lock文件丟失,你再使用pod install命令,而且Podfile中含有沒有指定版本的類庫,那你的類庫就會下載最新的版本,有些比較活躍的三方項目更新很頻繁,它們一旦更新方法名或者實現方式,你調用的代碼就報錯了,這是災難性的。 特別須要注意:使用pod update會更新的你Podfile.lock文件到最新版本,它們一旦更新方法名或者實現方式,你調用的代碼就報錯了,因此請不要手殘。 因此千萬記住,不管是本身的項目,仍是跑別人的源碼,必定要用pod install,至於pod update,看你本身是否是要三方升級類庫(我仍是建議最好在Podfile中指定版本,想要升級,只需更改Podfile中的版本號,再pod install)。

坑七:

sudo gem sources -a https://ruby.taobao.org/ 
Error fetching https://ruby.taobao.org/:
	server did not return a valid file (http://ruby.taobao.org/specs.4.8.gz)
複製代碼

這真的是無妄之災啊,網上找了半天解決辦法,試過https改http,也試過:

1. rvm pkg install openssl
2. rvm reinstall all --force
複製代碼

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l*** CURRENT SOURCES ***
複製代碼

最後問羣友,羣友說試試看,能不能打開這個網站,結果是公司網絡權限問題,對於某寶是不能正常訪問的,/氣哭/氣哭。

坑八:

在運行 「sudo gem install cocoapods」 的時候出現問題:

ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fuzzy_match(或者是- /usr/bin/xcodeproj之類的)
複製代碼

則能夠改成:

sudo gem install -n /usr/local/bin cocoapods
複製代碼

5、經常使用命令

一、更新gem:
sudo gem update --system

二、刪除gem源:
gem sources --remove [https://ruby.taobao.org/](https://ruby.taobao.org/)

三、修改gem源:
gem sources -a [https://gems.ruby-china.org](https://gems.ruby-china.org/)

四、查看gem源是不是最新的:
gem sources -l

五、升級cocoapods
sudo gem install cocoapods
或指定版本
sudo gem install cocoapods -v '版本號'

六、升級cocoapods到預覽版:
sudo gem install -n /usr/local/bin cocoapods --pre

七、查看升級後的cocoapods版本:
pod --version

複製代碼

6、使用總結

  • 第一步,建立項目;
  • 第二步,建立Podfile文件;
  • 第三步,填寫第三方庫信息到podfile文件並保存;
  • 第四步,安裝第三方庫,退出,用xcworkspace文件打開,這步很是關鍵,並且只能用這個打開,不是之前的xcodeproj文件了,否則會提示第三方庫找不到;
  • 第五步,導入頭文件,開始使用。

【參考】

相關文章
相關標籤/搜索