Cocoapods制作

用了這么多的pod的第三方工具,今天就想做一個自己的Cocoapods的工具,一方面給自己用,一方面也可以也給別人用。下面先說制作開源的Pod。

1. 用github賬號添加項目

  • 注冊github賬號,相信大家都有了,沒有的請自己去注冊一個賬號吧,畢竟大部分開源的工具都是放在這里的。我們的示例也是放在這里的。如果是私有的,你們放在自家git就好了。

    創建項目的時候License是默認選擇上MIT.并且帶上README.md文件,以供別人閱讀快捷使用

  • 創建一個項目并附上完整的代碼。上傳至github就好啦。我的項目結構大致如下:


    項目結構

2. 創建podspec文件,并配置

創建podspec文件

  1. cd 到 項目文件夾
  2. 創建podspec 文件。下面??命令記得替換成自己的項目名
$ pod spec create XJContactPicker 

配置podspec文件

創建完成之后,用Xcode打開就會發現里面一堆配置。有耐心的童鞋可以讀一下都需要配置的信息(推薦)。下面貼出我這邊配置的信息

Pod::Spec.new do |s|

# ―――  Spec Metadata  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# 下面三個是分別是名稱、版本、簡介。這個在pod search的時候會顯示出來

s.name         = "XJContactPicker"
s.version      = "0.0.1"
s.summary      = "簡單的聯系人選取器 A simple picker for Contacts"

#  主頁地址
s.homepage     = "https://github.com/LiuXiangJing/XJContactPicker.git"

#證書
s.license      = "MIT"

#作者信息
s.author             = { "LiuGuLu" => "lxj_tintin@126.com" }

# 使用平臺以及版本
s.platform     = :ios, "8.0"

#github地址 或你代碼放的地址
s.source       = { :git => "https://github.com/LiuXiangJing/XJContactPicker.git", :tag => "#{s.version}" }

# 這個比較重要了。他就是指你哪個文件下的 .h 和.m作為庫的內容。我這邊直接設置的ContactsManager
# 文件夾下的所有類。
s.source_files  =  "ContactsManager/**/*.{h,m}"

# 所需要的系統庫、單個的用第一個,多個的用第二個
# s.framework  = "SomeFramework"
s.frameworks = "AddressBookUI", "AddressBook", "Contacts", "ContactsUI"

# 如果是需要引進其他Cocoapod的庫
#s.dependency "AFNetworking", "~> 3.1.0"
#s.dependency "MBProgressHUD", "~> 1.0.0"

end

3. 提交到trunk

提交之前,建議把README.md文件書寫完畢,然后把所有的更改提交github,然后打一個tag版本。版本號跟podspec中的s.version一致。

然后注冊pod賬號,注意下面??替換成你的郵箱,以及名字。cocoapod不通過密碼驗證用戶。

$ pod trunk register  youremail@gmail.com 'Yang Xiaoyu'  --verbose

之后你的郵箱就會收到一封郵件,激活一下就可以使用啦。下面命令驗證你的賬號,會輸出你的相關信息

$ pod trunk me

接下來就可以提交啦,不過這個時候可以提前驗證一下你的podspec

$ pod lib lint

如果不出意外的話,會輸出

-> XJContactPicker (0.0.1)

 XJContactPicker passed validation.

用下面命令開始上傳,自備翻墻梯子吧

$ pod trunk push XJContactPicker.podspec

成功之后就可以使用Cocoapod搜索到啦。

$ pod search XJContactPicker

如果有,那么恭喜你,成功啦。

pod制作遇到的一些坑

  1. 如果你的庫需要依賴其他cocoapod庫,在#import的時候用雙引號就可以了,不需要用<>;不然在驗證的時候會報錯。
  2. 驗證的時候pod lib lint經常會報一些錯,具體錯誤具體分析吧。部分錯誤可以用lib lint XJContactPicker.podspec --allow-warnings --use-libraries跳過
  3. 如果你跳過驗證直接trunk的時候也會驗證文件,差不多跟pod lib lint是同樣的錯。部分錯誤可以使用pod trunk push XJContactPicker.podspec --allow-warnings --use-libraries 來跳過。

參考

我制作的時候參考的這篇文章,其他很多都太舊了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容