安裝Cocoapods,以及其中出現的問題

若是須要回退pod版本,打包pod等,能夠參考本人的這篇博客

pod回退,打包開源pod,打包靜態動態庫等

 

添加一個連接http://www.tuicool.com/articles/7VvuAr3

更新升級10.11 cocoapods安裝出問題最簡單的解決方法php

這是由於10.11把cocoapods直接幹掉了html

sudo gem install -n /usr/local/bin cocoapods 再加一句,完美解決 sudo xcode-select --switch /Applications/Xcode.app 

使用CocoaPods作依賴管理,使咱們的工程更加自動化的、集中的、簡單直觀的管理第三方開源庫。你不用下載開源庫的源代碼引入工程,不用向工 程中添加Framework,不用解決開源庫和開源庫以及開源庫和工程之間的依賴、重複問題,也不用管開源庫更新等一系列問題。有了CocoaPods, 你只管任性,CocoaPods會爲你作好一切。ios

更新Ruby

你須要會簡單的使用命令行工具
CocoaPods惟一的限制就是在Ruby下運行,如今OS X都預裝了Ruby,因此你只須要更新RubyGems到最新版本。
打開終端(control + space 真的很好用),而後輸入以下的命令:
git

sudo gem update --system 

會要你輸入密碼:
注意在終端中密碼不顯示字符,只要輸完後按回車便可
用淘寶替換Ruby的默認源,替換命令以下:
github

gem sources --remove https://rubygems.org///等有反應以後再敲入如下命令gem sources -a http://ruby.taobao.org///驗證是否替換成功能夠執行gem sources -l 

如圖所示則證實替換成功segmentfault

安裝CocoaPods

在終端中輸入以下命令:xcode

sudo gem install cocoapods 

安裝過程是這樣的:ruby

安裝完成如上圖所示服務器

在終端中輸入以下命令來完成安裝:app

//將 CocoaPods Specs repository複製到你電腦上~/.cocoapods目錄下pod setup 

它須要一點時間來完成,你等就是了
若是安裝失敗 ~/.cocoapods 裏面是空的,就須要從新setup
命令以下:

pod repo remove master   pod setup 

完畢以後這個文件夾大概有 100多M,須要花費比較多時間,請耐心等待。
到這裏你已經成功安裝了CocoaPods!

建立配置Podfile

Xcode新建一個HelloWorld工程
打開終端,進入HelloWord工程目錄下:

//工程的路徑也能夠直接拖進來     cd /Users/lifupeng/Desktop/HelloWorld 

在HelloWorld工程下建立一個默認的Podfile
執行命令:

pod init 

用Xcode打開Podfile命令:

open -a Xcode Podfile 

Podfile是這樣的:

Xcode打開Podfile

修改類庫支持的最低iOS版本

將# platform:ios, "6.0"修改爲 #platform :ios, "7.0"告訴CocoaPods你的工程是運行在iOS7下 

爲了讓CocoaPods的引入不顯示警告,在Podfile最上方加上:

inhibit_all_warnings!// 也能夠單獨設置打開編譯警告就行了pod 'Alamofire', '~> 3.0.0-beta.3', :inhibit_warnings => true 

最後Podfile配置是這樣的:

Podfile配置

搜索第三方開源庫

以搜索AFNetworking爲例,搜索命令以下:

pod search AFNetworking 

搜索結果以下:

pod search AFNetworking結果


把下面內容:

pod 'AFNetworking', '~> 2.5.0' 

添加到Podfile中

target 'HelloWorld' dopod 'AFNetworking', '~> 2.5.0'end 

而後保存關閉

安裝開源庫到你的工程中。

在終端中輸入下面命令:(確保在終端的路徑在項目目錄下):

pod install 

至此 你已經成功的把AFNetworking添加到工程中了

[!] From now on use `ShowTracker.xcworkspace` 

正如上面的警告提醒,從如今開始,你必須使用HelloWorld.xcworkspace來打開該項目。

爲了讓CocoaPods的引入不顯示警告,在Podfile最上方加上:

inhibit_all_warnings! 

從新運行pod install,編譯項目,此時你應該看到警告已經不顯示了。

PS: 對Podfile修改安裝以後編譯項目,可能會出現以下警告 :

   The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. 

此時,正確的作法是:

1.Project Cleanup2.Remove all libPods*.a in  Linked Frameworks and Libraries3.Update CocoaPods using the command  pod install 

測試:
   添加 #import <AFNetworking.h>頭文件
今後引用第三方庫如此簡單,但願各位用的爽

CocoaPods經常使用命令

一、pod install 

根據Podfile文件指定的內容,安裝依賴庫,若是有Podfile.lock文件並且對應的Podfile文件未被修改,則會根據Podfile.lock文件指定的版本安裝。
每次更新了Podfile文件時,都須要從新執行該命令,以便從新安裝Pods依賴庫。

二、pod update 

若果Podfile中指定的依賴庫版本不是寫死的,當對應的依賴庫有了更新,不管有沒有Podfile.lock文件都會去獲取Podfile文件描述的容許獲取到的最新依賴庫版本。

三、pod search 

命令格式爲:

