一. 创建一个repository
登录自己的gitHub, 选择:
创建repository二. 本地创建一个工程
1.打开终端,cd 到你想要放本地工程的文件夹,然后输入 pod lib create 工程名 ,例如下:
会让你填写一些信息,如下:
What is your email?
What platform do you want to use?? [ iOS / macOS ]
What language do you want to use?? [ Swift / ObjC ]
Would you like to include a demo application with your library? [ Yes / No ] // 是否需要一个demo?看情况来
Which testing frameworks will you use? [ Specta / Kiwi / None ]
Would you like to do view based testing? [ Yes / No ]
What is your class prefix? // 这里是问你类前缀,根据自己喜好填写吧
我创建的不需要demo,如下:
2.填写完成后,自动打开了工程,找到自己工程的podspec文件,在Podspec Metadata 文件夹下,如下:
修改podspec文件,注意s.description 文字书写格式,如下最好:
文字开头对齐要后于 <<-DESC (就是多点空格),其它填写,照着填就是。还有不懂填写的,可以百度“如何填写 podspec”。如果前面填写username的时候,你填的是gitHub用户名,那基本就不需要更改很多地方。
3. 接下来,找到如下位置:
选中 ReplaceMe.m 右键 Show in Finder 会打开Classes文件夹,将你的公共库添加进Classes文件夹,不要直接将公共库拖进Xcode打开的工程 ReplaceMe 这个位置,是不对的。
然后xcode工程中删除 ReplaceMe.m ,然后xcode关闭,到此本地工程工作完成。
三. 把自己的工程推送到Github
终端cd到你的podspec上一级文件夹,例如:
终端输入
git add . ( // . 前面注意空格, git 命令不熟悉的话 可以先百度学下 )
git commit
git remote add origin https://github.com/(这里填gitHub用户名)/(你的公共库名).git
git push -u origin master
例:
下一步,要验证podspec文件,终端输入:pod lib lint (库名).podspec, 等待一段时间,如果返回信息是 passed validation. 表示验证通过。如下:
如果你在创建工程时候创建了一个包含demo的工程,那么你可以先切换到工程的Example文件目录下面使用命令:pod install, 成功以后你就可以在demo文件中使用你的功能文件了.如果不能导入,那么可以commond + B编译一下再导入使用。
四. 提交自己的pod
1. Specs仓库是用来存放GitHub上面所有公共Pod的索引的文件,我们要做到就是让本地的pod在Specs建立联系.在做这个之前,需要将我们完善后的工程代码,打一个tag,同步到服务端:
终端输入:
git tag 0.1.0 // 后面这0.1.0 是你自己更改的,要与podspec文件里写的一样
git push origin 0.1.0
等待一会,完成如下:
2. tag验证:
终端cd到你的podspec上一级文件夹,输入:pod spec lint (库名).podspec
成功如下:
3. 提交pod 到Specs仓库
终端输入 pod trunk push (库名).podspec,等待一段时间,出现类似下面画面
恭喜你,你已经成功上传了自己的公开库, 可以在终端输入 pod search (库名) 搜索自己的库了,如果搜索不到,前往这个路径下~/Library/Caches/CocoaPods删除search_index.json文件 , 或者使用终端命令删除: rm ~/Library/Caches/CocoaPods/search_index.json。
----- 2019 年 4 月26日 ----
如果出现下面错误:
解决办法是
pod trunk register (你的邮箱) '(姓名)' --description='(描述)', 注意空格,然后再执行 pod trunk push (库名).podspec 试试
当然,可能还会有,如下错误:
这是因为你身份验证的问题,红色文字都说明了,你可以选择一种验证一下,然后再执行 pod trunk push (库名).podspec
网友评论