最近想把自己的封装的AXUIElement这个MacOS的API的库进行上传到Cocoapod,让大家都能使用的想法下。自建了一个Cocoapod的库。库的地址
然而在创建的过程中也遇到了很多问题,同时也解决了很多问题。在这里也向大家分享一些。
1. 首先要有一个仓库进行存储你的代码。至于仓库平台的选择有很多。Github、Gitlab、Gitee等。基于全球最大的基友平台的聚集地。所以我就选择了Github这个基友平台。然后就开始创建库:
2.创建库后,我们就需要把我们的代码文件上传到该库。首先我们需要把我们这个新建的库,clone到本地:
cd 到你需要存储在代码的文件夹里面的路径!
git clone https://github.com/DevilFinger/DFAXUIElement.git
而这个git的地址就是在这里获取:
3.然后在文件里面创建一个名为Classes的文件夹,然后把你的的代码拖入到里面去!!!!!!
4.基础的东西都弄好了,我们就可以开始建立podspec文件。这个是用于描述你的库和让别人可以pod到你的库的重要文件!!!
pod spec create DFAXUIElement
5.创建完成后,我们就可以开始编辑里面的内容。可以通过vim DFAXUIElement.podspec进行编译,也可以通过sublime进行编辑。
podspec里面其实已经列好所有规则和每个规则的说明了。但主要的大概是如下这些:
Pod::Spec.new do |spec|
spec.name = "DFAXUIElement" //这个是你的库的名字
spec.version = "1.0.5" //这个是你的库的名字
spec.author = { "raymondchans" => "raymondchans@live.cn" }//这个是制作者的名称和联系邮箱
spec.homepage = "https://github.com/DevilFinger/DFAXUIElement"//这个是库的地址
spec.summary = "A fastway to use Accessibility API in MacOS with AXUIElement with Swift" //这个是库的描述
spec.source = { :git => "https://github.com/DevilFinger/DFAXUIElement.git", :tag => "#{spec.version}" }//这个库的git的地址
spec.license = { :type => "MIT", :file => "LICENSE" }//这个是公开协议
spec.platform = :osx //这个是库的平台,我这里是mac的,如果是iOS的就为[:ios].记住!这里没有引号
spec.osx.deployment_target = '10.11' //这个是你的库支持的版本
spec.source_files = 'Classes/**/*.{h,m,swift}'//这个是你的库的文件
spec.public_header_files = 'Classes/*.h'//这个是你的库的统一的头文件
spec.swift_versions = '4.0' //这个是你swift的版本
spec.pod_target_xcconfig = { 'SWIFT_VERSION' => '4.0' } //暂时不知道。因为看到别人也有,我就也添加了
end
6.编写完podspec文件后,我们就把这些修改和添加都push到Github
git add .
git commit -m "init commit"
git push
git tag '1.0.5' //这里一定要打tag,因为pod是基于版本进行获取的
git push --tags //推送到远程
7.在所有的都确保没问题了。我们就可以进行验证podspec是否有问题
pod spec lint DFAXUIElement.podspec --verbose --allow-warnings
成功的话,会有以下提示:
DFAXUIElement.podspec passed validation
8.把我们的pod库推送到Cocoapod,这里我强烈建议用trunk。不要问我为什么,因为google大神都是这样干的!
pod trunk push DFAXUIElement.podspec --allow-warnings
如果还没注册,可以用下列命令进行注册
pod trunk register 邮箱全称 '用户名' --verbose
注册完之后,你的邮箱会收到一个验证邮箱
9.trunk成功后,会有以下提示:
关于更新pod库
1.之后如果需要更新,只需要把代码更新到Github上去后,重新进行trunk push即可:
pod trunk push DFAXUIElement.podspec --allow-warnings
如果更新后,在进行pod search 或者 pod install无法获取到最新的代码。可以看看我这篇文章
关于使用库,我相信大部分人都会使用,但在这里我还是简单的说明一下。
1.在项目里创建podfile,并且输入以下:
target 'WindowSnap' do
use_frameworks!
pod 'MASShortcut'
pod 'DFAXUIElement'
end
2.然后在需要调用的地方,进行module的import