cocoapod搭建私有库超级详细教程

425 阅读2分钟

创建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