一、選擇平臺創(chuàng)建私有庫or公開庫(Repo)
? ? ? ? 1.首先我們需要明白自己的這個repo(Repository :倉庫) 性質(zhì),我們平時在項目中運用的大多數(shù)第三方庫就是公開的,大家都能下載使用;私有庫一般運用于公司內(nèi)部項目開發(fā)人員,要使用必須加入到團隊,并且擁有權(quán)限才可以。·
? ? ? ? ?2.選擇平臺:?github?:公開的免費,私有的repo需要收費?$ 7 /月,除了GitHub還有其他平臺也可以建立托管項目倉庫,例如:Gitlab,Coding,Bitbucket,oschina任意一種。本文示例中我們選擇oschina平臺(因為創(chuàng)建私有庫免費??),具體大家可以根據(jù)需求自行選擇。
二、創(chuàng)建倉庫

三、把剛才創(chuàng)建的遠程倉庫克隆到本地,以便增加自己所需要的內(nèi)容
1.把本示例將本地庫放在桌面
cd /Users/icochu/Desktop
2.找到遠程倉庫地址復制下來

3.將項目克隆到本地,在終端執(zhí)行
git clone https://gitee.com/xuxihai/XHTestCocoaPod.git
成功后本地會出現(xiàn)一個“XHTestCocoaPod”文件夾在桌面上,如果克隆失敗,需要檢查是否能執(zhí)行g(shù)it命令或者用戶名、密碼什么的,這屬于git操作范疇,錯誤原因很多(根據(jù)報錯error信息自行百度處理)
四、檢測是否注冊過Trunk
執(zhí)行: pod trunk me

如果沒有,下面是注冊trunk賬號方式:
通過終端指令來操作:?pod trunk register a ‘b’ --verbose
a:用戶的郵箱? ? b:用戶名
操作成功的話會出現(xiàn)如下截圖

注冊成功后需要去注冊的郵箱里面激活,找到郵箱里面的地址,復制地址打開激活,或提示激活成功,激活后再次執(zhí)行pod trunk me 檢查是否已成功打印自己的郵箱跟用戶名
五、回到本地桌面,在XHTestCocoaPod文件夾下面添加文件
1.必須要添加的文件:LICENSE 、.podspec。
?創(chuàng)建.podspec文件:cd 到你的項目下執(zhí)行 pod?spec?create?XHTestCocoaPod
? 或者在github 直接生成

