1. 程式人生 > >IOS 開發學習十八 包管理工具 CocoaPods的使用

IOS 開發學習十八 包管理工具 CocoaPods的使用

一、簡介

開發IOS應用時,經常會用到一些第三方開源類庫,如JSONKit、AFNetWorking、QRCode等。一個類庫可能還會引用其它類庫。手動去一個個載入就顯得比較麻煩。而CocoaPods就是用來解決類庫引用問題的,它類似於PHP上的Composer、JAVA上的Maven,也許與Linux平臺的apt-get命令也有相似之處。 官網地址: https://cocoapods.org

二、安裝

CocoaPods需要先安裝好Ruby環境,預設應該是已經安裝的,這裡不再介紹Ruby安裝方式,直接介紹CocoaPods安裝。 命令列輸入
sudo gem install cocoapods
如果輸入密碼後很長時間沒有反應,或提示無法找到,可能地址被牆了,那要先輸入:
gem sources --remove https://rubygems.org/
//等有反應之後再敲入以下命令
gem sources -a https://gems.ruby-china.org/
gem sources -l

把映象改為國內的映象。
這時介面輸出:
*** CURRENT SOURCES ***

https://gems.ruby-china.org/

再執行安裝命令。 如果提示: Unable to resolve dependencies:cocoapods requires cocoapods-core(=0.35.0),... 則先執行:
sudo gem update --system
如果再提示: ERROR: While executing gem... (Errno::EPERM)    Operation not permitted - /usr/bin/xcodeproj 則執行:
sudo gem install -n /usr/local/bin cocoapods



安裝完後執行
pod install 命令 ----安裝倉庫。

也可以通過外掛安裝:(未測試)

三、ionic專案新增CocoaPods支援

1.  使用xcode開啟專案  2. 編輯文字
vim Podfile
# Uncomment this line to define a global platform for your project
platform :ios, '7.0'

target 'Demo' do

pod 'AFNetworking', '~> 2.0'
pod 'JSONModel', '~> 1.1.2'
pod '
[email protected]
', '~> 0.0.4' end target 'DemoTests' do end
然後命令列執行:pod install --verbose --no-repo-update

四、使用示例

1.專案裡引用QRCode 首先驗證QRCode是否支援CocoaPods
pod search QRCodeReaderViewController
輸出:
-> QRCodeReaderViewController (3.4.0)
   Simple QRCode reader for iOS 7 and over
   pod 'QRCodeReaderViewController', '~> 3.4.0'
   - Homepage: https://github.com/YannickL/QRCodeReaderViewController
   - Source:   https://github.com/yannickl/QRCodeReaderViewController.git
   - Versions: 3.4.0, 3.3.0, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.0, 3.0.0, 2.0.0,
   1.0.1, 1.0.0 [master repo]
到專案的.xcodeproj目錄,建立Podfile檔案:
touch Podfile
vim Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
pod 'QRCodeReaderViewController', '~> 3.4.0'
儲存後,輸入命令:
pod install

安裝完成後,輸入命令:
open MyProject.xcworkspace
開啟專案,不要用.xcodeproj開啟專案。 以後需要升級使用的開源庫時,只需要輸入: pod update 即可自動完成更新。

四 刪除類庫

1.刪除Poads裡的類庫資料夾 2.把Podfile裡刪除對應行 3.重新執行pod install命令。

五 其它命令

有時經常卡住,可能要這樣清理一下。如果xcode升級,這裡有時也要這麼操作一下:

pod repo remove master --刪除主倉庫

pod setup --重建安裝

pod install

跳過更新倉庫的操作直接安裝類庫 

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update


方法2:

執行:
rm -rf ~/.cocoapods/repos/masterpod repo remove masterpods install --verbose
可以看到下載提示。 確認是否在執行:
cd ~/.cocoapods
du -sh

看值一直在變大,就是正在下載。

方法3:

下載安裝github desktop登陸github,把專案https://github.com/CocoaPods/Specs  fork到自己的github賬戶下開啟github desktop , clone Specs到本地電腦改名為master,放到~/.cocoapods/repos/master

其它問題處理:


執行pod install時

提示An error occurred while processing the post-install hook of the Podfile.undefined method `project` for #<Pod::Installer:0x007ffa309af2e0> 處理方法: 開啟Podfile,把裡面的 project 改為 pods_project

不支援i386

