釋出自己的pods到CocoaPods

西門吹霧發表於2019-03-01

首先更新了用trunk之後,CocoaPods 需要0.33版本以上的,用 pod --version 檢視,如果版本低,需要更新pod 參考guides.cocoapods.org/making/gett…

1.賬號註冊

$ pod trunk register 郵箱 '使用者名稱' --description='電腦描述'
複製程式碼

2.查收郵件

點選郵件的連結就完成了trunk註冊流程。

3.標記tag

cd到專案根目錄

如果未標記tag,驗證的時候會 fatal: Remote branch 0.0.1 not found in upstream origin

$  git tag '0.0.1'
$  git push --tags
複製程式碼

4.建立podspec檔案

$ pod spec create  AdAlertView
複製程式碼

這時候本地就生成一個AdAlertView.podspec檔案

5.用編輯器開啟.podspec檔案

刪除不必要的註釋(這裡只簡單介紹基本用法,所以只用到一部分必須得欄位 更多欄位請移步http://guides.cocoapods.org/syntax/podspec.html) 編輯的時候會報如下錯誤,根據提示修改即可

釋出自己的pods到CocoaPods
開啟spec檔案,修改source_files 和 public_header_files

參照:

s.name         = "verifyNumberCode"
s.version      = "0.0.1"
s.summary      = "A short description of verifyNumberCode."
s.description  =  "實現簡訊驗證碼驗證"
s.homepage     = "https://github.com/IT-iOS-xie/verifyNumberCode.git"
 s.license      = "MIT"
 s.license      = { :type => "MIT", :file => "FILE_LICENSE" }
 s.author             = { "xie" => "*********@qq.com" }
 s.social_media_url   = "http://twitter.com/xie"
 s.platform     = :ios
 s.source       = { :git => "https://github.com/IT-iOS-xie/verifyNumberCode.git", :tag => "0.0.1" }
 s.source_files  = "Classes", "verifyNumberCode/*.{h,m}"
 s.exclude_files = "Classes/Exclude"
 s.public_header_files = "verifyNumberCode/*.h"
 s.requires_arc = true
複製程式碼

podSpecspec的全稱是Specification,說明書的意思。顧名思義,這是用來描述你這個私有pod的說明資訊的。 podSpeccocoapods的一種檔案格式,有一套自己的語法,我們可以到cocoapods官網進行詳細瞭解(guides.cocoapods.org/syntax/pods…)。

建立podSpec很簡單,只要建立一個以.podSpec為字尾的檔案即可,或者直接拷貝別人的進行修改也可以。

它的建立命令是:$pod spec create TestFile

podspec檔案的常用配置欄位介紹

框架名字:框架名字一定要寫對,pod search "框架名"就是搜的這個

 s.name= "yoowei"
複製程式碼

框架版本號

 s.version= "1.0.0"
複製程式碼

框架簡介

 s.summary= "yoowei框架"
複製程式碼

框架的主頁

  s.homepage= "https://git.oschina.net/yoowei"
複製程式碼

框架遵守的開源協議

  s.license   = 'MIT'
複製程式碼

框架的作者

 s.author  = { "yoowei" => "yoowei@126.com" }
複製程式碼

框架的資源路徑:路徑可以指向遠端程式碼庫,也可以指向本地專案,例如: 1.指向遠端程式碼庫: { :git => "git@git.oschina.net:yoowei/yoowei.git", :tag => "1.0.0" } 2.指向本地專案: { :path => 'yoowei', }

  s.source  = { :git => "git@git.oschina.net:yoowei/yoowei.git", :tag => "1.0.0" }
複製程式碼

框架被其他工程引入時,會匯入yoowei目錄下的.h和.m檔案

  s.source_files = 'yoowei/**/*.{h,m}'
複製程式碼

框架被其他工程引入時,會匯入yoowei/resource目錄下的資原始檔

  s.resources = {
    'yoowei' => ['yoowei/resource/**/*.{storyboard,xcassets,xib,png']
  }
複製程式碼

框架依賴的framework

  s.framework = 'CoreData'
複製程式碼

框架依賴的其他第三方庫

  s.dependency 'MagicalRecord', :git => 'https://github.com/iiiyu/MagicalRecord.git', :tag => 'sumiGridDiary2.1'
  s.dependency 'MBProgressHUD'
複製程式碼

框架是否需要支援ARC

  s.requires_arc = true
複製程式碼

框架支援的最低平臺版本

s.platform = :ios, '7.0'
複製程式碼

框架公開的標頭檔案

 s.public_header_files = 'yoowei/**/*.h'
複製程式碼

6.驗證spec檔案

編輯完podspec檔案後需要驗證一下這個檔案是否可用podspec檔案不允許有任何的Warning或者Error 執行命令

$ pod lib lint
複製程式碼

有事會出現部分警高

釋出自己的pods到CocoaPods
忽略警高

$ pod lib lint --allow-warnings
複製程式碼

7.push podspec檔案

$ pod trunk push AdAlertView.podspec
複製程式碼

釋出自己的pods到CocoaPods
忽略警告

$  pod trunk push AdAlertView.podspec --allow-warnings
複製程式碼

如果此時報下面的錯誤,沒有設定tag

釋出自己的pods到CocoaPods
trunk成功

釋出自己的pods到CocoaPods

我們現在就可以使用pod search adalertview

釋出自己的pods到CocoaPods
如果提示[!] Unable to find a pod with name, author, summary, or description matchingadalertview`` 1.Finder前往資源庫去刪除快取中的search_index.json(xie修改成你自己的) /Users/xie/Library/Caches/CocoaPods刪除search_index.json或執行

rm ~/Library/Caches/CocoaPods/search_index.json
複製程式碼

然後再輸入pod search時會重新建立這個search_index.json

有時候釋出完可能需要等一段時間才能搜尋到。

相關文章