創(chuàng)建一個私有的podspec包括如下那么幾個步驟:
1.創(chuàng)建并設(shè)置一個私有的Spec Repo。2.創(chuàng)建Pod的所需要的項目工程文件,并且有可訪問的項目版本控制地址。3.創(chuàng)建Pod所對應(yīng)的podspec文件。4.本地測試配置好的podspec文件是否可用。5.向私有的Spec Repo中提交podspec。6.在個人項目中的Podfile中增加剛剛制作的好的Pod并使用。7.更新維護(hù)pod spec。
創(chuàng)建并設(shè)置一個私有的Spec Repo
創(chuàng)建一個倉庫https://github.com/TRZXDev/TRZX_Repositories
屏幕快照 2017-01-16 13.55.34.png
本地添加私有源
pod repoadd[Private Repo Name] [GitHub HTTPScloneURL]---------------------------------------------------------pod repoaddTRZX_Repositories https://github.com/TRZXDev/TRZX_Repositories
此時如果成功的話cd到~/.cocoapods/repos目錄下就可以看到TRZX_Repositories這個目錄了。
屏幕快照 2017-01-16 14.04.26.png
至此第一步創(chuàng)建私有Spec Repo完成。
創(chuàng)建Pod的所需要的項目工程文件,并且有可訪問的項目版本控制地址
創(chuàng)建一個Xcode項目 TRZX_Test
在TRZX_Test項目下創(chuàng)建名為TRZX_Test的文件夾,后面我們需要做成私有pod的文件均放在該文件夾下
在TRZX_Test文件下面添加TRZX_Test文件
屏幕快照 2017-01-17 13.47.04.png
在gitHub新建一個project名為TRZX_Test項目
屏幕快照 2017-01-17 13.48.12.png
關(guān)聯(lián)本地項目推送至gitHub
echo"# TRZX_Test">> README.md
git init
git add .
git commit -m"first commit"
git remote add origin https://github.com/TRZXDev/TRZX_Test.git
git push -u origin master
假如我們的源是origin,分支是master,那么我們 需要這樣寫需要知道,我們的源可以是本地的路徑
git pull origin master--allow-unrelated-histories
因cocoaPods強制添加開源許可文件,在TRZX_Test工程目錄下創(chuàng)建FILE_LICENSE
echoMIT>FILE_LICENSE
創(chuàng)建podspec文件
podspeccreate TRZX_Test
執(zhí)行命令vim .TRZX_Test.podspec編輯podspec文件
0.s.summary
s.summary="Testing? TRZX_Test."
1.s.description 添加描述
s.description? = <<-DESCTestingPrivatePodspec.DESC
2.s.platform 最低支持iOS版本
# s.platform? ? = :ioss.platform? ? =:ios,"9.0"
3.s.homepage
s.homepage="https://github.com/TRZXDev/TRZX_Test"
4.s.license
#s.license="MIT (example)"s.license= { :type =>"MIT", :file =>"FILE_LICENSE"}
5.s.source
s.source? ? ? = { :git=>"https://github.com/TRZXDev/TRZX_Test.git", :tag=>"#{s.version}"}
6.s.source_files
s.source_files="CRProtocolManager","CRProtocolManager/**/*.{h,m}"
退出編輯執(zhí)行命令
編輯完podspec文件后,需要驗證一下這個文件是否可用,如果有任何WARNING或者ERROR都是不可以的,它就不能被添加到Spec Repo中,不過xcode的WARNING是可以存在的,驗證需要執(zhí)行一下命令
podliblint
當(dāng)你看到
屏幕快照 2017-01-17 14.34.50.png
時,說明驗證通過了,不過這只是這個podspec文件是合格的,不一定說明這個Pod是可以用的,我們需要在本地做一下驗證
把剛才的修改Add到本地
gitadd.git commit -m'編輯.podspec'
添加tag 一定要和podspec中的version一致
gittag0.0.1
把剛才添加的tag提交上去
git push originmaster--tags
屏幕快照 2017-01-17 14.28.28.png
把TRZX_Test項目添加到準(zhǔn)備工作中的私有源倉庫TRZX_Repositories
pod repopushTRZX_Repositories TRZX_Test.podspec --verbose--allow-warnings
執(zhí)行成功后
pod search TRZX_Test應(yīng)該就能搜索到了
如果發(fā)現(xiàn)搜索不到剛才的組件
rm ~/Library/Caches/CocoaPods/search_index.json
然后在進(jìn)行搜索就可以搜索到了
注意
此時由于你當(dāng)前工程B依賴的工程是私有庫,于是會報錯:
- ERROR | [iOS]unknown: Encountered anunknownerror
pod sepc lint 文件名.podspec --sources='http://[privateLibName]/cocoaspecs.git,https://github.com/CocoaPods/Specs.git'
報錯 ···
error:include of non-modular header inside framework module ··· [-Werror,-Wnon-modular-include-in-framework-module]
解決辦法:在pod lib lint 或者 pod spec lint 以及 pod repo push ....時候加上 --use-libraries
podliblint--use-libraries#或者pod spec lint --use-libraries#當(dāng)然,在提交的時候也要加上pod repo push --use-libraries#或者pod repo push TRZX_Repositories TRZX_Test.podspec --verbose --allow-warnings --use-libraries