Cocoa pods的安裝和使用詳解

原理

CocoaPods的原理,它是將所有的依賴庫都放到另一個名爲Pods項目中,然後 讓主項目依賴Pods項目,這樣,源碼管理工作都從主項目移到了Pods項目中

  • 1、Pods項目最終會編譯成一個名爲libPods.a的文件,主項目只需要依賴這個.a 文件即可。
  • 2、對於資源文件,CocoaPods提供了一個名爲Pods-resources.sh的bash腳本, 該腳本在每次項目編譯的時候都會執行,將第三方庫的各種資源文件複製到目 標目錄中。
  • 3、CocoaPods通過一個名爲Pods.xcconfig的文件來在編譯時設置所有的依賴和 參數。
    • 注意
    • 關於.gitignore
      當你執行pod install之後,除了Podfile外,CocoaPods還會生成一個名爲 Podfile.lock的文件,你不應該把這個文件加入到.gitignore中。因爲Podfile.lock 會鎖定當前各依賴庫的版本,之後如果多次執行pod install 不會更改版本,要 pod update纔會改Podfile.lock了。這樣多人協作的時候,可以防止第三方庫升 級時造成大家各自的第三方庫版本不一致。

常用指令

1.pod install --no-repo-update(禁止索引更新操作)

  pod update --no-repo-update
2.pod serach:`pod search AFNetworking`
3.pod outdated:`檢查各第三方庫是否有更新`
4.pod init:自動生成一個podfile文件並初始化
5.vim 編輯模式,輸入i進入編輯,按ESC退出編輯,按:,輸入wq回到控制檯

可能遇到的問題

(1)使用cocoapods導入第三方類庫後頭文件沒有代碼提示?
解決辦法: 選擇Target -> Build Settings 菜單,找到\”User Header Search Paths\”設置項,新增一個值"${SRCROOT}",並且選擇\”Recursive\”

(2)出現如下警告
[!] Your Podfile has had smart quotessanitised. To avoid issues in the future, you should not use TextEdit forediting it. If you are not using TextEdit, you should turn off smart quotes inyour editor of choice.
解決辦法:不要使用文本編輯去編輯Podfile,使用Xcode編輯,或者使用終端敲命令去編輯。

(3) 執行pod install 或pod update 命令後,updating local specsrepositories 卡住不動
解決辦法:pod install 被牆了,換成新的命令pod install --verbose --no-repo-update

(4) 項目運行時報錯:Thefile “Pods.xcconfig” couldn’t be opened because there is no such file.
解決辦法:pod update就可以了

1.先升級Gem

    sudo gem update --system
2.切換cocoapods的數據源

    【先刪除,再添加,查看】
    gem sources --remove https://rubygems.org/
    gem sources -a https://ruby.taobao.org/
    gem sources -l
3.安裝cocoapods

    sudo gem install cocoapods
    或者(如10.11系統)sudo gem install -n /usr/local/bin cocoapods

4.將Podspec文件託管地址從github切換到國內的oschina

    【先刪除,再添加,再更新】
    pod repo remove master
    pod repo add master https://gitcafe.com/akuandev/Specs.git
    pod repo update
5.設置pod倉庫

    pod setup
6.測試

    【如果有版本號,則說明已經安裝成功】
    pod --version
7.利用cocoapods來安裝第三方框架

    01 進入要安裝框架的項目的.xcodeproj同級文件夾
    02 在該文件夾中新建一個文件podfile
    03 在文件中告訴cocoapods需要安裝的框架信息
        a.該框架支持的平臺
        b.適用的iOS版本
        c.框架的名稱
        d.框架的版本
8.安裝
pod install --no-repo-update
pod update --no-repo-update

9.說明
platform :ios, '8.0' 用來設置所有第三方庫所支持的iOS最低版本
pod 'SDWebImage','~>2.6' 設置框架的名稱和版本號
格式參照最新版本, ------------pod init中標準格式
版本號的規則:
'>1.0'    可以安裝任何高於1.0的版本
'>=1.0'   可以安裝任何高於或等於1.0的版本
'<1.0'    任何低於1.0的版本
'<=1.0'   任何低於或等於1.0的版本
'~>0.1'   任何高於或等於0.1的版本,但是不包含高於1.0的版本
'~>0'     任何版本,相當於不指定版本,默認採用最新版本號

10.使用pod install命令安裝框架後的大致過程:
01 分析依賴:該步驟會分析Podfile,查看不同類庫之間的依賴情況。如果有多個類庫依賴於同一個類庫,但是依賴於不同的版本,那麼cocoaPods會自動設置一個兼容的版本。
02 下載依賴:根據分析依賴的結果,下載指定版本的類庫到本地項目中。
03 生成Pods項目:創建一個Pods項目專門用來編譯和管理第三方框架,CocoaPods會將所需的框架,庫等內容添加到項目中,並且進行相應的配置。
04 整合Pods項目:將Pods和項目整合到一個工作空間中,並且設置文件鏈接。       


11 . 注意蘋果系統升級OS X EL Capitan後改爲$sudo gem install -n /usr/local/bin cocoapods, 要在指令前面加上sudo,會提醒輸入密碼,然後安裝

Cocoapods指令

Usage:

    $ pod COMMAND

      CocoaPods, the Cocoa library package manager.

Commands:

    + cache         Manipulate the CocoaPods cache
    + deintegrate   Deintegrate CocoaPods from your project.
    + env           Display pod environment
    + init          Generate a Podfile for the current directory.
    + install       Install project dependencies to Podfile.lock versions
    + ipc           Inter-process communication
    + lib           Develop pods
    + list          List pods
    + outdated      Show outdated project dependencies
    + plugins       Show available CocoaPods plugins
    + repo          Manage spec-repositories
    + search        Search for pods.
    + setup         Setup the CocoaPods environment
    + spec          Manage pod specs
    + trunk         Interact with the CocoaPods API (e.g. publishing new
                    specs)
    + try           Try a Pod!
    + update        Update outdated project dependencies and create new
                    Podfile.lock

Options:

    --silent        Show nothing
    --version       Show the version of the tool
    --verbose       Show more debugging information
    --no-ansi       Show output without ANSI codes
    --help          Show help banner of specified command
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章