1. 程式人生 > >在CocoaPods上建立自己iOS程式的依賴管理

在CocoaPods上建立自己iOS程式的依賴管理

一、github上建立開源專案

GitHub是目前使用最廣的分散式專案管理軟體。下面是如何從零開始,將自己的專案放到GitHub上面,並能夠像SVN那般update和commit。

2、按照的指引,建立第一個程式碼倉庫

spacer.gifwKioL1MVNheRL_OOAADWJ6g-4LY453.jpg

“Repository name”可以理解為專案名稱。

※現在的Private許可權是收費的,所以只能建立Public許可權的倉庫。

※Private許可權,表示只有指定使用者可以檢視/下載/commit這些程式碼;而Public許可權,則表示所有人都能夠看到這些程式碼並進行下載,但只有你指定的使用者才能夠進行commit。

wKioL1MVNjSxIkmZAAHOale9f58320.jpg

3、安裝和配置git

[[email protected]
~]# git --version git version 2.5.4(Apple Git-61)

接著就要設定使用者名稱和Email了,Email最好和註冊時候的一樣。
$ git config --global user.name "Your Name Here"
# Sets the default name for git to use when you commit
$ git config --global user.email "[email protected]"
# Sets the default email for git to use when you commit

上面的內容都寫在配置檔案~/.gitconfig裡了
恭喜,到這裡,基本Git和GitHub都配置好了!

mac已經帶有git,檢視版本

4、版本庫初始化

如果是從頭建立版本庫,可以採用先克隆,建立提交資料,最後再通過推送完成GitHub版本庫的初始化。

步驟如下

(1) 克隆版本庫:

git clone https://github.com/skylinbaiyi/HelloWorld.git
Cloning into 'HelloWorld'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.

克隆的方式,本地已經存在一個.git資料夾,就不需要執行 git init

(2) 修改檔案README.md檔案:

建立Repository時,如果選擇建立README.md檔案的話,github上已經存在該檔案,如果沒有,則手動建立

$ git add README
# Stages your README file, adding it to the list of files to be committed


(3) 提交

git add . 

這個git add確實夠蛋疼的,commit的話當然是把本地修改的所有檔案提交上去了,還非得一個一個的add,這是反人類啊

#會把當前路徑下的所有檔案,新增到待上傳的檔案列表中

$ git commit -m 'first commit'
# Commits your files, adding the message "first commit"


(4) push

這裡所有的更改都只是在本地的, Push之後才會提交到GitHub儲存:

git remote add origin https://github.com/skylinbaiyi/HelloWorld.git

git push origin master

(5)給專案加入一個tag。以便pod能自動識別

git tag -a 0.0.1 -m "Tag release 0.0.1”
git push —tags


二、為自己的專案新增cocoaPods支援

1、註冊

trunk需要CocoaPods 0.33版本以上,用pod --version命令檢視版本,如果版本低,需要升級:

sudo gen install cocoapods
pod setup

pod setup後必須要註冊後才能提交podspec檔案,否則會出現下面的錯誤

更新完成後,下一步是註冊trunk

pod trunk register [email protected] 'test' --description=' ' --verbose
註冊完後,會提示使用者到郵箱驗證:
收到的郵箱內容如下: 點選連結驗證:

有的地方提示,這一步需要自備梯子,否則就會出現註冊失敗的問題,經我這裡測試,公司網路目前不需要翻牆

註冊後CocoaPods會給你的郵箱傳送驗證連結,點選後就註冊成功了,可以用pod trunk me命令檢視自己的註冊資訊:

上面的命令是我註冊時使用的,你需要把郵箱和名字以及描述替換成你的,加上--verbose可以輸出詳細debug資訊,方便出錯時檢視。

  - Name:     Yang Xiaoyu
  - Email:    [email protected]
  - Since:    May 25th, 20:27
  - Sessions: 
    - May 25th, 20:27 - September 30th, 22:41. IP: 23.228.209.171
  Description: macbook pro

上面是我的註冊資訊,CocoaPods不通過密碼來驗證使用者,而是通過一個session token。

2、部署你的Pod

首先你需要建立一個podspec檔案,這是我的podspec檔案:

