iOS项目综合

CocoaPods创建私有库的坑

2018-07-05  本文已影响574人  dream_nice

暑假实习开始第一件事就是学习组件开发,从pod命令生成项目,到更新framework至cocoapod遇到了大大小小的坑,以下文字文笔不好,纯当总结。

自己学习组件化的步骤:
1.Cocoapod创建私有库,并生成生成项目
2.上传组件至Cocoapods
3.更新组件至Cocoapods
4.组件封装成Framework
5.上传Framework至Cocoapods

1.Cocoapods创建私有库,并生成生成项目

(1).在coding创建一个项目ZLSNavc
(2).在终端中创建一个本地私有库,在终端中输入: pod repo add DPNavc https://git.coding.net/dream_boy/DPNavc.git (coding中创建的项目地址)

创建项目
创建私有库

此时在~/.cocoapods/repos/就能看见自己私有库


私有库

(3).使用pod生成项目
cd到一个空目录,并执行pod lib create DPNavcLib


生成项目

2.上传组件至Cocoapod

在上传这一步我遇到了第一个大坑
(1).根据网上步骤,将创建项目中~/DPNavcLib/DPNavcLib/Classes中的ReplaceMe.m替换成自己的组件文件


替换文件
替换后的文件

(2).打开example中的项目,打开DPNavcLib中的DPNavcLib.podspec


DPNavcLib.podspec

(3).进入DPNavcLib目录,对DPNavcLib.podspec,执行 pod lib lint DPNavcLib.podspec --use-libraries进行本地验证


本地验证

(4).将本地代码与远程项目关联,并上传代码


上传代码

(5).对远程项目打上tag要与DPNavcLib.podspec中的s.version相同


s.version
远程仓库打上tag

(6).向私有库DPNavc上传代码,进入DPNavcLib目录,执行pod repo push DPNavc DPNavcLib.podspec --use-libraries


image.png

此时私有库DPNavc已经有了自己的组件


image.png

(7).在自己项目编写podfile如图

Podfile

(8).执行pod install遇到了问题:

问题

解决方法:
进入/Users/dapao/.cocoapods/repos/DPNavc/DPNavcLib,删除Assets,Classes


image.png

进入ZLSNavcLib,在里面新建一个空目录,并将Classes中的组件代码复制至新目录中,删除Assets和Classes


image.png

打开DPNavcLib.podspec,修改参数s.source_files和s.version(注意,每次修改完项目,都需写上新的version,否则会有不可预知的错误)

修改DPNavcLib.podspec

再重新执行(3)~(6)步,此时遇到经典git冲突,解决冲突具体看网上git冲突解决,在此不赘言。
在执行第(6)前对repo进行升级,执行 pod repo update DPNavc


升级repo

最后完成截图


完成

(9).重新再项目里执行pod install


安装成功

此时项目会出现自己的组件


image.png

3.更新组件至CocoaPods

其实这一步就是2中解决错误的步骤,将修改完成的代码,按流程上传至git,并更新本地私有库,再执行pod repo push DPNavc DPNavcLib.podspec --use-libraries,更新库版本。

4.组件封装成Framework

方法一:使用Xcode封装
新建一个Cocoa TouchFramwork项目,并将组件拉入项目


新建项目

在Build Settings设置Mach-O Type 为Static Library,Defines Module为NO


设置1
设置2

在Build Phases可以设置framework的公开和私有.h文件


Build Phases

DPNavc.h必须要公开并引用其他需公开的.h文件


DPNavc.h

command+B编译,就出现了framework,注意真机,和模拟机的framework是分开的,右键framework show in file,就能在文件中找到framework


生成framework

方法二:使用Cocoapods封装
安装cocoapods-packager插件,在终端输入sudo gem install cocoapods-packager安装插件

安装插件

进入DPNavcLib.podspec,设置公开头文件,其他隐藏


DPNavcLib.podspec
image.png

进入DPNavcLib目录,执行以下命令
pod package DPNavcLib.podspec --library --force
pod package DPNavcLib.podspec --force
--library指定打包成.a文件,如果不带上会打包成.framework,--force表示强制覆盖

封装

DPNavcLib目录中会出现封装好的文件夹


framework文件

5.上传Framework至Cocoapods

打开DPNavcLib.podspec,设置s.vendored_frameworks,这个是Framework文件目录,并更新s.version,将framework文件放入目录


DPNavcLib.podspec

注意:sourcefile和vendored_frameworks只能验证一个,若同时出现2个,则无法通过验证。

Framework文件目录

按流程上传至git,并更新本地私有库,进行本地验证,再执行pod repo push DPNavc DPNavcLib.podspec --use-libraries,更新库版本

后续应该还有好多坑,碰到后再补充

上一篇下一篇

猜你喜欢

热点阅读