Framework.png
将自己的framework提交给cocoapods时,配置podspec这一步非常重要,但是在验证podspec时很容易出现各种错误,所以我就把它记录下来,给后面的小伙伴提供参考,有什么地方不正确,还请各位小伙伴拍砖。下面就是我的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
上面少一个非常重要的参数source_files,因为我们是framework提交,所以不需要。如果是工程提交的话,一般都要写这个参数,cocoaPods根据它来克隆文件,来看一个例子:
|——MySDK.xcodeproj
|——MySDK
|—————MySDK.h
|—————MySDK.m
这个例子中包含.h/.m文件,为达到目的,我们会将source_files设置成:'MySDK/*****.{h,m}',星号*****表示包含任意文件。当星号位于文件类型前时,表明包括所有该类型的文件。
假设你想要在 Pod 下载时包含所有位于 /FantasticView 下的文件,只需要将文件名字和类型用星号代替即可:
'MySDK/*****'
这样就涵盖了所有,甚至是其他目录。为了限制文件类型,你也可以使用如下语句:
'MySDK/*****.{h,m,plist}'
在这个例子中,将会涵盖所有的 h,m 和 plist 文件。
验证podspec文件
编辑完podspec文件后,需要验证一下这个文件是否可用,如果有任何WARNING或者ERROR都是不可以的,需要修改错误,知道验证通过podspec文件才可用,以下命令验证:pod lib lint,你可能会得到下列问题:
1,各种语法糖错误,根据提示去修改就可以了,主要就是单引号与双引号的问题
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
执行命令:echo"3.0">> .swift-version
4, 提交framework与工程不同的地方是:s.vendored_frameworks = 'MySDK.framework', 因为我们要提交到cocoa pods的是.framework静态库,所以这个字段必不可少
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
执行命令:launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true
打标签
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
在网上查到的解决办法,在终端输入以下命令:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developers
到这里如果成功就搜索的到,那么就是说可以成功使用了
pod search MySDK
可能出现搜索不到的问题,执行命令:rm ~/Library/Caches/CocoaPods/search_index.json
网友评论