工程在模擬器上編譯報錯,不支援i386,Cocoapods確實還不支援64位模擬器,解決辦法:

方法1:

1.build active architecture only 在debug的時候設定成YES,不要在release的時候用模擬器   

2.other linker flags 加一個 $(inherited)

pods root也可能需要設定為$(inherited)

方法2:(未測試)

點選專案檔案 project.xcodeproj,右鍵`顯示包內容`,用文字編輯器開啟`project.pbxproj`,刪除`OTHER_LDFLAGS`的地方,儲存,回到 Xcode,編譯通過。

需要對第三方庫修改

先把git fork到自己賬號下,然後編輯Podfile:

platform :ios, '7.0'
pod '要匯入的庫', :git => 'https://github.com/我的github/要匯入的庫' 

Xcode 提示Pod錯誤

diff: /../Podfile.lock: No such file or directory

diff: /Manifest.lock: No such file or directory

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

1.關閉Xcode,重新執行pod install,之後再重新開啟Xcode執行。

2.刪除一下檔案

xcworkspace
Podfile.lock
Pods資料夾
~/Library/Developer/Xcode/DerivedData路徑下對應工程的資料夾

然後重新執行pod install

3.如果以上都不行 檢查Project->選擇Info tab->看看Configurations是不是被設定為 None了,如果是None的話改為Pods

4.右鍵工程根目錄下的xxx.xcodeproj檔案,顯示包內容

雙擊開啟project.pbxproj檔案查詢"Pods-resources.sh", 把路徑改為如下紅框處:


解決方案參考:http://www.jianshu.com/p/4c3164fe552a

相關推薦

IOS 開發學習 管理工具 CocoaPods的使用

一、簡介 開發IOS應用時,經常會用到一些第三方開源類庫,如JSONKit、AFNetWorking、QRCode等。一個類庫可能還會引用其它類庫。手動去一個個載入就顯得比較麻煩。而CocoaPods就是用來解決類庫引用問題的,它類似於PHP上的Composer、JAVA上

iOS管理工具Cocoapods的安裝與使用

data == 鏡像 tracking libtool 們的 install 包管理 問題解決 在我們開發移動應用的時候,一般都會使用到第三方工具,而因為第三方類庫的種類繁多,我們在項目中進行管理也會相對麻煩,所以此時我們就須要一個包管理工具。在iOS開發中

IOS開發學習筆記 圖片瀏覽器

首先是效果圖:demo下載 把圖片素材放入Assets.xcassets 建立plist檔案(本質是xml檔案) 介面的搭建,按照頁面佈局拖拽新增控制元件 ViewController具體程式碼

IOS 開發學習二 Bundle使用及檔案引用

