日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS CocoaPods 详解

發布時間:2023/12/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS CocoaPods 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每種語言發展到一個階段,就會出現相應的依賴管理工具,例如 Java 語言的 Maven,nodejs 的 npm。隨著 iOS 開發者的增多,業界也出現了為 iOS 程序提供依賴管理的工具,它的名字叫做:CocoaPods。CocoaPods項目的源碼 在 Github 上管理。該項目開始于 2011 年 8 月 12 日,經過多年發展,現在已經成為 iOS 開發事實上的依賴管理標準工具。開發 iOS 項目不可避免地要使用第三方開源庫,CocoaPods 的出現使得節省設置和更新第三方開源庫的時間

使用CocoaPods
在使用 CocoaPods之前,開發項目需要用到第三方開源庫的時候,需要 1.把開源庫的源代碼復制到項目中 2.添加一些依賴框架和動態庫 3.設置-ObjC,-fno-objc-arc等參數 4.管理他們的更新 在使用CocoaPods后,我們只需要把用到的開源庫放到一個名為Podfile的文件中,然后執行pod install就可以了,Cocoapods就會自動將這些第三方開源庫的源碼下載下來,并且為我們的工程設置好響應的系統依賴和編譯參數
CocoaPods原理
CocoaPods原理是將所有的依賴庫都放到另一個名為 Pods的項目中,然后讓主項目依賴Pods項目,這樣,源碼管理工作都從主項目移到 Pods項目中。Pods項目最終會編譯成一個名為 libPods.a的文件,主項目只需要依賴這個.a文件即可

CocoaPods的安裝
1>?ruby 的軟件源 rubygems.org因為使用亞馬遜的云服務,被屏蔽,需要更新一下ruby的源,執行如下指令 $ gem sources -l????// 查看當前ruby的源 $ gem sources --remove https://rubygems.org/????// 移除當前ruby的源 $ gem sources -a https://ruby.taobao.org/????// 設置淘寶ruby的源 $ gem sources -l????// 再次查看當前ruby的源
如果Terminal輸出:
*** CURRENT SOURCES ***
https://ruby.taobao.org/ 就證明ruby的軟件源已經設置OK了

2>?設置gem為最新版本 如果gem太老,可以嘗試用如下命令升級gem
$?sudo gem update —system 升級成功后會提示: Latest version currently installed. Aborting.


3>?執行安裝 CocoaPods 命令 OS X 10.11 升級,雖然官方聲稱只是一個小的升級,但對于開發者而言,cocoapods需要重新安裝,但按照以前的安裝方式,在Terminal輸入以下命令
$?sudo gem install cocoapods
如果報以下錯誤: ERROR:??While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xcodeproj
解決方案1:
$ sudo nvram boot-args="rootless=0"
$ sudo reboot
重啟之后, 執行這個命令檢查
$?sudo gem install cocoapods -V 如果依舊有錯誤,使用第二個方案

解決方案2:
$?sudo gem install -n /usr/local/bin?cocoa pods $?pod setup 下載時間兩個多小時,才完成
注 : $ pod setup 在執行時,會輸出 Setting up CocoaPods master repo,但是會等待比較久的時間。這步其實是 Cocoapods 在將它的信息下載到 ~/.cocoapods目錄下,如果你等太久,可以試著 cd 到那個目錄,用du -sh *來查看下載進度 $ cd ~/.cocoapods $ du -sh *

4> Cocoapods的使用 在?工程根目錄 的統計目錄下創建一個?Podfile 文件
注 :?不能寫成別的名字,也可以自己在工程根目錄里面直接新建
Podfile 文件的格式內容一般如下 :?
platform :ios, '7.0'
project 'Test1/Test1.xcodeproj'
target 'Test1' do pod 'AFNetworking', '~> 2.5.3' end
cd 進入到?Podfile 文件所在的目錄中,執行指令 $ pod install 注 : 1>?pod install 指令執行完成之后會生成?xcworkspace 文件,以后使用.xcworkspace文件來打開工程,而不是使用以前的.xcodeproj文件 ? ? ? ?2>?每次更改了Podfile文件,都需要重新執行一次 $ pod update 命令
5>?查找第三方庫 如果不知道 cocoaPods 管理的庫中,是否有你想要的庫,那么可以通過 pod search 命令進行查找,如 :? $?pod search AFNetworking

6>?關于 Podfile.lock 當執行 $ pod install 之后,除了 Podfile 外,CocoaPods 還會生成一個名為Podfile.lock的文件,Podfile.lock 應該加入到版本控制里面,不應該把這個文件加入到 .gitignore 中。因為 Podfile.lock會鎖定當前各依賴庫的版本,之后如果多次執行 pod install 不會更改版本,要 $ pod update 才會改Podfile.lock了。這樣多人協作的時候,可以防止第三方庫升級時造成大家各自的第三方庫版本不一致
常見問題 1>?The dependency `AFNetworking ` is not used in any concrete target
庫沒有指定target,它不知道用在哪里,所以就給報錯,添加?target 相關信息就可以

2>?[!] Could not automatically select an Xcode project. Specify one in your Podfile like so: project 'path/to/Project.xcodeproj' 在Podfile文件里指定下工程目錄就行,如 :
...... ? xcodeproj 'Portfolio/Portfolio.xcodeproj'??? ......??

3>?[!] `xcodeproj` was renamed to `project`. Please update your Podfile accordingly.
查看 Podfile 文件,若有類似?xcodeproj 'MyProj/MyProj.xcodeproj' 這樣的信息,替換成?project 'MyProj/MyProj.xcodeproj'

4>?Unable to find a specification for `xxxxx (~> 1.x.x)` depended upon by Podfile. 當在 update或 install時會遇到這個問題,只需要把當前Pod的目錄清理一下就行執行如下指令
$ pod repo remove master $ pod setup
setup 成功后執行 install或 update即可

5>?[!] Unable to find a pod with name, author, summary, or description matching `AFNetworking`
執行 $?rm ~/Library/Caches/CocoaPods/search_index.json 之后再執行 查詢指令 $?pod search AFNetworking



總結

以上是生活随笔為你收集整理的iOS CocoaPods 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。