Pod::Spec.new do |s|
s.name = "YXYNumberAnimationLabel"
s.version = "1.0.1"
s.summary = "一個可以動起來的數字Label"
s.description = <<-DESC
通過設定數字變化的插值來展現動畫效果
DESC
s.homepage = "https://github.com/yulingtianxia/YXYNumberAnimationLabel"

s.license = 'MIT'
s.author = { "YangXiaoyu" => "[email protected]" }
s.social_media_url = "http://twitter.com/yulingtianxia"
s.source = { :git => "https://github.com/yulingtianxia/YXYNumberAnimationLabel.git", :tag => s.version.to_s }

s.platform = :ios, '6.0'
s.requires_arc = true

s.source_files = 'YXYNumberAnimationLabel/*'
s.frameworks = 'Foundation', 'UIKit'
#s.private_header_files = 'Classes/ios/private/*.h'

#s.dependency 'FLKAutoLayout', '~> 0.1'
end

在驗證和上傳你的podspec檔案到trunk之前,需要將你的原始碼push到Github上,tag一個版本號併發佈一個release版本,這樣podspec檔案中的s.source的值才能是準確的:

git add -A 
git commit -m "Release 1.0.1."  
git tag '1.0.1'  
git push --tags  
git push origin master

這兩條命令是為pod新增版本號並打上tag:

set the new version to 1.0.1
set the new tag to 1.0.1

pod trunk push命令做了如下三個工作:

在你podspec檔案下的路徑執行pod trunk push YXYNumberAnimationLabel.podspec 命令,同樣需要翻牆梯子自備,別忘了將YXYNumberAnimationLabel.podspec替換成你的podspec檔名。

  1. 驗證你本地的podspec檔案(你也可以用pod spec lint命令來驗證)
  2. 上傳你的podspec檔案到trunk
  3. 將你的podspec檔案轉化成trunk需要的JSON檔案

如果部署成功,CocosPods會在Twitter上@你

就像文章最開始的架構圖描述的那樣,你在trunk中的操作依然會在CocoaPods/Specs倉庫中更新。以後再做更改時只需要更新版本號然後通過trunk來提交,不用向CocoaPods/Specspull request並等待稽核和merge了。

執行pod setup來更新你的Pods依賴庫tree後,再使用pod search YXYNumberAnimationLabel命令來查詢剛剛加入的名字叫YXYNumberAnimationLabel的依賴庫:

-> YXYNumberAnimationLabel (1.0.1)
   一個可以動起來的數字Label
   pod 'YXYNumberAnimationLabel', '~> 1.0.1'
   - Homepage: https://github.com/yulingtianxia/YXYNumberAnimationLabel
   - Source:   https://github.com/yulingtianxia/YXYNumberAnimationLabel.git
   - Versions: 1.0.1, 1.0.0 [master repo]

注意事項:

(1)驗證spec檔案的有效性:

pod spec lint檔名驗證resp上的檔案

pod lib lint 檔名這是隻是驗證本地檔案

(2) 新增 --verbose 可以顯示詳細資訊,便於檢視問題

pod trunk push Bugrpt.podspec --verbose


三、提交 podspec 檔案到github的方法對比

提交結果檢視地方 
https://github.com/CocoaPods/Specs/tree/master/Specs

1、舊方法  
http://blog.csdn.net/wzzvictory/article/details/20067595
2、新方法 
http://yulingtianxia.com/blog/2014/05/26/publish-your-pods-on-cocoapods-with-trunk/http://www.cnblogs.com/wengzilin/p/4742530.html其他文章中提到,需要cocoaPods稽核幾天,才能有效,但我這裡使用的實際情況是,只要pod trunk push成功,就馬上有效了,在 CocoaPods/Specs中就可以看到了,CocoaPods也可以使用這個庫了


裡面有個log資訊提示有個beta版本可以使用,這個千萬不要下載,可能會有很多問題,還是老老實實使用最新的正式版本才靠譜


四、問題總結

1. github的賬號密碼問題

如果有多個github賬號,在進行賬號切換提交專案時,會出現沒許可權的問題


這時需要在本地切換賬號,切換到本專案使用賬號。賬號密碼儲存在鑰匙串中,先刪除,再重新輸入新的賬號密碼

2. 路徑不對

Unable to interpret the specified path as a podspec


原因是沒有tag標記,程式碼push完全後,新增一個tag,這個tag需要和podspec檔案的version欄位對應

3. 找不到branch版本


我們新增tag時,寫的是1.0.2,需要加上字母“v”, v1.0.2



4.  編碼問題

 生成的podspec檔案,MAC下直接用自帶的文字編輯器或者其他三方工具:TextWrangler,會提示編碼的問題或者其他錯誤
解決方法:windows下用edit編輯,然後到mac下提交

5. 庫的路徑問題

比如bugly sdk的cocoaPods配置
source指定的Bugly-1.4.5.zip檔案,解壓出來必須是 Bugly.framework,而不是其他檔名或者資料夾,否則可能出現以下的錯誤 提示source_files 或者vendored_frameworks找不到
出現這種問題時,如果檢查podspec檔案書寫沒有問題,則有可能是pod本身的問題,換臺電腦試試

6. 庫的標頭檔案問題


原因:匯出的標頭檔案名字跟framework的名字不一致 修改辦法:刪除Modules資料夾或者修改modele.modulemap檔案裡標頭檔案的定義或者修改標頭檔案名

7. model找不到


專門下載了bugly的sdk,測試了下也是一樣的問題:
查了半天沒找到原因,後來猜想有沒可能是pod版本的問題,先查了下當前版本:
本機安裝了最新的beta版本,所以先把這個版本解除安裝了,安裝最新的正式版,驗證通過

8. 奇葩的版本錯誤
提示vendored_frameworks 和 public_header_files的格式錯誤,但是仔細對照,始終沒發現有什麼問題。 有可能是Cocoapods的版本問題,以前使用0.39.0一直正常,更新到1.0.0後就不對了

相關推薦

CocoaPods建立自己iOS程式依賴管理

一、github上建立開源專案 GitHub是目前使用最廣的分散式專案管理軟體。下面是如何從零開始,將自己的專案放到GitHub上面,並能夠像SVN那般update和commit。 2、按照的指引

GitHub建立自己的Maven倉庫並引用

1、首先在Github倉庫中建立一個自己的倉庫,倉庫名稱為:mvn-repo,如下圖所示: 2、然後在mvn工具的配置檔案settings.xml中(在window中配置檔案會在Maven的安裝目錄下的conf資料夾下),找到servers標籤,新增一個server,如:

手把手教你在Github建立自己的個人部落格網站

概述 之前閒著沒事,就利用Github建了一個個人部落格網站,效果還不錯,今天就來分享一下. 建立自己個人部落格網站的好處: 1.面試裝逼,這個不必多說… 2.把平時積累的知識和專案記錄下來,方便日後檢視使用 3.不受其他部落格平臺的限制 準備工作

CocoaPods製作自己的庫

CocoaPads作為管理第三方庫的神器,有時候自己寫的好的庫也希望,放在上面去,不敢說給別人用,讓別人喜歡,最起碼自己熟悉,下次自己倒進來就能用,也有也有人喜歡把那些庫打成.a的包,這樣也可以。只要你喜歡隨便嘍。我是覺得打包成.a不太方便版本管理,不太方便升級

如何在github建立自己的專案

單分支操作 建立倉庫 克隆程式碼到本地 $ git clone https://github.com/webxing/Pagination.class.php.git 進入資料夾 $ cd Paginatio

使用CocoaPods來做iOS程式的包依賴管理

前言 每種語言發展到一個階段,就會出現相應的依賴管理工具, 或者是中央程式碼倉庫。比如 Java: maven,IvyRuby: gemsPython: pip, easy_installNodejs: npm隨著iOS開發者的增多,業界也出現了為iOS程式提供依賴管理的工具,這個工具叫:CocoaPo

iOS 依賴管理工具 CocoaPods 和 Carthage 的使用及原理

       隨著網際網路的高速發展,個大網際網路公司為更高效研發自己的產品,而不斷研發適合自己的平臺的開發語言。當這些新的語言被廣泛推廣、被更多的開發團隊所接納,被用於開發不同的場景,這個過程中會研發出很多很多方便開發的框架。發展到一定階段,都會出現相應的依賴管理工具。例如

IOS企業版app部署到自己伺服器,不通過AppStore,在iOS裝置直接安裝應用程式

<?xml version="1.0" encoding="UTF-8"?> itemsassetskindsoftware-packageurlhttp://192.168.100.71:8080/AhHxAppService/resources/platform/AHhaoXian.ipak

使用CocoaPods建立自己的私有庫-iOS元件化第一步

