创建pod仓库的一点经验

 一、如何创建一个pod

1、cd到你期望存放项目的路径

2、在终端输入:pod  lib create FALiveSDK (其中FALiveSDK是你创建的pod仓库的名字)

3、终端出现选项, (> 之后表示我选的选项)

过程如图所示

整个过程如下图所示

生成的项目目录详情如下图

真正的pod仓库的代码,是FALiveSDK目录,其中Classes是存放代码的目录,Assets是存放图片资源的目录

至此,我们已经简单的完成了一个pod仓库的创建了。只需要把我们需要加入pod管理的代码加入到Classes,然后cd到Example,执行一次pod install,结束之后打开Example里的.xcworkspace,就可以看到加到pod仓库的代码了。

二、podspec文件

1、官方文档地址:

https://guides.cocoapods.org/syntax/podspec.html

2、spec是什么

spec描述了一个pod库的版本。它包括有关应从何处获取源、使用什么文件、要应用的构建设置以及其他一般元数据(如其名称、版本和描述)的详细信息。

这里主要讲述几个重要的字段:

s.name、s.version

s.name : pod仓库的名称,跟podfile里的pod是一致的

s.version: '0.1.0',指定当前pod仓库的版本号,使用的时候,在podfile里可以指定pod的版本,如下:

eg: pod "FALiveSDK", '0.1.0'


s.source

远程仓库的源地址,这里是:'http://mgit.kugou.net/ios-watchgroup/FALiveSDK.git'

s.ios.deployment_target

因为我们指定的是iOS平台,所以是s.ios.deployment_target。如果是macOS,那就是s.osx.deployment_target,这里是我们在创建pod的时候就指定好的了,所以不需要修改,

s.ios.deployment_target = '9.0',代表支持的系统版本是iOS9.0(含及以上)


s.source_files

表示加入到pod仓库的所有文件

s.source_files = 'FALiveSDK/**/*.{c,h,hpp,m,mm,cpp}'

表示在FALiveSDK目录下的所有子目录下的.c .h .hpp .m .mm .cpp类型的文件,都属于pod仓库的源文件,都会加入到pod管理


s.private_header_files

表示私有文件包含哪些

s.private_header_files = 'FALiveSDK/**/*.{c,h,hpp,m,mm,cpp}'

此处表示s.source_files文件下都属于私有文件,你也可以选定某些文件路径,作为具体的私有文件


s.resources

资源路径可以加到这里来,可以把.plist文件,.json文件都加到这里来

s.resources = ['FALiveSDK/FanXing/Resource/file/*.*','FALiveSDK/FanXing/DebugURLCanReplaceConfig.plist','FALiveSDK/FanXing/General/Helper/FXAppConfig.plist','FALiveSDK/FanXing/Section/Setting/Model/FXSettingConfig.plist','FALiveSDK/FanXing/Section/Setting/Model/messageSetConfig.plist','FALiveSDK/FanXing/Section/Setting/Model/settingConfig.plist','FALiveSDK/FanXing/Section/Setting/Model/timmerSetConfig.plist','FALiveSDK/FAWatchSDK/Provider/MTModules.plist','FALiveSDK/FAWatchSDK/Provider/MTNetwork.plist']


s.prefix_header_file

全局声明的pch文件,这里的例子是PrefixHeader.pch

s.prefix_header_file = 'FALiveSDK/FanXing/Resource/PrefixHeader.pch'


s.static_framework

声明该pod仓库是静态framework,这点很重要,因为动态的framework不能依赖静态的framework,如果出现以下错误

说明pod仓库中,你的动态framwork依赖了静态的framework。所以需要把动态framwork声明为静态

s.static_framework = true


s.dependency

表明FALiveSDK依赖的第三方库有哪些

s.dependency 'FFmpeg' 依赖了FFmpeg


s.libraries

静态库,一般都是.a文件,这里是系统的依赖.a文件

s.libraries = 'iconv', 'bz2','crypto','sqlite3.0','sqlite3','z','stdc++','c++','icucore','xml2'


s.requires_arc

代码的内存管理方式是否是ARC

s.requires_arc = true/faults


s.subspec

pod的子仓库,比如有写文件是ARC的,有些是非ARC的,就可以通过subspec的方式,区分管理文件

s.subspec 'FAFrameWork' do |fr|

    fr.vendored_frameworks = no_framework

    fr.vendored_libraries = no_static_a

    fr.requires_arc = true

end

你可能感兴趣的:(创建pod仓库的一点经验)