iOS創建本身cocoaPods庫

因爲公司的項目比較多,多個項目之間有不少公共的東西,各類姿式百度以後決定使用碼雲私有庫+cocoaPods的方式來管理公共部分的代碼(公司的代碼是不能公開的,因此用的是碼雲)。html

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

一、在碼雲上建立一個本身的私有倉庫,本人是使用的sourceTree在本地進行的版本管理git

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

二、在終端,cd到你的項目文件目錄中,建立podspec文件:ui

pod spec create xxxxx

文件名最好與你的庫名字一致,庫名字最好不要與pods上其餘庫名字重複url

建立成功後,項目文件目錄下會多一個xxxxx.podspec的文件,這個至關於pods倉庫的配置文件,配置內容具體以下:spa

# 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

而後將代碼提交。.net

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

三、爲你的code打上tag版本號code

git tag '0.0.1'
git push --tags

版本號本身肯定,與podspec配置文件內的版本號相匹配

四、註冊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郵箱

 

五、提交到CocoaPods trunk

pod trunk push --allow-warnings

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

也能夠本身手動檢查

pod lib lint --allow-warnings

 若是是在項目文件目錄下pod lib lint後面不須要跟xxxxx.podspec文件名,--allow-warnings是容許警告

六、上面的步驟成功以後

pod search 你的庫名

就能搜索到了

六、接下來是更新代碼,而後推送到pods的流程。

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

這樣作的同時podspec裏

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

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

七、而後重複步驟3,爲你的代碼打上tag,並推送tag(tag不能重複)

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

之後在每一個項目中之須要在Podfile文件中增長本身的庫,而後

pod install

每次有更新 pod update 你的庫名

便可

能夠參考:發佈本身的pods到CocoaPods trunk

     http://www.javashuo.com/article/p-wefwgsii-et.html

 

 在引用Masonry時,須要在podspec配置文件中增長

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

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

相關文章
相關標籤/搜索