一、註冊Trunkios
trunk須要CocoaPods 0.33版本以上,用pod --versiongit
命令查看版本github
CocoaPods版本json
若是版本低,須要升級:xcode
sudo gen install cocoapods
pod setup
查看本身是否註冊過Trunk框架
pod trunk me
沒有註冊過工具
註冊 ui
// 加上--verbose能夠輸出詳細debug信息,方便出錯時查看。 pod trunk register zhangyqyx@163.com "zhangyqyx" --verbose "zhangyqyx" 裏面表明你的用戶名,最好起一個好的名字 zhangyqyx@163.com 表明你的郵箱
註冊完成以後會給你的郵箱發個郵件,進入郵箱郵件裏面有個連接,須要點擊確認一下this
註冊成功後能夠再查看一下我的信息pod trunk meurl
查看註冊信息
二、建立一個項目
一、github上建立一個項目
建立項目
二、將項目克隆下來,並添加公開庫文件
添加後的項目目錄
三、建立.podspec
1、cd 到你的項目下 // 注 ZYRunTimeCoT 這個是你框架的名稱 2、pod spec create ZYRunTimeCoT
四、編輯.podspec文件
Pod::Spec.new do |s| s.name = "ZYRunTimeCoT" s.version = "0.0.1" s.ios.deployment_target = '8.0' s.summary = "簡介" s.homepage = "https://github.com/zhangyqyx/ZYRunTimeCoT" s.social_media_url = 'https://www.baidu.com' s.license = "MIT" # s.license = { :type => "MIT", :file => "FILE_LICENSE" } s.author = { "zyq" => "zhangyqyx@163.com" } s.source = { :git => 'https://github.com/zhangyqyx/ZYRunTimeCoT.git', :tag => s.version} s.requires_arc = true s.source_files = 'runtime/*' #s.public_header_files = 'runtime/TFRuntimeManager.h' end
接下來說解一下每行代碼的含義
s.name:名稱,pod search 搜索的關鍵詞,注意這裏必定要和.podspec的名稱同樣,不然報錯
s.version:版本號
s.ios.deployment_target:支持的pod最低版本
s.summary: 簡介
s.homepage:項目主頁地址
s.social_media_url:社交網址,這裏我寫的微博默認是百度,若是你寫的是你本身的博客的話,你的podspec發佈成功後會@你
s.license:許可證
s.author:做者
s.source:項目的地址
s.requires_arc: 是否支持ARC
s.source_files:須要包含的源文件
s.public_header_files:公開的頭文件
//其餘
s.resources: 資源文件
s.dependency:依賴庫,不能依賴未發佈的庫,能夠寫多個依賴庫
常見的寫法:
一、dependency:寫法
s.dependency = 'AFNetworking' , 'SDWebImage'
二、source_files: 寫法
'runtime/*' 'runtime/runtime/*.{h,m}' 'runtime/**/*.h'
'*'表示匹配全部文件
'*.{h,m}' 表示匹配全部以.h和.m結尾的文件
'**' 表示匹配全部子目錄
三、source: 常見寫法
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea" } s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea", :tag => 1.0.0 } s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :tag =>#{s.version}}
commit => "68defea" 表示將這個Pod版本與Git倉庫中某個commit綁定
tag => 1.0.0 表示將這個Pod版本與Git倉庫中某個版本的comit綁定
tag => s.version 表示將這個Pod版本與Git倉庫中相同版本的comit綁定
五、若是前面沒有選擇建立這個LICENSE文件, 建立LICENSE(許可證/受權)文件,此文件必需要有
建立一個文件名字命名爲LICENSE,內容爲:只須要把前面的版權改一下就好了,後面的都同樣
Copyright (c) 2013-2015 ZYRunTimeCoT (https://github.com/zhangyqyx/ZYRunTimeCoT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
六、上傳到Git
將包含配置好的 .podspec, LICENSE 的項目提交 Git
七、打tag
給項目打標籤, 標籤號要與podspec
文件裏面的一致
//爲git打tag, 第一次須要在前面加一個v git tag "v0.0.1" // 若是出現錯誤,試一下不加v的狀況 //git tag -a 1.0.0 -m '標籤說明'
//將tag推送到遠程倉庫 git push --tags
若是咱們的tag打錯了,沒有用的話,咱們應該怎麼刪除呢?
一、查看tags
git tag 就會羅列出咱們全部的tags
二、刪除本地tags
git tag -d + 分支名稱就會刪除本地的分支
三、刪除遠程分支
git push origin :refs/tags/分支名稱 就刪除了遠程分支
如圖
刪除tag
八、驗證.podspec文件
// --verbose 若是驗證失敗會報錯誤信息 pod spec lint ZYRunTimeCoT.podspec --verbose
若是出現這種警告性的問題
項目可能同時依賴了本地的framework
與.a
這個時候要在校驗spec
文件的時候加參數 --allow-warnings
pod lib lint --allow-warnings
出現這種狀況就說明咱們經過了驗證
經過驗證
若是出現這種狀況,多是你的那個版本找不到這個文件,
找不到文件
你能夠嘗試 s.source 添加一句 :commit => "68defea" 68defea是你的版本號,如圖
添加版本號
9 、發佈
發佈時會驗證 Pod 的有效性,若是你在手動驗證 Pod 時使用了 --use-libraries 或 --allow-warnings 等修飾符,那麼發佈的時候也應該使用相同的字段修飾,不然出現相同的報錯。
// --use-libraries --allow-warnings pod trunk push ZYRunTimeCoT.podspec
出現這種狀況就說明你發佈成功了,等待人家審覈就好了
發佈成功
十、驗證倉庫
pod search ZYRunTimeCoT.
你可能會出現這種狀況錯誤
解決 ,刪除文件路徑,從新生成
rm ~/Library/Caches/CocoaPods/search_index.json
pod setup
若是仍是不行,估計是在你的項目還在審覈中,你能夠經過其餘輔助手段去驗證;
一、執行 pod trunk me 命令,看看有沒有你的庫
查看庫信息
二、在CocoaPod管理全部第三方庫(CocoaPod管理的庫)中所搜一下(這個也有延時,若是搜索到就出現這樣的結果,展現的是上一個集成庫的搜索結果)
搜索結果
共有庫的建立這裏就結束了。
一、建立一個私有的項目(能夠是公司本身的git管理工具、也能夠是碼雲上的),建立方法同公共庫的第二步
二、建立.podspec
方法同公共庫建立的第三步
三、編輯.podspec文件
方法同公共庫建立的第四步
四、上傳到Git
方法同公共庫建立的第六步
五、打tag
方法同公共庫建立的第七步
六、驗證.podspec文件
方法同公共庫建立的第八步
七、添加一個私有庫並和項目地址作綁定 (MyRepo用來 存放全部私有庫 各個版本的描述文件)
pod repo add MyRepo https://github.com/zhangyqyx/ZYRunTimeCoT.git
//查看在 Finder 目錄cd ~/.cocoapods/repos, 能夠發現增長了一個 MyRepo 的儲存庫
八、向私有的庫裏添加podspec文件(將咱們的代碼倉庫的描述信息,push 到咱們的版本倉庫中)
先更新下咱們的版本庫 pod repo update MyRepo (要否則會報錯)
pod repo push MyRepo xxxx.podspec
九、新建一個項目進行驗證
xcode新建項目 在podfile中添加
pod 'ZYRunTimeCoT', '~> 0.0.1'
//若是提示 'unable to find a specification for'
//須要在podfile文件中添加源地址(私人pod庫指明你的版本庫地址) source 'https://git.oschina.net/baiyingqiu/MyRepo.git' //**注意**是版本庫的地址,而不是代碼庫的地址, //如有還使用了公有的pod庫,須要把公有庫地址也帶上 source 'https://github.com/CocoaPods/Specs.git
最後的Podflie文件變成這個樣子
source ‘https://github.com/CocoaPods/Specs.git’ source ‘https://git.oschina.net/baiyingqiu/MyRepo.git’ platform :ios, '8.0' target ‘MyPodTest’ do use_frameworks! pod 「AFNetWorking」 #公有庫 pod ‘ZYRunTimeCoT’ #咱們的私有庫
end
執行 pod install 命令時:
Podflie
中source
標記 版本庫 到本地的repos
文件夾中pod ‘ZYRunTimeCoT
’
的 ZYRunTimeCoT.podspec
文件。.podspec
文件中描述的源碼地址下載並整合到項目中