美文网首页
iOS 创作自己的私有库

iOS 创作自己的私有库

作者: canlanrensheng | 来源:发表于2020-04-13 15:28 被阅读0次

前言:

项目组件化的好处我就不不多说了,今天我就跟大家分享一下项目组件化第一步:创作自己的私有库,以及自己遇到的令人酸爽的bug.

之前当在项目中看到这样的目录后,是不是默默有一种高高在上,可远观而不可亵玩焉的感觉。当时我多想在这个目录下有自己的代码呀。只要不断努力,梦想并不遥远!

首先说一下cocoapoads怎么把我们想要的三方库下载到我们的工程里面的呢?理解了这个,下面对我们自己建立的私库就好理解了.

在GitHub 上https://github.com/CocoaPods/Specs链接下放着pod管理三方库的podspec文件,随便点开其中一个。索引库,如下图

这里面放着三方库URLComponentsBuilder的一下信息,name, version ,summary, authors,homepage等信息。

在我们在终端输入pod setup,会将远程索引库下载到我们本地方便pod search,cocapods本地spec索引库的位置:/Users/mac/.cocoapods/repos/master/Specs

pod search时会根据本地specs仓库去创建search_index.json的索引文件,索引文件中包含了一个个三方库的podspec文件中的信息,search_index.json文件的位置:/Users/mac/Library/Caches/cocoapods/search_index.json

pod install时候,会根据要安装的三方库的podspec索引文件,找到三方库的下载地址和版本信息,然后下载到我们工程里面。

开始步入正题

首先建立自己的私库

1、本地私有索引库

2、远程私有索引库

3、本地组件代码库

4、远程组件代码库

大致流程是,创建自己的远程索引库,创建本地索引库,本地远程索引库关联,创建自己的远程组件代码仓库,创建自己的本地的组件代码仓库,把自己的组件代码放进去提交到远程组件代码仓库,本地校验,远程校验,将自己创建的索引文件 push到远程索引库进行管理。

------------------------------------------------------------------------------------------------------

光说不练假把式,现在我们创建一个网络请求的组件,上传到自己的私有库。

1、在github上创建自己的远程索引库仓库,名字自己起,copy地址,我这已经创建过了,就不重复创建了,创建完一次,自己之后的远程代码索引都可以放在这里了。

注意事项:

这里面写个说明文件啥的,不要为空,或者接下来会出现不可描述的错误,这是我踩过的坑总结出来的教训。如果为空会出现下面的错误。

Your configuration specifies to merge with the ref 'refs/heads/master'

from the remote, but no such ref was fetched.

2、本地索引库和远程索引库关联

pod repo add JSpecs https://github.com/canlanrensheng/JSpecs.git

然后pod repo查看

会多出本地索引库JSpecs

3、创建自己的远程组件代码库,并copy地址

4、创建自己的本地组件代码仓库

cd ~/Desktop/

执行pod lib create JSHttpToolKit

根据需要填写下面的信息

成功之后把我们自己写的组件代码放在下面的目录下

cd 进入 Example 文件目录下

执行 pod install  把你封装的代码集成到Example中.

编辑JSHttpToolKit.podspec信息,如下图,因为我写的需要依赖AFNetworking库,所以s.dependency要加上相应的依赖库,不依赖的不用加。

记住s.version版本号,下边要用

cd 到本地组件目录下

开始提交代码到远程组件代码仓库

git add .

git commit -m '1.0.0代码提交'

git remote add origin https://github.com/canlanrensheng/JSHttpToolKit.git

git push origin master

git tag '1.0.0' (这里的tag要跟上面的JSHttpToolKit.podspec的version一致,要不然会出现不可描述的错误)

git push --tags

5、本地验证

pod lib lint JSHttpToolKit.podspec --allow-warnings

三方库包含静态库(如:xxxx.a),在验证的时候,不能验证通过,可使用如下命令:pod lib lint --use-libraries --allow-warnings

如果没有依赖三方库的话去掉 --use-libraries如下:

pod lib lint JSHttpToolKit.podspec --allow-warnings

6、远程验证

pod spec lint --allow-warnings

三方库包含静态库(如:xxxx.a),在验证的时候,不能验证通过,可使用如下命令:pod lib lint--use-libraries  --allow-warnings

如果没有依赖三方库的话去掉 --use-libraries如下:

pod spec lint --allow-warnings

//编辑报错的问题 trunk URL couldn't be downloaded:xxx 应该是源的问题

pod lib lint JSVideoBrowserKit.podspec  --use-libraries  --allow-warnings --sources='https://github.com/CocoaPods/Specs.git'

7、将你的.podspec索引文件 push到索引库进行管理

pod repo push JSpecs JSHttpToolKit.podspec --use-libraries --allow-warnings

如果出现报错 runk URL couldn't be downloaded:xxx 应该是源的问题

pod repo push JSSpecs JSVideoBrowserKit.podspec --use-libraries  --allow-warnings --sources='https://github.com/CocoaPods/Specs.git'

查看pod repo

cd到本地索引库的这个目录下cd /Users/zhangjinshan/.cocoapods/repos/JSpecs

ls查看

说明已经添加到本地的索引库里面了。Perfect!

到这里我们就完成了自己的网络请求组件的制作,接下来看怎么用呢?

新建一个测试工程,并在工程目录下创建podfile

引入Specs和自己的远程索引库的地址

cd到测试目录下,执行pod install

在需要的地方引入我们的头文件就可以了。

到此,创建自己的私有库就完成了。欢迎批评指正!

相关文章

  • iOS 创作自己的私有库

    前言: 项目组件化的好处我就不不多说了,今天我就跟大家分享一下项目组件化第一步:创作自己的私有库,以及自己遇到的令...

  • iOS组件化探究之私有库的创建

    iOS组件化探究之私有库的创建 iOS组件化探究之私有库的创建

  • iOS创建私有库

    iOS创建私有库 创建本地私有库索引和远程私有库索引关联 pod repo addSGSpecshttp://12...

  • 创建pod私有库

    iOS创建私有库 1. 新建私有库 2.命令行创建本地私有库索引和远程私有库索引关联 pod repo add S...

  • iOS 组件化开发(二):子库和私有库升级与维护

    iOS 组件化开发(一):远程私有库的基本使用已经实战演示了远程私有库的基本操作。本文说下远程私有库的更新与子库。...

  • cocopods私有库的更新

    在上一篇iOS组件化开发,利用cocopods 创建自己的远程私有库讲到了如何搭建自己的私有库,这篇文章主要讲讲怎...

  • 添加到私有库中的项目图片不能显示

    创建私有库请参考: 创建 iOS 私有库完整教程 ,本文是上文的补充。 修改OneProj.podspec 文件 ...

  • CocoaPods私有库的创建

    以下两篇文章对比着一起看。 CocoaPods私有库的创建 私有库、创建、使用、更新 - iOS

  • 制作CocoaPods

    iOS管理第三方库大多使用CocoaPods,如果需要实现组件化或者发布自己的开源库/私有库到CocoaPods,...

  • ios 常用的小知识

    1, ios 创建创建私有库 http://www.cocoachina.com/ios/20180516/233...

网友评论

      本文标题:iOS 创作自己的私有库

      本文链接:https://www.haomeiwen.com/subject/rlswectx.html