$ pod search AFNetworking  AFNetworking爲參數 

四、查看版本

pod --version 

五、卸載 cocoapods

sudo gem uninstall cocoapods 

今天比較閒,就把CocoaPods升級到0.36.0正式版(之前寫Swift的時候用的預覽版)。而後就鬱悶了,無論安裝什麼第三方都會出現相似於:
[!] Unable to satisfy the following requirements: - `AFNetworking (~> 2.5.1)

 一通的搜索後找到緣由,由於GFW的緣故。解決方法: pod repo remove master pod repo add master https://gitcafe.com/akuandev/Specs.gitpod repo update 

 

 

常見問題

1.
[!] Invalid
Podfile file: undefined local  variable or method `en_US' for #<Pod::Podfile:0x00000102a5d8b0>.  Updating CocoaPods might fix the issue.

緣由:單引號格式,多是手動輸入致使
解決辦法:系統偏好設置-鍵盤-文本-將「使用智能引號和破折號」一項取消勾選-再將podfile裏面的單(雙)引號修改一下

2.ArgumentError - invalid byte sequence in US-ASCII
緣由:字符集錯誤
解決辦法:
使用locale命令查看當前的字符集,若是都是zh,須要執行如下命令:
export LC_ALL=en_US.UTF-8
export.UTF-8
而後再使用locale命令查看,已經改過來了

  1. [!] The YMTea [Debug] target overrides the OTHER_LDFLAGS  build setting defined in `Pods/Target Support  Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the  CocoaPods installation

    • Use the $(inherited) flag, or

    • Remove the build settings from the target.

[!] The YMTea [Release] target overrides the OTHER_LDFLAGS  build setting defined in `Pods/Target Support  Files/Pods/Pods.release.xcconfig'. This can lead to problems with the  CocoaPods installation

- Use the `$(inherited)` flag, or - Remove the build settings from the target. 

緣由:我是在已有項目中集成Cocoapods的時候遇到這個問題,緣由是項目 Target 中作了一些設置,CocoaPods 也作了默認的設置,若是兩個設置結果不一致,就會形成問題。
解決方法:我想要使用 CocoaPods 中的設置,分別在個人項目中定義
PODS_ROOTOther Linker Flags的地方(build settings),把他們的值用$(inherited)替換掉,進入終端,執行 pod update
警告沒了,回到 Xcode,build經過。
網上還流行另一種簡單粗暴的方法:點擊項目文件 project.xcodeproj,右鍵
顯示包內容,用文本編輯器打開project.pbxproj,刪除OTHER_LDFLAGS的地方,保存(這種我沒試過)

4.
[!] Oh no, an error occurred.

It appears to have originated from your Podfile at line 2.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%2FUsers%2Fxiao6%2FMusic%2FGI06%E5%AE%9E%E8%AE%AD%E8%8A%B8%E8%8C%97%E8%8C%B6%E5%8F%B6%2FYMTea%2FPodfile%3A2%3A+syntax+error%2C+unexpected+%27%3A%27%2C+expecting+end-of-input%0Aplatform+%3A+ios%2C+%277.0%27%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

Don't forget to anonymize any private data!

緣由:這個問題比較蛋疼,弄了很久,仔細看發現就是由於Podfile文件裏面 platform 那一行 冒號和ios之間多了一個空格。。。。其實這個錯誤在報錯的時候ruby已經給出了,只是一開始沒有好好看:


03.png

6.安裝出現問題

我如今須要安裝Cocoapods 。gem的鏡像一景更換爲淘寶的了。
執行
sudo gem install cocoapods出現錯誤:

ERROR:  While executing gem ... (Errno::EPERM)    Operation not permitted - /usr/bin/xcodeproj 

我估計是gem版本沒有更新。執行sudo gem update --system,又出現了錯誤

ERROR:  While executing gem ... (Errno::EPERM)    Operation not permitted - /usr/bin/update_rubygems 

解決:

sudo gem install -n /usr/local/bin cocoapods --pre sudo gem install -n /usr/local/bin cocoapods 

7.updata時候沒反應,須要等好久

解決:

使用pod install --verbose --no-repo-update

或者等一段時間頁能夠成功

附:如何使用CocoaPods的鏡像索引:

全部項目的Podspec文件都託管在https://github.com/CocoaPods/Specs,
第一次執行pod setup時,CocoaPods會將這些podspec索引文件更新到本地的~/.cocoapods目錄下,
這個索引文件比較大,因此第一次更新時很是慢.
友好人士在國內的服務器創建了Cocoapods索引庫的鏡像,
因此執行索引跟新操做時候會快不少.具體操做方法以下:
$ pod repo remove master
$ pod repo add master https://gitcafe.com/akuandev/Specs.git
$ pod repo update
這是使用gitcafe上的鏡像,將以上代碼中的 https://gitcafe.com/akuandev/Specs.git
替換成 http://git.oschina.net/akuandev/Specs.git 便可使用oschina上的鏡像。

 

參考:

http://www.jianshu.com/p/5fc15906c53a#

https://segmentfault.com/q/1010000003877063

http://www.cocoachina.com/bbs/read.php?tid-314045.html

相關文章
相關標籤/搜索