您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > CocoaPods公共类库管理方案和使用心得
CocoaPods第三方库集成管理应用CocoaPods安装1.检查是否安装xcode开发工具打开终端,运行:xcode-select--install如果已安装,输出xcode-select的使用命令,如果未安装,会自动跳出安装程序,进行安装即可;注:如果不安装,安装cocoaPods的buildingnativeextension阶段报错;2.更新gem在终端中运行:gem–v,ruby–v,检查当前gem和ruby的版本;最好将gem为最新版本,防止安装cocoaPods出现版本太old的意外情况;sudogemupdate-system如果用国外的源更新较慢的话,可以换成淘宝的源gemsource--remove–a可以通过gemsource–l查看当前的gem源3.安装cocoaPods和pod命令行环境安装:sudogeminstallcocoapods设置cocoaPods环境:podsetup安装过程中可能比较慢,请耐心等待,安装完成之后,使用podlist验证是否安装成功,如果安装成功,该命令可以显示当前cocoaPod公共库中所有可以调用的类库名称和版本号;详细安装步骤:常用使用命令1.第一次运行:podhelp查看各个命令的用途2.查看你的工程库中的某个第三方库是否在pod的仓库中:命令:podsearch***可以看到最新的版本信息和source地址:-SDWebImage(3.7.1)AsynchronousimagedownloaderwithcachesupportwithanUIImageViewcategory.pod'SDWebImage','~3.7.1'-Homepage:::3.7.1,3.7.0,3.6,3.5.4,3.5.2,3.5.1,3.5,3.4,3.3,3.2,3.1,3.0,2.7.4,2.7,2.6,2.5,2.4[masterrepo]-Subspecs:-SDWebImage/Core(3.7.1)-SDWebImage/MapKit(3.7.1)-SDWebImage/WebP(3.7.1)3.创建Podfile文件具体podfile文件编写参考::引用自己的gitlibray:pod'NetEasePatch',:git='引用cocoaPods库时:pod'SDWebImage''3.1.1'注意:最好是加上版本号,防止版本升级造成工程编译通不过;4.创建pod工作空间:编写完Podfile文件之后:第一次运行:podinstall以后更新运行:podupdate创建之后会生成三部分文件:Pods文件夹,*.xcworkspace,Podfile.lock.xcworkspace工作空间把第三方库先分别生成静态库,然后再生成一个libPods.a供项目引用;自定义类库配置文件.podspecpodspec的语法参考:注意:当你引用cocoaPods第三方库的时候,你能够在其git工程中发现.podspec文件,开始不会写的时候,可以多去第三方库的git地址上去看看podspec文件的写法;当我们自己写的公共库,我们可以独立出类库供多个项目引用;这就需要我们去配置.podspec文件;1.首先创建podspec文件podlibcreate[podname]然后编辑从工程文件中独立公共文件出来建立一个工程,编辑配置library引用信息,具体编辑看参考地址下面是一个自定义类库的示例:Pod::Spec.newdo|s|s.name='NetEasePatch's.version='1.0.0's.license='MIT's.summary='NetEasePatchisausefullibrarytouse's.homepage='={'huipang'='huipang@corp.netease.com'}s.source={:git=':tag=1.0.0}s.requires_arc=falses.platform=:ioss.subspec'patch'do|ss|ss.ios.deployment_target='5.0'ss.ios.public_header_files='NetEasePatch/patch/*.h'ss.ios.source_files='NetEasePatch/patch'ends.subspec'Wax'do|ss|ss.ios.deployment_target='5.0'ss.ios.public_header_files='NetEasePatch/Wax/*.h'ss.ios.source_files='NetEasePatch/Wax'ss.subspec'lua'do|sss|sss.ios.deployment_target='5.0'sss.ios.private_header_files='NetEasePatch/Wax/lua/*.h'sss.ios.source_files='NetEasePatch/Wax/lua'endss.subspec'extensions'do|sss|sss.ios.deployment_target='5.0'sss.ios.private_header_files='NetEasePatch/Wax/extensions/**/*.h'sss.ios.source_files='NetEasePatch/Wax/extensions/**/*.{h,m,c}'sss.libraries=xml2sss.xcconfig={'HEADER_SEARCH_PATHS'='${SDK_DIR}/usr/include/libxml2'}#sss.ios.exclude_files='NetEasePatch/Wax/extensions/json'endends.frameworks=UIKit,CoreGraphics,Foundations.ios.libraries=zs.dependencyZipArchiveend2.自定义类库测试创建一个demo工程,在demo工程下建立Podfile文件引用本地的类库,如下所示:pod'NetEasePatch',:path='~/Documents/neteaseGit/neteasepatch'编译demo工程,如果不报错,公共类库建立测试完毕;tip:公共类库尽量做到不要用调用者去配置buildsetting;私有的头文件尽量不要放在调用文件的头文件,放在实现文件里面(m文件,c文件)3.本地类库上传gitlab管理将本地测试通过的类库工程上传gitlab管理;创建私有repo仓库好处:创建私有Rep仓库,可以对我们自己创建的公共类库也能像cocoaPods公共类库一样进行查询(podsearch***)和引用(pod‘***’)。具体创建方法可以参考官方文档:如何创建私有repo仓库1.创建一个类库版本管理的存放git,我以ios公共类库为例:在本地cocoaPods安装目录下创建私有Repo创建repo:podspec仓库名$podrepoaddpodspec注:该命令主要可以用来和线上仓库git连接,将git下的所有公共库的配置信息加载到本地的repo仓库检查本地的私有repo是否建立成功,如果创建成功,可以在如下目录中看到git上的类库podspec文件;$cd~/.cocoapods/repos/REPO_NAME$podrepolint.删除本地repo:$podreporemovepodspec更新本地repo:$podrepoupdatepodspec可以通过podrepo–help查看相关命令;3.如何添加公共类库到私有repo仓库:a)线上私有repo的目录层次需要按照如下标准:1.├──Specs2.└──[SPEC_NAME]3.└──[VERSION]4.└──[SPEC_NAME].podspecb)我们建立的公共类库的podspec文件提交地址如下:)首先要保证公共类库的git里需要指定LICENSE;如果新创建一个公共类库:可以通过pod命令完成:podlibcreatlibname,可以按照模版建立License和podspec文件如果是以前已经建好的一个类库:需要手动拷贝LICENSE文件,并在podspec文件中指定,否则添加到本地repo中会有warning,添加不进去;d)更新LICNECE和代码,记得需要进行tag标记当更新LICENCE或者提交代码之后,一定要打tag标记,并修改podspec文件中sourcetag;Gitadd*-Agittag‘1.0.2’gitpush--tagse)使用如下命令对创建的类库pospec文件进行xcode编译验证,验证通过之后,会自动将podspec类库添加到本地的私有repo中;$podrepopushREPO_NAMESPEC_NAME.podspec此命令会对podspec文件进行验证,特别是版本信息和LICENCE文件;注意:一般提交类库的时候一定要先在这一步对类库进行验证,修改类库结构和报错;因为验证的时候必须打上tag,为了保证tag版本,可以使用拿1.0.0版本测试gittag-d1.0.0gitpushorigin:refs/tags/1.0.0f)如果本地添加成功,再将podspec文件提交到git线上管理;如何使用私有repo仓库1.Clone线上repo仓库到本地$podrepoaddpodspec第一次创建可以自动下载线上私有仓库git中的所有公共类库;2.更新线上repo仓库地址:更新所有repo(包括master):podrepoupdate更新某个repo:podrepoupdatepodspec公共类库私有repo地址:目前为止的公共类库包括:使用cocoaPods的常用问题:1.自定义库公开文件的配置s.ios.public_header_files='URS/URSAuth.h','UR
本文标题:CocoaPods公共类库管理方案和使用心得
链接地址:https://www.777doc.com/doc-2906612 .html