利用cocoapods管理開源項目,支持 pod install安裝整個流程記錄(github公有庫),完成預期的任務,大體有下面幾步:javascript
1.代碼提交到github平臺html
2.建立.podspecjava
3.編輯.podspecios
4.添加taggit
5.驗證github
6.註冊CocoaPodsjson
7.發佈swift
不是惟一的,上傳到任何平臺上均可以,前提是項目是開源的)。至於怎麼利用github管理咱們的項目,能夠參考:http://www.cnblogs.com/richard-youth/p/4684100.html
注
yooweiTest這個是你框架的名稱)
$ pod spec create
yooweiTest
yooweiTestyooweiTesthttps://github.com/yoowei/yooweiTest s.license= { :type => "MIT", :file => "LICENSE" }
https://github.com/yoowei/yooweiTest.git.git結尾。
s.source_files = "yooweitest", "yooweitest/**/*" //須要和.podspec 的名稱同樣??Pod::Spec.new do |s| s.name = ""
s.version = "1.0"
s.ios.deployment_target = '7.0'
s.summary = ""
s.homepage = ""
s.author = { "yoowei" => "yoowei@126.com" }
s.source = { :git => "", :tag => s.version } /注意須要
接下來說解一下每行代碼的含義
s.name:名稱,pod search 搜索的關鍵詞,注意
這裏必定要和.podspec的名稱同樣,不然報錯
s.license= { :type => "MIT", :file => "LICENSE" }
這裏建議你們這樣寫,若是寫別的會報警告,致使後面一直提交失敗
建議
你們寫第一種或者第二種 "yooweitest/* "yooweitest/yoowei/*.{h,m}" "yooweitest/**/*.h"
s.source = { :git => "https://github.com/yoowei/yooweiTest.git", :commit => "68defea" } s.source = { :git => "https://github.com/yoowei/yooweiTest.git", :tag => 1.0.0 } s.source = { :git => "https://github.com/yoowei/yooweiTest.git", :tag => s.version }
// 引用libxml2.lib和libz.lib.
spec.libraries = 'xml2', 'z'
二、引用公有framework:"(.ios).framework" 用」,」分割. 去掉尾部的」.framework」
spec.frameworks = 'UIKit','SystemConfiguration', 'Accelerate'
三、引用本身生成的framework:’(.ios).vendored_frameworks’ 用」,」分割 路徑寫從.podspec所在目錄爲根目錄的相對路徑 ps:這個不要省略.framework spec.ios.vendored_frameworks = 'Pod/Assets/*.framework'
四、引用本身生成的.a文件, 添加到Pod/Assets文件夾裏. Demo的Example文件夾裏也須要添加一下, 否則找不到
spec.ios.vendored_libraries = 'Pod/Assets/*.a'
注意:在提交到私有倉庫的時候須要加上--use-libraries
MIT LicenseCopyright (c) 2017Permission is hereby granted, free of charge, to any person obtaining a copyvim
of this software and associated documentation files (the "Software"), to dealxcode
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
// --verbose 若是驗證失敗會報錯誤信息
$ pod spec lint yooweiTest.podspec --verbose
一、
-> yooweiTest (1.0)
- WARN | github_sources: Github repositories should end in `.git`. //注意須要以.git結尾
- WARN | description: The description is equal to the summary.
- NOTE | xcodebuild: warning: no rule to process file 'yooweiTest/JSPatchtest/yoowei/JSPatch.js' of type sourcecode.javascript for architecture i386
- NOTE | xcodebuild: warning: no rule to process file 'yooweiTest/JSPatchtest/yoowei/JSPatch.js' of type sourcecode.javascript for architecture x86_64
Analyzed 1 podspec.
[!] The spec did not pass validation, due to 2 warnings (but you can use `--allow-warnings` to ignore them).
[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" > .swift-version`.
$ pod lib lint --allow-warnings
$ echo "2.3" > .swift-version
二、 -> JSPatchtest (1.0.0)
- ERROR | name: The name of the spec should match the name of the file.// 這個是要保證.podspe文件的名稱和裏面s.name保持一致
- WARN | github_sources: Github repositories should end in `.git`.
- WARN | description: The description is equal to the summary.
- ERROR | [iOS] unknown: Encountered an unknown error (No podspec found for `JSPatchtest` in `/Users/galahad/Desktop/yooweiTest`) during validation.
[!] JSPatchtest did not pass validation, due to 2 errors and 2 warnings.
3 、
[!] Error installing JSPatchtest
-> yooweitest (1.0.0)
- WARN | description: The description is shorter than the summary.
- ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/bin/git clone https://github.com/yoowei/yooweiTest.git /var/folders/rg/gmjp61bx0x95t4tjx2hh_3sr0000gn/T/d20170113-4028-cvivmq --template= --single-branch --depth 1 --branch 1.0.0
[!] The spec did not pass validation, due to 1 error and 1 warning.
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
(-switch 後面加上你的Xcode.app包內容裏的Developer的文件夾路徑便可).
[!] The spec did not pass validation, due to 1 error.
pod --version
命令查看版本,若是CocoaPods版本低,須要升級。已經註冊過的不須要註冊,怎麼看本身有沒有註冊
$ pod trunk me
- Name: yoowei
// 加上--verbose能夠輸出詳細debug信息,方便出錯時查看。
$ pod trunk register yoowei@126.com "yoowei" --verbose
--allow-warningspod trunk push yooweiTest.podspec
成功了之後會出現如下內容
$ pod search yoowei
[!] Unable to find a pod with name, author, summary, or description matching `yoowei`
pod setup
成功後會生成~/Library/Caches/CocoaPods/search_index.json
文件。
終端輸入rm ~/Library/Caches/CocoaPods/search_index.json
刪除成功後再執行pod search 一切OK🌶
$ rm ~/Library/Caches/CocoaPods/search_index.json
$ pod search yoowei
Creating search index for spec repo 'master'.. Done!
$ pod search yoowei
-> yooweiTest (1.0)
yooweiTest just test.
pod 'yooweiTest', '~> 1.0'
- Homepage: https://github.com/yoowei/yooweiTest
- Source: https://github.com/yoowei/yooweiTest.git
- Versions: 1.0 [master repo]