1.在xcode外建立一個資料夾,命令為app.bundle(必須為.bundle副檔名) 以後開啟此資料夾,要滑鼠右鍵-顯示包內容,直接雙擊不行。 2.加到xcode專案裡 3.程式碼獲取裡面檔案路徑: 資源路徑: NSString *bundlePath = [[NS

Python學習筆記(二)—Python3中pip管理工具的安裝

1、什麼是pip? 簡單來說pip就是Python的一個包管理工具,可以對第三方的包進行管理操作,例如,安裝、解除安裝、檢查更新、檢視包資訊等等。 2、安裝pip 安裝pip之前,首先要保證已經安裝了Python開發環境。還是老規矩,仍

ios開發學習】Cocoa 新的依賴管理工具:Carthage

說到 iOS 的依賴管理工具,大家一定首先想到的是 CocoaPods ,不錯,CocoaPods 確實是一個很好依賴管理工具,已然成為了 Cocoa 依賴管理的標準,豐富的支援庫、文件等等,CocoaPods 相關的文章有很多,這裡就不一一贅述了。 今天要介紹的是一款新的依賴管理工具,名曰 “Cart

Linux 入門記錄:二、Linux 管理工具 YUM

倉庫 清理 bug entos 需要 tro eat 參數 基於組 一、YUM(Yellowdog Updater, Modified) 1. yum 簡介 RPM 軟件包形式管理軟件雖然方便,但是需要手動解決軟件包的依賴問題。很多時候安裝一個軟件首先需要安裝 1 個或

Maven學習()-----Maven依賴管理

oca 子項目 sta stage clu padding 類型 type 核心 其中一個Maven的核心特征是依賴管理。管理依賴關系變得困難的任務一旦我們處理多模塊項目(包含數百個模塊/子項目)。 Maven提供了一個高程度的控制來管理這樣的場景。 傳遞依賴發現 這是很通

Linux學習(五)軟體安裝與管理工具

一、使用RPM管理 telnet-server 軟體包 1.RPM軟體包管理工具 RPM(Red Hat Package Manager)小紅帽軟體包管理工具,常用於軟體包的安裝、查詢、更新升級、校驗、解除安裝及生成.rpm格式的軟體包等操作。 注:RPM只能管理字尾.rpm的軟

IOS開發學習筆記六 使用UITableView控制元件實現微博列表效果

效果:專案地址 微博列表唯一需要注意的是每個條目的列表行高不一致,需要在UITableView的代理方法heightForRowAtIndexPath中動態設定行高 需要建立Module物件CZMicroBlogFrame來儲存UITableCell的子View的

IOS開發學習筆記五 為UITableView控制元件新增Header和Footer

效果圖:專案地址 新增圖片素材,新增plist檔案,新增名為CZGoods的module檔案 @implementation CZGoods - (instancetype)initWithDict:(NSDictionary *)dict { if

IOS開發學習筆記四 UITableView控制元件實現ListView的效果

效果圖:專案地址 ViewController對應的程式碼: #import "ViewController.h" #import "CZHero.h" @interface ViewController () <UITableViewDataSource, UIT

IOS開發學習筆記二 實現一個簡單的答題器

效果圖:專案地址 專案新增素材,新增plist檔案,並新增plist裡面的字典資料對應的model物件 module標頭檔案: #import <Foundation/Foundation.h> @interface CZQuestion :

IOS開發學習筆記一 使用xlib檔案實現GridView的效果

效果圖: 在專案中資源素材檔案 新增plist檔案 新增名叫AFGridItem的model物件,用來代替我們從plist檔案中解析得到的字典資料,並新增通過字典獲取物件例項和初始化物件的方法。 #import <Foundation/Foun

IOS開發學習筆記 使用程式碼實現GridView的效果

效果圖:專案地址 把圖片素材放入專案中,併為專案建立plist檔案,存放一個字典陣列,每個字典裡面對應存放這圖片素材名稱和GridView子條目的對應的文字描述。 新增NSArray *app的變數,使用懶載入的方式來讀取並儲存plist檔案的內容 在Vie

iOS開發-類庫管理工具CocoaPods

CocoaPods是iOS最常用的類庫管理工具。 如何下載和安裝CocoaPods? 在安裝CocoaPods之前,首先要在本地安裝好Ruby環境。 在Terminator(終端)中輸入以下命令: s

Golang學習筆記之依賴管理工具gvt

一、gvt概念 gvt全稱為Go vendoring tool,可譯為Go供應工具,或者意譯為Go依賴包依賴包工具,whatever~~,簡單來說就是可以方便的獲取、更新、刪除專案所依賴的工具包,這個特性在Go1.5之前並不支援,1.5版本中需要設定GO15VENDOREX

iOS-Cocos2d遊戲開發】解決滾屏背景/拼接地圖有黑邊(縫隙)/動畫播放出現毛邊以及禁止遊戲中自動鎖屏問題!【2011年12月18日補充】

原創,轉載務必在明顯處註明:轉載自 原文連結: http://www.himigame.com/iphone-cocos2d/507.html     本章節主要為大家介紹在遊戲開發過程中經常遇到的兩個問題;     1. 解決滾屏背景或拼接地圖有黑邊!      對於遊戲開

《Microsoft SQL Server 2008 Analysis Services Step by Step》學習筆記管理部署

導讀:本文介紹Analysis Services的部署方式和部署機制 。 本文將包括以下內容: ■1、使用BIDS部署Anylysis services 資料庫 ■2、建立XMLA指令碼部署Anylysis services 資料庫 ■3、針對Anylysis services 資料庫伺服器上執行部署

獻給初學iOS的小盆友們——微博app專案開發搭建傳送微博介面(下)

今天應該是這個專案最後一次更新啦,能堅持下來的小盆友真是棒棒噠。這節課我們將會完成傳送有圖片的微博,實現微博最後一個核心功能。因為微博的功能實在太多太多了,我們不可能把微博的每個功能都一一實現。小夥伴能從中學到最精髓的東西才是最主要的,萬變不離其宗,得到處理問題