iOS-本地私有库搭建以及远程库制作

spec简介

查看本地pod仓库

~/.cocoapods/repos

Spec文件:描述框架信息
pod setup: 将远程仓库的.spec文件拉取到本地
pod install: 先从本地找到.spec文件

eg: pod install AFNetWorking, 系统会从本地仓库找到AFNetworking的spec描述文件,如果本地没找到,就会从远程仓库拉取相应的文件到本地。

--------------------------------------------本地私有库制作--------------------------------------------

操作方法:

打开终端,
1.在桌面创建PrivateStorage,切换到该目录下:

cd  /Users/huangkunpeng/Desktop/PrivateStorage

2.创建私有库名称’HKPUtils’

pod lib create HKPUtils

3.选择问题答案:

what platform do you want to use? 选择iOS
What language do you want to use? 选择ObjC
Would you like to include a demo application with your library?选择YES
Which testing frameworks will you use? [ Specta / Kiwi / None ] 选择None
Would you like to do view based testing? [ Yes / No ] 选择No
What is your class prefix? 设置类的前缀(这里我填写HKP)

项目文件夹介绍

Development Pods (本地私有库,开发时候用)
ReplaceMe.m (自定义的类放在ReplaceMe.m所在的Classes文件夹里面,然后把ReplaceMe.m删掉)
Example for HKPUtils (本地调试运行的demo)

在这里插入图片描述
在这里插入图片描述

添加本地私有库到主工程

1.当编译成功后,本地就有了私有库。然后切换到主工程,把私有库添加到主工程。
2.将 pod ‘HKPUtils’, :path => ‘…/’ 拷贝到主工程的 Podfile中,同时修改“…/”路径,路径为文件在你项目中的路径。

注意:pod底层源码是通过Ruby实现。

编译本地私有库不通过原因

情景:假如现在要对项目中的网络库进行组件化,因为网络库是用了AFN,而且引用了其他的本地私有库,并且在Podfile中使用了use_frameworks!,结果编译失败。
原因:use_frameworks! :
如果使用use_frameworks! ,就打包成framework,在pod->header找不到头文件。
如果不使用use_frameworks!,会把以下代码编译成静态库。

target 'HKPUtils_Example' do
  pod 'HKPUtils', :path => '../'

  target 'HKPUtils_Tests' do
    inherit! :search_paths

    
  end
end

解决方法:注释掉use_frameworks!

--------------------------------------------华丽分隔线-------------------------------------------------------------------------------

远程库制作

本地私有库搭建完,进入远程库制作阶段。
1.进入到项目目录根路径

cd  项目目录根路径

2.提交到缓冲区

git add .

3、提交代码

git commit -m '初始化HKPUtils'

4、远程连接

git remote add origin https://{填写你的代码仓库地址}

5、 强制提交

git push origin master -f

提交完代码后,修改HKPUtils.podspec
关键要修改为远程仓库地址:

s.source           = { :git => 'https://github.com/huangkunpeng/HKPUtils.git', :tag => s.version.to_s }

还有s.homepage ,s.author,s.source_files等信息

根据自己的情况修改信息,如下图:
在这里插入图片描述

6、验证上一步编辑的 HKPUtils.podspec文件

pod lib lint

7.打版本号

git tag 0.1.0
git push --tags

将podspec文件提交到本地的私有索引库

查看本地已存在的索引库

pod repo

如果不存在‘HKPUtils’,就执行以下命令。否则跳过这步

pod repo add HKPUtils https://{填写远程仓库地址}

将HKPUtils私有库的描述文件HKPUtils.podspec提交到远程仓库中

pod repo push HKPUtils HKPUtils.podspec

参考资料

iOS开发 - CocoaPods远程私有库从0到1