如果創(chuàng)建項目時忘記創(chuàng)建這個文件怎么辦?別著急,有捷徑??。隨便在GitHub上面下載一個正規(guī)的第三方庫,解壓找到里面的這兩個文件,拷貝然后放進自己的本地項目文件中。把文件名改成自己項目名XHTestCocoaPod.podspec,LICENSE可以先不用動。
2.修改配置文件
a.LICENSE(許可證/授權(quán))文件,此文件必須要有,由于是拷貝過來的所以需要修改里面的內(nèi)容,變成屬于自己項目的文件,這里簡單一點就直接用文本編輯器打開文件(或者其他能打開應(yīng)用),
需要把前面的版權(quán)改一下就行了,后面的都一樣Copyright (c) 2018 - 2019 XHTestCocoaPod (https://gitee.com/xuxihai/XHTestCocoaPod)
從Permission is hereby grant..開始的地方不用動。保存,退出編輯器
b.用文本編輯器打開XHTestCocoaPod.podspec編輯修改內(nèi)容
Pod::Spec.new do |spec|
? spec.name? ? ? ? = "XHTestCocoaPod"? #項目名稱
? spec.version? ? ? = "0.0.1" # 版本號與你倉庫的標簽號對應(yīng)
? spec.summary? ? ? = "一個簡單的測試項目." #項目簡介
? spec.description? = <<-DESC
私有Pods測試
? ? ? ? ? ? ? ? ? DESC
? spec.dependency "AFNetworking" #依賴的三方庫
? spec.homepage? ? = "https://gitee.com/xuxihai/XHTestCocoaPod" #個人主頁
? spec.dependency "AFNetworking" #依賴的三方庫
? spec.license? ? ? = "MIT" #開源協(xié)議
? spec.author? ? ? = { "Sniper-xu" => "479865711@qq.com" } #作者
? spec.requires_arc = true? # 是否啟用ARC
? spec.source = { :git => "https://gitee.com/xuxihai/XHTestCocoaPod.git", :tag => spec.version }? #項目遠程倉庫地址
? spec.source_files? = "XHNetwork/**/*.{h,m}"? #路徑以.podspec文件所在的層級開始算,'**' 表示匹配所有子目錄,'*.{h,m}' 表示匹配所有以.h和.m結(jié)尾的文件,'*'表示匹配所有文件
? # spec.screenshots? = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"
? # spec.public_header_files? = "XHNetwork.h" #頭文件(.h文件)
? # spec.platform? ? = :ios, "5.0" #支持的平臺及版本
? # spec.ios.deployment_target = "5.0" #最低支持iOS版本
? # spec.public_header_files = "Classes/**/*.h"
? # spec.resources = "Resources/*.png" 資源文件(配置的文件都會被放到mainBundle中)
? # spec.frameworks = "SomeFramework", "AnotherFramework" #所需的framework,多個用逗號隔開
? # spec.libraries = "iconv", "xml2" #依賴的系統(tǒng)庫
? # spec.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
end
把相應(yīng)的配置修改成自己項目所需
六、本地開始添加自己的項目文件,并上傳到Git

1.完成本地文件添加后提交修改
2.在終端將剛才增加文件提交到緩沖區(qū):??
git add LICENSE
git add XHNetwork/
git add XHTestCocoaPod.podspec
提交:?git commit -m '增加文件'
3.將本地同步修改到遠程倉庫
git push origin master? ? ?//由于我們這里沒有建立分支,所以直接push到默認到主干master即可,用git branch命令查看當前分支
七、標記tag
?git tag 'v0.0.1'? ?//用于標記版本
git push --tags? //將tag推送到遠程倉庫
八、驗證.podspec文件
pod?spec?lint?XHTestCocoaPod.podspec?--verbose
這里出現(xiàn)了錯誤

這里錯誤提示是關(guān)于AFNetworking的一些錯誤,導致錯誤的原因是我們在項目里面依賴了AFNetworking這個第三方庫,但是項目里面找不到相關(guān)的文件,怎么處理??
? ? 我們再新建一個新的Podfile文件,不會的直接拷貝其他工程的這個文件即可

用文本編輯器打開修改里面的內(nèi)容

保存關(guān)閉,將修改提交,同步到遠端
icochudeMacBook-Pro:XHTestCocoaPod icochu$ git add Podfile
icochudeMacBook-Pro:XHTestCocoaPod icochu$ git commit -m '提交新文件'
icochudeMacBook-Pro:XHTestCocoaPod icochu$ git push origin master
再次驗證.podspec文件
pod?spec?lint?XHTestCocoaPod.podspec?--verbose

仍然報錯,查看錯誤信息,發(fā)現(xiàn)是跟target相關(guān)的報錯,返回本地打XHTestCocoaPod.podspec檢查,發(fā)現(xiàn)少設(shè)置了一項參數(shù)spec.ios.deployment_target = '9.0' //開發(fā)最低版本,由于第三方庫設(shè)置了最低版本而本地沒有設(shè)置,導致報錯。添加參數(shù)設(shè)置重新保存提交后再驗證

驗證后提示沒有error只有warning,警告沒有關(guān)系我們可以直接忽略
pod?lib?lint?--allow-warnings

九、發(fā)布
pod trunk push XHTestCocoaPod.podspec

再次出現(xiàn)警告,沒有發(fā)布成功,原因在于如果你在手動驗證 Pod 時使用了 --use-libraries 或 --allow-warnings 等修飾符,那么發(fā)布的時候也應(yīng)該使用相同的字段修飾,否則出現(xiàn)上述問題。
去除警告:pod trunk push --allow-warnings? XHTestCocoaPod.podspec

如果出現(xiàn)上面問題表示需要驗證身份,重新注冊下
pod trunk register '用戶郵箱' '用戶名'
然后郵箱會收到一個郵件,去打開鏈接,會提示激活成功
然后再pod trunk push --allow-warnings? XHTestCocoaPod.podspec
出現(xiàn)下面情況恭喜你,你的私有庫發(fā)布成功

十、驗證發(fā)布
pod search XHTestCocoaPod

無法搜索發(fā)到,出現(xiàn)上述錯誤,刪除文件路徑,重新生成
rm? ~/Library/Caches/CocoaPods/search_index.json
pod?setup
再次運行pod search XHTestCocoaPod

‘o