原因: 仍是那個小活,需求方想用cocoapods來集成framework,因爲以前,我從沒有本身作過屬於本身的cocoapods,因此也是一臉懵逼,各類查資料.html
製做cocoapods步驟:ios
1.在github上建立一個新的倉庫<圖中的一、2必定要選擇,2能夠是其餘的License
> git
2.clone代碼到本地 github
3.相加本身的項目,而後提交到github上 git add .
git commit -m "描述"
git push origin master
json
在項目目錄下,執行命令建立.podspec,一下3中方式均可以建立:swift
記住:不要用文本編輯打開編輯,不要用文本編輯打開編輯,不要用文本編輯打開編輯, 能夠用atom編輯 能夠用
vim命
令編輯,vim
狀態下,按i
進入編輯狀態,按esc
退出編輯狀態,而後輸入:wq
保存退出編輯vim
:Pod::Spec.new do |s|
s.name = "CFMobAdSDK"
s.version = "1.0.6"
s.ios.deployment_target = '7.0'
s.summary = "廣告sdk,一個簡單的廣告SDK."
s.homepage = "https://github.com/lixianshen/CFMobAdSDK"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "Simple" => "810646506@qq.com" }
s.source = { :git => "https://github.com/lixianshen/CFMobAdSDK", :tag => s.version }
#s.source_files = "CFMobAdSDK/*"
s.resources = "CFMobAdSDK/CFMobAdSDK.bundle"
s.frameworks = 'Foundation', 'UIKit', 'CoreLocation', 'AdSupport'
s.vendored_frameworks = 'CFMobAdSDK.framework'
s.requires_arc = true
end
複製代碼
下面介紹一下.podspec中部分代碼的含義:瀏覽器
s.name:名稱,pod search
搜索的關鍵詞,必定要和.podspec的名稱同樣,不然報錯緩存
s.version
:版本號bash
s.ios.deployment_target
:支持的pod
最低版本
s.summary
: 簡介
s.homepage
:項目主頁地址
s.license
:開源協議(建立github
庫的時候選擇的)
s.author
:做者信息(這裏隨便謝謝也能夠經過)
s.social_media_url
:社交網址
s.source
:項目的地址
s.source_files
:須要包含的源文件
s.resource
:資源文件,單個
s.resources
: 資源文件(含bundle
)
s.requires_arc
: 是否支持ARC
s.dependency
:依賴庫,不能依賴未發佈的庫.如AFNetWorking
s.vendored_frameworks
:包含的framework
,也就是咱們本身製做的pod
s.description
:描述,字數要比s.summary
長
s.screenshots
:截圖
s.exclude_files
:隱藏的文件
s.public_header_files
:公開的頭文件
s.framework
:所需的framework
,單個
s.frameworks
:所需的framework
,多個用逗號隔開
s.vendored_libraries:包含的的.a 注意事項:
多個s.dependency能夠這樣寫,(能夠加上版本號): s.dependency = 'AFNetworking', '~> 2.3' s.dependency = 'SDWebImage' s.dependency = 'AFNetworking'
s.license能夠用下面2中寫法: s.license = "MIT" 會有一個警告 s.license = { :type => "MIT", :file => "LICENSE" }
s.source_files:寫法及含義:
"CFMobAdSDK/* "CFMobAdSDK/*.{h,m}" "CFMobAdSDK/**/*.h" 複製代碼
「」 表示匹配全部文件 「.{h,m}」 表示匹配全部以.h和.m結尾的文件 「**」 表示匹配全部子目錄
s.source 常見寫法
/// git commit -m =>"13287dd",講pod版本與git倉庫中的某一次提交綁定
s.source = { :git => "https://github.com/lixianshen/CFMobAdSDK", :commit => "13287dd" }
/// 將這個Pod版本與Git倉庫中某個版本的comit綁定
s.source = { :git => "https://github.com/lixianshen/CFMobAdSDK", :tag => 1.0.0 }
/// 將這個Pod版本與Git倉庫中相同版本的comit綁定
s.source = { :git => "https://github.com/lixianshen/CFMobAdSDK", :tag => s.version }
複製代碼
```
/// 第一次須要在前面加一個v
git tag "v1.0.0"
git push --tags
```
複製代碼
方式一
// 加上--verbose驗證失敗會顯示詳細的報錯信息
pod spec lint CFMobAdSDK.podspec --verbose
複製代碼
方式二
pod spec lint
複製代碼
驗證開始
-> CFMobAdSDK
複製代碼
成功:
驗證失敗的一些狀況: 1.下面這種狀況,只要在終端運行命令:echo "2.3" > .swift-version
2.- ERROR | [iOS] file patterns: The source_files
pattern did not match any file. 解決方法: 文件路徑不對, 也就是設置 s.source_files 字段時, 發生了錯誤 3.- ERROR | [iOS] file patterns: The vendored_frameworks
pattern did not match any file. 解決方法: framework路徑不對, 也就是設置 s.vendored_frameworks 字段時, 發生了錯誤
trunk須要cocoaPods
的版本在0.33版本,用pod --version
,若是版本低,先升級sudo gen install cocoapods
和pod setup
註冊的三種方式:
Eloy Durán
--description=Personal Laptop
Work Laptop
這個時候,你填寫的郵箱會收到一封郵件,把連接複製,在瀏覽器打開就能夠了,若是沒有打開這個連接,下面的步驟是不能進行的
pod trunk me
複製代碼
- Name: lixianshen
- Email: 810646506@qq.com
- Since: May 1st, 01:51
- Pods:
- CFMobAdSDK
- Sessions:
- May 1st, 01:51 - September 7th, 08:30. IP: 125.121.226.128 Description:
Simple
- May 2nd, 18:35 - September 7th, 18:43. IP: 125.118.107.149
- May 2nd, 20:55 - September 7th, 21:05. IP: 125.118.107.149
- May 4th, 02:19 - September 9th, 02:20. IP: 125.118.107.149
複製代碼
pod trunk push CFMobAdSDK.podspec
若是有警告用:pod trunk push CFMobAdSDK.podspec --allow-warnings
1.先驗證是否正確
2.發佈成功
3.檢查本身發佈的pod
檢查以前先刪除緩存中的json文本
若是不刪除,會搜索不到本身發佈的,若是讓你朋友也要查到也要刪除現有的緩存~/Library/Caches/CocoaPods/search_index.json
4.搜索記錄
若是想刪除已發的版本,須要使用下面的命令:
pod trunk delete CFMobAdSDK 版本號
複製代碼
例如
pod trunk delete CFMobAdSDK 1.0.1
複製代碼
到這基本結束了:下面是幾個和本內容相關的比較好的連接:
trunk 命令詳解: trunk
製做cocoapods的官方網站 Making Cocoapods
Framework和.a的製做 Framework+a
若是發現問題,或者有不懂的地方,請留言