创建cocopod的步骤
1.创建一个spec Repo的私有远程仓库 和 一个存放pod所需的项目工程文件的远程仓库
2.创建spec Repo
3.创建pod的所需的项目工程文件,并上传到远程私有仓库
4.向私有的spec Repo远程仓库中提交podspec
5.使用自己创建的私有pod库
1.创建2个远程仓库
创建ZKQSpec远程仓库,用来存放本地spec。
创建ZKQSandBoxPreviewTool远程仓库,用来存放项目工程文件。
2.创建spec Repo
前往文件夹 ~/.cocoapods/repos
打开终端,在终端切换到当前目录下,然后进行pod repo add操作
在终端输入:
pod repo add ZKQSpec gitee.com/CuanTianHou…](link.jianshu.com/?t=https://…)
3.创建pod的所需的项目工程文件
3.1创建本地pod的所需的项目工程文件
cd 切换到一个目录下(我是在桌面上的projects目录下),然后执行pod lib create ZKQSandBoxPreviewTool 如图:
pod lib create ZKQSandBoxPreviewTool
zhangkaiqiang@zhangkaiqiangdeMac-mini Desktop % pod lib create ZKQSandBoxPreviewTool
Cloning `https://github.com/CocoaPods/pod-template.git` into `ZKQSandBoxPreviewTool`.
Configuring ZKQSandBoxPreviewTool template.
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin22/rbconfig.rb:21: warning: Insecure world writable dir /opt/homebrew/bin in PATH, mode 040777
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
------------------------------
To get you started we need to ask a few questions, this should only take a minute.
If this is your first time we recommend running through with the guide:
- https://guides.cocoapods.org/making/using-pod-lib-create.html
( hold cmd and click links to open in a browser. )
What platform do you want to use?? [ iOS / macOS ]
>
ios
What language do you want to use?? [ Swift / ObjC ]
>
swift
Would you like to include a demo application with your library? [ Yes / No ]
> No
Which testing frameworks will you use? [ Quick / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No
接下来最重要的一步,也是很容易忽略的一步,不然提交后检查会出现很多问题。
cd 到Example文件下,然后pod install下,更新Example项目的pod。如图项目中的podspec文件,更改spec。借用别人的截图
验证podspec
pod lib lint ZKQSandBoxPreviewTool.podspec --allow-warnings
zhangkaiqiang@zhangkaiqiangdeMac-mini ZKQSandBoxPreviewTool %
pod lib lint ZKQSandBoxPreviewTool.podspec --allow-warnings
-> ZKQSandBoxPreviewTool (0.1.0)
- WARN | summary: The summary is not meaningful.
- WARN | description: The description is shorter than the summary.
- NOTE | url: The URL (https://gitee.com/CuanTianHouT/ZKQSandBoxPreviewTool) is not reachable.
- NOTE | xcodebuild: note: Using codesigning identity override: -
- NOTE | [iOS] xcodebuild: note: Building targets in dependency order
- NOTE | [iOS] xcodebuild: note: Metadata extraction skipped. No AppIntents.framework dependency found. (in target 'ZKQSandBoxPreviewTool' from project 'Pods')
- NOTE | [iOS] xcodebuild: note: Metadata extraction skipped. No AppIntents.framework dependency found. (in target 'App' from project 'App')
ZKQSandBoxPreviewTool passed validation.
zhangkaiqiang@zhangkaiqiangdeMac-mini ZKQSandBoxPreviewTool %
3.2本地项目文件上传到远程库中
git push --set-upstream origin main
提交tags
git tag 0.1.0 //版本号和podspec中的版本号一致
git push --tags
私有库和索引库建立关联
pod repo push ZKQSpec privateModule.podspec --allow-warnings
[!] The repo `ZKQSpec` at `../.cocoapods/repos/ZKQSpec` is not clean
解决这个问题
// 1、删除本地repo
pod repo remove 本地库名
// 2、拉取远程repo
pod repo add 本地库名 https://gitee.com/远程repo.git
// 3、重新提交进入要加入的pod 的文件位置
pod repo push 本地repo名 podspec名.podspec --allow-warnings
这样就同步好了远程和本地索引库,到这里私有库搭建完毕,可以通过命令行搜索下自己的仓库查看一下
pod search XXX