準(zhǔn)備工作:
- 先檢查下cocopod版本,最好版本至少在
1.6.0.beta.1及以上 - Git代碼托管平臺。比如GitHub、Gitlab、Bitbucket、開源中國、coding.net、csdn.net
1. 創(chuàng)建代碼庫和索引庫


:索引庫有一個就可以了,這兩個不需要寫任何東西,創(chuàng)建好扔一邊就行了。
2. 創(chuàng)建本地索引庫
在終端執(zhí)行下面命名就行
cd .cocoapods/repos
pod repo add 索引庫名字 索引庫地址
索引庫里面用上面創(chuàng)建名字
地址在創(chuàng)建后會有比如https://gitlab.com/xxx/PrivateSpec.git

執(zhí)行一下ls 或者前往 .cocoapods/repos 看添加是否成功
2. 創(chuàng)建項目工程文件
終端 cd 到你要創(chuàng)建到路徑下面,然后執(zhí)行
pod lib create 代碼庫名字
固定步驟,這個就直接偷圖了

然后我們會得到一個項目,不修改的話 我們會默認(rèn)提交
項目名/class下面2級的文件,如果有需要可以自己更改source_files的格式
提交之后所有文件都會在一個文件夾下面,強(qiáng)迫癥肯定不能忍,這個后面說,一般沒什么必要改了,也是因為比較麻煩。
3. 準(zhǔn)備提交
把需要提交的代碼放到路徑下面,然后修改.podspec文件,只挑了我用到的一些要修改的來說明
s.name = "BaseLib" #工程的名字
s.version = "1.0.0" #工程的版本
s.summary = "Gray's modularization BaseFramework." #工程的摘要
s.description = "Gray's BaseFramework demo" #工程的描述
s.homepage = "http://gitlab.com/作者名/BaseLib" #工程的首頁
s.swift_version = '4.0' #工程的swift版本
s.ios.deployment_target = "8.0" #工程的編譯版本
s.source = { :git => "#工程的git地址", :tag => "#{s.version}" } #創(chuàng)建的代碼庫git地址 https://XXXX.XXX.git
s.source_files = "Classes", "Classes/**/*.{h,m}" #工程需要引入的文件
s.exclude_files = "Classes/Exclude" #工程不需要引入的文件
s.public_header_files = "Classes/**/*.h" #工程需要暴露出來的頭文件
s.resources = "Resources/*" #工程需要引入的資源文件(圖片,xib等)
s.resource_bundles = {'Resources' => 'XXX.framework/Resources/XXX.bundle'} #工程需要引入的bundle
s.frameworks = "ImageIO" #工程依賴的framework
s.vendored_frameworks = [] #工程依賴的第三方framework
s.libraries = "iconv", "xml2" #工程依賴的library
s.vendored_libraries = [] #工程依賴第三方的library
s.dependency "AFNetworking", "~> 3.0" #工程依賴的第三方庫
代碼寫好,podspec修改好就開始提交了,有些地方說驗證修改后的podspec,但是因為改過很多次了 所以覺得沒什么必要
4. 提交
cd 到項目文件夾,不是Example文件夾
如果是第一次提交的話
cd existing_folder
git init
git remote add origin https://gitlab.com/xxx.git
不是第一次就從這開始
cd existing_folder
git add .
git commit -m "注釋"
git pull origin master(先拉一下代碼,防止多人開發(fā)的時候別人有提交的代碼)
git push -u origin master
git tag 1.0.0
git push origin 1.0.0
上傳成功后 就可以在gitLab tag1.0.0下面看見代碼,這個時候還是不能用的,還需要提交索引庫
cd existing_folder
pod repo push PrivateSpec BaseLib.podspec
格式是pod repo push +索引庫名字 +.podspec文件名
這個過程會有點小長,如果有Error 就按提示改就行了,一般都會很順利
這個地方常見問題
如果私有庫添加了靜態(tài)庫或者dependency用了靜態(tài)庫需要加上--use-libraries
想看見更詳細(xì)的信息 后面加上 --verbose
忽略警告--allow-warnings
索引庫地址--sources='xxx.git'
如果是OC和swift 的混編 加上--use-modular-headers(這個地方官方文檔原話是Lint uses modular headers during installation..)
具體參考cocopod Command-line Reference文檔
最后格式可能是
pod repo push PrivateSpec BaseLib.podspec --verbose --allow-warnings --use-libraries --use-modular-headers
這個就看 項目需求吧
4. 使用
和正常cocopod 的Podfile使用差不多的,在最前面加上
source 'https://github.com/CocoaPods/Specs.git'
#這里用的是索引地址
source 'https://gitlab.com/xxx/privatespec.git'
然后就可以
pod 'BaseLib', '~> 1.0.0'
也有人把sorece 寫在pod后面,這個就看個人習(xí)慣了