CocoaPods创建私有库实例

本文通过实例详细介绍了如何使用CocoaPods创建私有库,包括创建代码库、编写podspec文件、保存到git库及在项目中使用私有库的过程。此外,还提及了在升级复杂代码时的注意事项和解决编译问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导言
APP开发过程中,为了使得不同模块间可以并行开发、独立调试互不干扰,组件化就成了必须的工作。在IOS开发,比较流行的方法,是使用CTMediator + Pod 私有库 来实现组件化,这里通过实例来说明如何实现Pod 私有库,下回有空会记录下如何使用CTMediator 实现组件化(中间件架构)。
友情提示,要理解Pod私库的建立,最好自己手动操作一遍,这其中会遇到各种问题,就能加深你的理解。

1. 从最简单的开始
pod私库建立,可以分为三部分:
1)代码库,就是我们一般存在代码的git库,例如github,推荐用国内的。例如gitee
2)podspec,这个是建立私库的核心部分,用命令创建后,手动修改
3)gitspec,即将第二部中的podspec存到某git库中,这样其它项目才能通过设置source,查找到该库。

gitspec和代码库,可以放置在不同网站,例如一个github,一个gitee。在本例中,由于github实在太慢,统一使用gitee。为了加深理解,我这里,特意让代码库的名称与私库的名称不一样。(当然也可以一样)。

一)建立代码库
先从简单开始,新建一个项目(文件夹)然后里面只有一个文件,然后同步到gitee,打上tag,注意你的文件路径,因为,podspec中配置要用到,我的如下:
在这里插入图片描述
只有一个目录Classes,下面只有一个文件。

tag相关命令:

git tag -m “V0.0.1” 0.0.1
git push --tags

特别注意这里的版本号和文件路径。

二)创建podspec
一个简单命令即可:

pod lib create XLib

注意我这里的建立的私库的名称与我上面的代码库是不一样的,当然也可以一样。

接下来重点就是根据实际配置podspec,进入XLib目录下,打开XLib.podspec 或者XCODE中打开,重点需要修改的,是s.version、 s.homepage、s.source、s.source_files, s.description 也需要改下,初始值验证不过的,其它值根据代码库实际情况来设置:
在这里插入图片描述
s.source_files是最容易出错的,上面已经提醒过,注意代码的目录结构。

然后提交到git时,先验证文件有效性。

pod lib lint
pod spec lint

pod lib lint是不联网验证的,如果提示

The source_files pattern did not match any file.

可以忽略,但是pod spec lint是会联网验证的,如果提示上面的错误,就注意要修改s.source_files了

三)保存podspec
在gitee任意建立一个git库,你后续建立的私库的podspec都可以保存到该git,因此下次创建私库,可以不用建这个库,直接使用即可,例如我建立的:https://gitee.com/wenpdx/LoginSpec

通过如下命令将我们的pod上传到git库:

pod repo add XLibSpec https://gitee.com/wenpdx/LoginSpec.git
pod repo push XLibSpec XLib.podspec

上述命令在XLib目录下运行,XLibSpec 名字任意,上下一致即可,同时需要记住,因为后面podspec修改上传需要用到。

然后,我们可以看到https://gitee.com/wenpdx/LoginSpec 库下建立有XLib相关文件。

四)使用私库
我们打开一个工程,然后在其podfile中添加:

source 'https://github.com/CocoaPods/Specs.git' # CocoaPods 官方 Spec 索引库
source "https://gitee.com/wenpdx/LoginSpec.git"
platform :ios, "11.1"

    pod 'XLib', '~>0.0.1'

然后在命令窗口中运行:

pod install --repo-update

运行完之后,可以看到该项目pod相关目录下有下载我们XLIb的代码。

2. 升级到更复杂的代码
1)我们可以把一个编译验证OK的项目,拷贝到如示例中的项目FriendList的Classes目录下,push到gitee,然后打上新的tag。
修改XLib.podspec文件,根据实际修改相关内容,例如版本号(必须升级),项目相关依赖等,最重要的还是s.source_files:
在这里插入图片描述
注意添加的s.pod_target_xcconfig = { ‘VALID_ARCHS’ => ‘x86_64 armv7 arm64’ },否则可能编译出粗。注意修改s.version = ‘0.0.3’,这里的版本号,跟代码库要对应。

然后开始上传到git:(该命令会自动运行pod spec lint)

pod repo push XLibSpec XLib.podspec --verbose --allow-warnings --use-libraries

参数说明:
–verbose 可以打印编译验证过程,如果出错,可以知道具体错误是啥
–use-libraries 第三库依赖需要添加这个,否则可能编译不通过
–allow-warnings 不在这个,一旦有warn,就会验证失败

成功后,可以看到:
在这里插入图片描述
上传成功后,我们的项目就可以使用最新版本的XLib库了(podfile更改版本为0.0.3):

pod install --repo-update

不过这要下载依赖的第三方库,github实在太慢了(建议把github的source改为source ‘https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git’)。

以上,all

3. 总结
说到底建立pod私有库,是为项目组件化做准备而已,IOS实现组件化,还需借助第三方工具,目前最适合的是CTMediator。有空会结合pod私有库,写写CTMediator的实例。网上有很多例子,但都感觉写的不对,相反,CTMediator本身提供的DEMO倒是写的不错。

CTMediator 实例参考:https://blog.youkuaiyun.com/dingpwen/article/details/115584600

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值