iOS 私有庫

準(zhǔn)備工作:

  1. 先檢查下cocopod版本,最好版本至少在1.6.0.beta.1 及以上
  2. Git代碼托管平臺。比如GitHub、Gitlab、Bitbucket、開源中國、coding.net、csdn.net
1. 創(chuàng)建代碼庫和索引庫
91B00982-15B9-42C6-B445-C0BEC9EC3EA6.png
238A85C9-B5B8-4466-A25C-0C4CC9BB35FD.png

:索引庫有一個就可以了,這兩個不需要寫任何東西,創(chuàng)建好扔一邊就行了。

2. 創(chuàng)建本地索引庫

在終端執(zhí)行下面命名就行

cd .cocoapods/repos
pod repo add 索引庫名字  索引庫地址

索引庫里面用上面創(chuàng)建名字
地址在創(chuàng)建后會有比如https://gitlab.com/xxx/PrivateSpec.git

7D591178-CF0C-453C-BEB0-EA7CF6B4F608.png

執(zhí)行一下ls 或者前往 .cocoapods/repos 看添加是否成功

2. 創(chuàng)建項目工程文件

終端 cd 到你要創(chuàng)建到路徑下面,然后執(zhí)行

pod lib create 代碼庫名字

固定步驟,這個就直接偷圖了


2007398-96de8c96c322a3ef.png

然后我們會得到一個項目,不修改的話 我們會默認(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í)慣了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容