iOS建立自己cocoaPods庫


由於公司的項目比較多,多個項目之間有很多公共的東西,各種姿勢百度之后決定使用碼雲私有庫+cocoaPods的方式來管理公共部分的代碼(公司的代碼是不能公開的,所以用的是碼雲)。

本文講的是從頭開始的流程:

1、在碼雲上創建一個自己的私有倉庫,本人是使用的sourceTree在本地進行的版本管理

參考:使用碼雲創建屬於你的免費私有git倉庫

2、在終端,cd到你的項目文件目錄中,創建podspec文件:

pod spec create xxxxx

文件名最好與你的庫名字一致,庫名字最好不要與pods上其他庫名字重復

創建成功后,項目文件目錄下會多一個xxxxx.podspec的文件,這個相當於pods倉庫的配置文件,配置內容具體如下:

# Pod::Spec.new do |s|
# s.name             = "PodTestLibrary"    #名稱
# s.version          = "0.1.0"             #版本號
# s.summary          = "Just Testing."     #簡短介紹,下面是詳細介紹
# s.description      = <<-DESC
# Testing Private Podspec.
# DESC
# s.homepage         = "https://git.oschina.net/wuhongxing/PrivateRepo.git"                           #主頁,這里要填寫可以訪問到的地址,不然驗證不通過
# s.screenshots     = "www.example.com/screenshots_1", "www.example.com/screenshots_2"           #截圖
# s.license          = 'MIT'              #開源協議
# s.author           = { "wtlucky" => "wtlucky@foxmail.com" }                   #作者信息
# s.source           = { :git => "https://git.oschina.net/wuhongxing/PrivateRepo.git", :tag => "0.1.0" }      #項目地址,這里不支持ssh的地址,驗證不通過,只支持HTTP和HTTPS,最好使用HTTPS
# s.social_media_url = 'https://twitter.com/<twitter_username>'                       #多媒體介紹地址

# s.platform     = :ios, '8.0'            #支持的平台及版本
# s.requires_arc = true                   #是否使用ARC,如果指定具體文件,則具體的問題使用ARC

# s.source_files = 'Pod/Classes/**/*.{h,m}'     #代碼源文件地址,**/*表示Classes目錄及其子目錄下所有文件,如果有多個目錄下則用逗號分開,如果需要在項目中分組顯示,這里也要做相應的設置
# s.resource_bundles = {
# 'PodTestLibrary' => ['Pod/Assets/*.png']
# }                                       #資源文件地址
# s.public_header_files = 'Pod/Classes/**/*.h'   #公開頭文件地址
# s.frameworks = 'UIKit'                  #所需的framework,多個用逗號隔開
# s.dependency 'AFNetworking', '~> 2.3'   #依賴關系,該項目所依賴的其他庫,如果有多個需要填寫多個s.dependency
# end

然后將代碼提交。

這個配置文件的配置內容很重要,配置的對錯,會決定你的代碼能否成功的推送到pods

3、為你的code打上tag版本號

git tag '0.0.1'
git push --tags

版本號自己確定,與podspec配置文件內的版本號相匹配

4、注冊trunk

pod trunk register xxxx@xxxx.com 'xxxx' --description='xxxx' --verbose
xxxx@xxxx.com一個可用的郵箱,注冊成功之后會收到一份郵件需要點開
'xxxx'用戶名
--description='xxxx'描述
--verbose如果出現錯誤,顯示更多信息

查看自己的信息:
pod trunk me

添加其他維護者

pod trunk add-owner xxxxxxx xxxxx@xxxx.com
xxxxxxx 庫的名字
xxxxx@xxxx.com 其他人的trunk郵箱

 

5、提交到CocoaPods trunk

pod trunk push --allow-warnings

該操作會對本地的代碼及podspec配置文件進行檢查,允許警告WARN但不允許報錯ERROR

也可以自己手動檢查

pod lib lint --allow-warnings

 如果是在項目文件目錄下pod lib lint后面不需要跟xxxxx.podspec文件名,--allow-warnings是允許警告

6、上面的步驟成功之后

pod search 你的庫名

就能搜索到了

6、接下來是更新代碼,然后推送到pods的流程。

我的代碼庫里只是一些零散的文件,由於推送到pods的代碼不能報錯,所以我這里是新建了一個空項目,然后把公共依賴的文件放到一個文件夾內Classes(名字隨意),拖到項目中,在提交的時候先編譯一下,確保沒有報錯。

這樣做的同時podspec里

s.source_files的配置也要改為指定的文件目錄:項目名/Classes/**/*.{h,m}

本地文件改動后,提交到git

7、然后重復步驟3,為你的代碼打上tag,並推送tag(tag不能重復)

8、然后步驟5推送到trunk,這一步檢查的時候很容易失敗,報出的錯誤可以翻譯過來針對性的找一下問題,基本意思都很明確

以后在每個項目中之需要在Podfile文件中增加自己的庫,然后

pod install

每次有更新 pod update 你的庫名

即可

可以參考:發布自己的pods到CocoaPods trunk

     https://www.cnblogs.com/richard-youth/p/4704413.html

 

 在引用Masonry時,需要在podspec配置文件中增加

s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }

參考:[CocoaPod]基於私有倉庫的pod創建問題

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM