关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
切换模式
返回顶部
首页
说说
日常
开发
游戏
资源
虚拟货币
首页
说说
日常
开发
游戏
资源
虚拟货币
关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
从零开始的私人pod库创建发布工作流
开发
·
2018-10-17
·
更新于 2020-06-26
LiesAuer
### 前提 本文假设读者已熟悉pod和git的一些基础命令以及Xcode的基本使用。且对本文中的一些参数不做过多介绍与解释,读者可在了解了一个基本的工作流后自行深入了解。 ### 创建项目仓库 `PROJECT_NAME`为占位符,请替换为你实际的项目名称。 ```shell mkdir PROJECT_NAME cd PROJECT_NAME git init ``` ![WX20181017-095628@2x.png](https://storage.liesauer.net/2018/10/2696812889.png) ### 创建pod库的基本组成文件以及项目结构 ```shell touch .gitignore touch README.md touch LICENSE pod spec create PROJECT_NAME ``` `pod spec create`会创建一个基本的`podspec`文件,我们会在这个的基础上修改。 ![WX20181017-095651@2x.png](https://storage.liesauer.net/2018/10/3908029776.png) 此时的目录结构如下 ![WX20181017-095714@2x.png](https://storage.liesauer.net/2018/10/3770986306.png) #### 编写`README.md` 略过 #### 编写`LICENSE` 本文采用的是MIT协议 从[https://mit-license.org/](https://mit-license.org/ "https://mit-license.org/")复制MIT的模板,将其中的`
`替换成你自己,对于其他协议同理。 ```text Copyright © 2018
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` #### 编辑`PROJECT_NAME.podspec` 参考以下编辑自己的`PROJECT_NAME.podspec` 有以下需要注意的地方: 1. homepage必须要能访问,如果没有项目主页,就填自己的github主页或者博客也行,能访问就行。 2. source_files的结构前面写项目的名字(后面我们会构建这个目录结构的) ![WX20181017-104602@2x.png](https://storage.liesauer.net/2018/10/3655885628.png) #### 构建基本项目结构 Xcode创建一个空的框架项目,Xcode->New->Cocoa Touch Framework->编写项目基本信息->保存至pod库根目录下->关闭Xcode 我们会得到以下的目录结构 ![WX20181017-105314@2x.png](https://storage.liesauer.net/2018/10/1462553440.png) 我们将其整理一下: 1. 新建`Framework`目录 2. 将`xcodeproj`以及`Info.plist`移到`Framework`目录 3. 将`PROJECT_NAME`目录清空 `Framework`目录用于整个项目的管理,`PROJECT_NAME`目录则用于代码的管理,我们将得到以下结构的目录 ![WX20181017-105545@2x.png](https://storage.liesauer.net/2018/10/1630828126.png) ![WX20181017-105553@2x.png](https://storage.liesauer.net/2018/10/1909464210.png) ### 调整Xcode项目细节 打开Xcode项目,我们会发现其中的Identity信息丢失了 ![WX20181017-105756@2x.png](https://storage.liesauer.net/2018/10/2069149505.png) 先不管它,我们先把左边的项目冗余的无效关联删除了,重新建立关联,删除时选择`Remove Reference` ![WX20181017-110023@2x.png](https://storage.liesauer.net/2018/10/4240440252.png) ![WX20181017-110036@2x.png](https://storage.liesauer.net/2018/10/2134790653.png) ![WX20181017-110046@2x.png](https://storage.liesauer.net/2018/10/96997314.png) 然后将我们刚刚的用于代码管理的`PROJECT_NAME`目录拖进项目中,不用勾复制文件,选择`Create groups` ![WX20181017-110124@2x.png](https://storage.liesauer.net/2018/10/1405019135.png) 然后添加`Foundation`框架的引用 ![WX20181017-110456@2x.png](https://storage.liesauer.net/2018/10/4073551241.png) 然后再将我们`Framework`目录下的`Info.plist`拖至`Frameworks`下,不用勾复制文件,选择`Create groups` ![WX20181017-110538@2x.png](https://storage.liesauer.net/2018/10/1582670115.png) 最后我们进行Identity修复,`Choose Info.plist File`,选择我们刚刚拖进去的`Info.plist`,保存重启项目 ![WX20181017-110635@2x.png](https://storage.liesauer.net/2018/10/3120838243.png) 至此我们一个基本的pod项目框架就创建好了 ### HelloWorld 编写以下HelloWorld程序 ![WX20181017-111314@2x.png](https://storage.liesauer.net/2018/10/4004894027.png) ![WX20181017-111324@2x.png](https://storage.liesauer.net/2018/10/2108645359.png) ### 提交代码 注意:以后每发布一个版本都要打上tag,还要和`podspec`文件的版本对应起来,这样pod才能搜索下载到对应的版本 ```shell git remote add origin 私人git项目地址 git add . git commit -m "init" git tag 0.1.0 git push --set-upstream origin master git push --tags ``` ### 创建Spec仓库 `git init`一个空的私人Spec仓库,然后将其推送至自己的git服务器就行了,因为我已经创建过了,所以就不发截图了 ### 添加Spec仓库 Spec仓库名字随你喜欢,git地址填你git服务器上面的Spec仓库地址 ```shell pod repo add Spec仓库名字 git@192.168.x.x:/iOS/PodSpecs.git ``` ### 提交podspec文件 只有提交了我们的podspec文件到私人Spec仓库,pod才能搜索出来 ```shell pod repo push Spec仓库名字 PROJECT_NAME.podspec ``` 这个时候就会检查我们的库是否有效合法,如果你是导进去的代码,一开始难免出现成吨的错误,然后无法通过验证,我们先检查一遍,把需要解决的先解决了,如果是可以忽略的就不管,再改用以下的命令就可以验证通过了 ```shell pod repo push Spec仓库名字 PROJECT_NAME.podspec --allow-warnings --private --use-libraries ``` ![WX20181017-113452@2x.png](https://storage.liesauer.net/2018/10/3959499285.png) 到此,我们的库已经能被`pod search`搜索出来了 如果搜索不到,执行下面的命令清除pod索引 ```shell rm ~/Library/Caches/CocoaPods/search_index.json ``` 然后再次搜索,会重新建立索引,这样就能搜索到了,重建索引会很漫长很漫长。。。,主要是CocoaPods的公有库太大了 ### 使用我们的pod库 在Podfile中添加以下内容,私人的Spec仓库地址换成你自己的 ```text # 公有库 source 'https://github.com/CocoaPods/Specs.git' # 我们的私人库 source 'git@192.168.x.x:/iOS/PodSpecs.git' ``` 然后其他部分的操作和公有库一样 ```text pod 'PROJECT_NAME', '~> 0.1.0' ``` 最后`pod install`就完事了
如果您觉得文章或项目对您有帮助,戳我请博主喝一杯咖啡叭!
取消回复
提交评论
瞅一瞅叭
域名出售
uterminal.ai
服务器推荐
RackNerd 2C2G $20.98/年(美国 隐藏款)
狗云 1C0.75G ¥150/年(香港 BGP)
最新评论
tinker: 为什么运行一段时间就会停止,重启又恢复!没有报错信息,频道信息和...
pansoo: 大佬,这个只能下载文件吗?能不能保存频道消息
Miller: 最好再多加一个查漏补缺的功能(捂脸(/ω\)),因为抓取了3天才...
Miller: 大佬,好像不会爬取jpeg文件,图片和视频数量对不上,是不是图片...
cola: 大佬,可以爬取电报频道的评论内容嘛
Miller: 大佬我终于会了,用cmd命令cd /d G:\cco,感谢大佬指点!
Miller: https://img13.chkaja.com/files/2...
关于站长
广东 佛山
liesauer#liesauer.net
LiesAuer
CC BY-NC-SA 4.0
粤ICP备16094588号-1
萌ICP备20245567号
Theme
Jasmine
by
Kent Liao