目前iOS元件化常用的解決方案是Pod+路由+持續整合,通常架構設計完成後第一步就是將原來工程裡的模組按照架構圖分解為一個個獨立的pod工程(元件),今天我們就來看看如何建立一個Pod私有庫。 新建:pod lib create 假設我們需要建立的庫名為TestLib,下面我們使用Pod官方提供的建立模板:

Android原始碼解析之應用程式資源管理器(Asset Manager)的建立過程分析

轉載自:https://blog.csdn.net/luoshengyang/article/details/8791064 我們分析了Android應用程式資源的編譯和打包過程,最終得到的應用程式資源就與應用程式程式碼一起打包在一個APK檔案中。Android應用程式在執行的過程中,是通過一個

使用Py2Exe for Python3建立自己的exe程式

最近使用Python 3.5寫了一個GUI小程式,於是想將該寫好的程式釋出成一個exe檔案,供自己單獨使用。至於通過安裝的方式使用該程式,我沒有探索,感興趣的讀者可以自己摸索。 1 介紹 我使用的開發環境是python3.4(實際上我是在另一個64位的桌上型電腦上,用python

轉自 老羅 Android應用程式資源管理器(Asset Manager)的建立過程分析

原文地址在 http://blog.csdn.net/luoshengyang/article/details/8791064 原創老羅,轉載請說明     在前面一篇文章中,我們分析了Android應用程式資源的編譯和打包過程,最終得到的應用程式資源就與

教你如何在以太坊建立屬於自己的ERC20代幣

本文從技術角度詳細介紹如何基於以太坊ERC20建立代幣的流程。 (需要幫忙代做的可以聯絡V信:WangSanfeng0417) 寫在前面 本文所講的代幣是使用以太坊智慧合約建立,閱讀本文前,你應該對以太坊、智慧合約有所瞭解,如果你還不瞭解,建議你先看以太坊是什麼

.net core i K8S(四).netcore程式的pod管理,重啟策略與健康檢查

.net core i上 K8S(四).netcore程式的pod管理,重啟策略與健康檢查   目錄 1.pod管理 2.重啟策略 3.健康檢查 4.進入容器 回到頂部 1.pod管理 1.1建立pod kubectl crea

建立自己的ERC20加密貨幣(可管理、增發、兌換、凍結等高階功能的代幣)

(注:本文是在原文的基礎上,根據個人的理解,修改部分內容並添加了一些註釋) pragma solidity ^0.4.16; interface tokenRecipient { function receiveApproval(address _from, uint

90後iOS開發者的出路,如何規劃30歲前的自己程式設計師必修課)

最近發生了一些和我們沒有直接關係但是有間接關係的事情。比如華為“清洗”高齡基層員工,比如遊戲公司2號員工拿不到股份而離職。先不說事實到底如何,起碼很多碼農是心有慼慼焉。 最近一年多也發生了一些和所有人都有直接關係的事情:全國各大城市的房價都迅速而幅度巨大的上漲。相對漲幅也已

Github建立iOS公有庫

1. 新建工程 cocoapods安裝,(安裝過程請參考: link.) 2. 新建Github倉庫 訪問 github.com,登陸Github,新建一個倉庫,該倉庫用來儲存即將上傳的工程。倉庫需要填寫處如下: 3. 建立pod描述(podspec)檔案

【】建立自己的python模組,傳到pypi

零、先祭出官網連線 一、建立檔案的目錄結構 /string2date /string2date __init__.py string2date.py setup.py LICENSE README.md __init__.py

一步步建立自己iOS 框架

建立你的第一個iOS框架 如果你曾經試圖去建立一個自己的iOS框架的話,你應該知道這件事並不是那些畏懼困難的人能夠成功完成的-畢竟管理依賴和編寫測試並不容易。這篇文章將從開始到最終完成一步步的進行講解,以便你掌握後可以更好的建立自己的框架。 在教程中我們會構建一個框架,框架裡面會暴露一個名為RGBUICol

SpringBoot核心原理---自動配置 之建立自己的starter pom maven依賴

上一篇:SpringBoot 的執行原理之自動配置,瞭解SpringBoot自動配置的原理,在此基礎上動手做一個自己的自動配置依賴包。 一、準備工作 先建立Maven工程: 目錄結構: 二、編碼 MistraService.ja