Framework.png
將自己的framework提交給cocoapods時(shí)竣贪,配置podspec這一步非常重要跛锌,但是在驗(yàn)證podspec時(shí)很容易出現(xiàn)各種錯(cuò)誤,所以我就把它記錄下來梁剔,給后面的小伙伴提供參考脯颜,有什么地方不正確哟旗,還請各位小伙伴拍磚。下面就是我的podspec配置:
Pod::Spec.new do |s|
s.name = "libSDK"
s.version = "1.0.0"
s.summary = "libSDK is a staticlib SDK"
s.homepage = "https://github.com/xxx/libSDK"
s.license = 'MIT'
s.author = { 'xxx' => 'xxx@qq.com' }
s.platform = :ios, '8.0'
s.source = { :git => 'https://github.com/xxx/libSDK.git', :tag => s.version }
s.framework = 'UIKit'
s.vendored_frameworks = 'MySDK.framework'
s.requires_arc = true
s.dependency 'AFNetworking'
s.dependency 'SDWebImage'
end
上面少一個(gè)非常重要的參數(shù)source_files伐脖,因?yàn)槲覀兪莊ramework提交热幔,所以不需要。如果是工程提交的話讼庇,一般都要寫這個(gè)參數(shù),cocoaPods根據(jù)它來克隆文件,來看一個(gè)例子:
|——MySDK.xcodeproj
|——MySDK
|—————MySDK.h
|—————MySDK.m
這個(gè)例子中包含.h/.m文件近尚,為達(dá)到目的蠕啄,我們會將source_files設(shè)置成:'MySDK/*****.{h,m}',星號*****表示包含任意文件戈锻。當(dāng)星號位于文件類型前時(shí)歼跟,表明包括所有該類型的文件。
假設(shè)你想要在 Pod 下載時(shí)包含所有位于 /FantasticView 下的文件格遭,只需要將文件名字和類型用星號代替即可:
'MySDK/*****'
這樣就涵蓋了所有哈街,甚至是其他目錄。為了限制文件類型拒迅,你也可以使用如下語句:
'MySDK/*****.{h,m,plist}'
在這個(gè)例子中骚秦,將會涵蓋所有的 h,m 和 plist 文件。
驗(yàn)證podspec文件
編輯完podspec文件后璧微,需要驗(yàn)證一下這個(gè)文件是否可用作箍,如果有任何WARNING或者ERROR都是不可以的,需要修改錯(cuò)誤前硫,知道驗(yàn)證通過podspec文件才可用胞得,以下命令驗(yàn)證:pod lib lint,你可能會得到下列問題:
1,各種語法糖錯(cuò)誤屹电,根據(jù)提示去修改就可以了阶剑,主要就是單引號與雙引號的問題
2, - MySDK (1.0.0)
WARN | description: The description is shorter than the summary.
WARN | url: There was a problem validating the URL https://github.com/xxx/MySDK.
警告說的很直接跃巡,填寫summary
3, echo"2.3">> .swift-version
執(zhí)行命令:echo"3.0">> .swift-version
4, 提交framework與工程不同的地方是:s.vendored_frameworks = 'MySDK.framework', 因?yàn)槲覀円峤坏絚ocoa pods的是.framework靜態(tài)庫,所以這個(gè)字段必不可少
5, 如果用到了第三方可以比如:AFNetworking,就要在s.dependency 'AFNetworking', '~> 2.6.1'
以上就是在配置中遇到的問題牧愁。
6, Failed to locate a valid instance of CoreSimulatorService in the bootstrap. Adding it now.
') during validation
執(zhí)行命令:launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true
打標(biāo)簽
git tag '1.0.0'
git push --tags
提交cocoa pods
pod trunk push MySDK.podspec
trunk過程中可能遇到下面的問題:
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
在網(wǎng)上查到的解決辦法,在終端輸入以下命令:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developers
到這里如果成功就搜索的到瓷炮,那么就是說可以成功使用了
pod search MySDK
可能出現(xiàn)搜索不到的問題,執(zhí)行命令:rm ~/Library/Caches/CocoaPods/search_index.json