上傳我的第三方庫到cocoapods

上傳我的庫到cocoapods

1.1 在GitHub建立項目

  • 填寫項目名
  • 填寫項目描述
  • 設置庫公開(Public)
  • 添加證書及README文件,證書也能夠在項目建立完成後點擊Create new file並輸入LICENSE,點擊右上角出現的Choose a license template選擇須要的證書並添加進去

設置完成後直接克隆到本地,並將工程代碼複製進該文件夾ios

1.2 建立podspec文件

1.2.1 經過終端進克隆到本地的文件夾
cd xxx
1.2.2 建立podspec文件
pod spec create xxx
  • xxx爲本身建立的庫的名字,如Alamofire
1.2.3 配置podspec文件
@version = "0.0.1"
Pod::Spec.new do |s|
s.name = "MCircleBoard"
s.version = @version
s.summary = "MCircleBoard"
s.description = "MCircleBoard is a dash board."
s.homepage = "https://github.com/MichaelLynx/MCircleBoard"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "xxx" => "xxxxxx@qq.com" }
s.platform = :ios
s.ios.deployment_target = "8.0"
s.source = { :git => "https://github.com/MichaelLynx/MCircleBoard.git", :tag => "v#{s.version}" }
s.source_files = "Code/*.swift"
s.resources = ["Code/*.xcassets"]
s.swift_version = "4.0"
s.requires_arc = true
s.framework = "UIKit"

end
  • 若是有依賴庫則增長如:s.dependency "AFNetworking", '~> 3.0'
  • 比較重要的字段有:nameversionsummaryhomepagelicenseauthordeployment_targetsourcesource_filesrequires_arc
  • source_files:最好把要上傳的文件放在專門的文件夾下
  • 往庫裏添加資源:添加bundle而後設置屬性resource\`resources\\resource_bundles`

spec裏添加資源:git

spec.resource = 'Code/MCircleBoardIcon.bundle'
spec.resources = ['Images/*.png', 'Sounds/*']
spec.resource_bundles = {
    'YourBundleName' => ['MapView/Map/Resources/*.png'],
    'OtherResources' => ['MapView/Map/OtherResources/*.png']
  }

bundle內圖片的調用方式:github

var bundle = Bundle(for: theClass.self)
if let resoucePath = bundle.path(forResource: "bundleName", ofType: "bundle"), let resouceBundle = Bundle(path: resoucePath) {
    bundle = resouceBundle
}
let image = UIImage(named: imageName, in: bundle, compatibleWith: nil) ?? UIImage()
  • 要設置成爲第三方庫,獲取圖片只能經過該方式,而不能像主工程項目裏的獲取方式
  • theClass:工程項目名稱;bundleName:對應的bundle的名字

podspec字段說明:swift

字段 做用
name 庫的名稱
version 版本號,該號必定要和GitHub上的對應,參見下面的步驟
summary 該庫的一個簡介
homepage 這個庫的主頁,對應Github上的地址
license 採用何種license,和建立GitHub時候選擇的那個要對應
author 做者
deployment_target 可使用該庫的iOS的最低版本
source 數據源,對應的是你clone的時候使用的那個HTTPS的連接地址
source_files 哪些文件是要上傳到pods的
requires_arc 是否在ARC環境下使用
dependency 該庫還引用了哪些第三方庫

1.3 GitHub上建立發佈版本

  • podspec文件驗證無誤後須要先將項目更新到GitHub上
  • 更新完畢後再release建立新版本,Tag version以v開頭,後接版本號,標題release title須要填寫
  • 若是操做過程當中有對代碼進行了更改,則須要刪除release,上傳代碼並從新建立該release

1.4 註冊Trunk帳號及上傳項目

1.4.1 註冊cocoapods帳號
若是已經註冊成功帳號,則這步跳過

在終端輸入指令:ruby

pod trunk register 郵箱地址 '用戶名' —description='描述信息'
或
pod trunk register 郵箱地址 '用戶名'  --verbose
  • 用戶名後面的信息可不寫
  • 註冊成功後會提示去郵箱驗證信息
  • 註冊的信息最好和GitHub保持一致,方便記憶
  • 這裏註冊的郵箱地址和用戶名即podspec的author

驗證成功後在終端輸入如下命令確認是否註冊成功ui

pod trunk me
  • 出現用戶信息則註冊成功
1.4.2 驗證podspec文件
若是確認podspec文件沒問題則能夠不進行驗證

若是配置得正確,則輸入驗證命令後會提示:passed validation.code

podspec文件配置完成以後能夠在終端輸入指令進行驗證orm

pod spec lint XXX.podspec
  • 若是驗證的結果有error則必須按要求進行處理;若是有warning則能夠選擇處理也能夠忽視
  • 後面的XXX.podspec可省略
  • pod lib lint只從本地驗證你的pod可否經過驗證;pod spec lint從本地和遠程驗證你的pod可否經過驗證。pod lib lint可省略,直接用pod spec lint進行驗證
1.4.3 上傳cocoapods

輸入如下指令將代碼上傳到cocoapods:圖片

pod trunk push

若是以前驗證的結果裏有warning,則能夠用--allow-warnings忽略警告:ip

pod trunk push --allow-warnings

完成後出現Tell your friends字樣則證實上傳完畢,能夠經過pod search XXX指令來驗證是否上傳成功。

若是沒搜索出來則能夠經過pod repo update更新本地的pod庫,而後再進行搜索。

若是事先已經下載了舊版的庫,能夠直接cd到該工程,並pod update 第三方庫名,哪怕暫時沒法搜索出來,pod update依然能夠有效將其更新到最新版本。

如下是我本身建立的第三方庫,歡迎點個Star,也歡迎相互交流。
MCircleBoard

相關文章
相關標籤/搜索