在前面的文章中,我们有讲过如何如何使用CocoaPods制作私有库,在制作私有库中,有一个关键点就是配置.podsepc
文件,所以在这篇文章中我们将整理出.podsepc
文件的配置。
想要了解cocoapods官方文档的详细设置点这里 podspec.html
基础设置
这里的设置都是最基础的,一般会有默认的文案,或者在生成podsepc文件时,自动生成的。如果了解过的,可以自行忽略。
设置名称:
名称将会帮助别人找到你的库 pod search XXXX
1 | spec.name = "XXXX" |
设置版本号:
设置的版本号,这里设置的版本号需要和git
上tag
对应。
1 | spec.version = "0.0.1" |
设置概要:
为你的库设置一个较为简洁的概要
1
spec.summary = ""
设置描述:
描述信息将用于生成标签和改进搜索结果
1
spec.description = ""
设置主页:
1 | spec.homepage = "https://github.com/xxxx" |
设置许可:
官方许可,目前主流使用的 'MIT'
, 'BSD'
,详情可以查看文档
1
spec.license = { :type => "MIT", :file => "LICENSE" }
设置作者信息:
指定这个库的作者的名称以及邮箱地址,一般会默认生成了这些信息;
1
2spec.author = { "xxxx" => "xxxxxx@google.com" }
spec.authors = { "xxxx" => "xxxxxx@google.com", "xxxy" => "xxxxxy@google.com" }
设置平台信息:
指定平台版本版本信息(支持最低ios版本),如果有多平台的话,可以使用以下参数设置;
1 | spec.platform = :ios, "9.0" |
设置源代码地址:
1 | spec.source = { :git => "https://github.com/xxxx/project.git", :tag => "#{spec.version}" } |
文件路径设置
我们在库中使用到的源代码(包括.h/.m/.pch
文件)和资源文件的路径需要使用到以下的设置,这些设置是比较重要的,如果文件的路径错误,会造成后面的报错。
设置源代码文件路径:
设置源文件(包括.h和.m文件)、头文件、pch文件的路径
1 | // 源代码目录 |
以下是文件匹配规则
*
匹配所有文件c*
匹配以名字c开头的文件*c
匹配以名字c结尾的文件*c*
匹配所有名字包含c的文件**
文件夹以及递归子文件夹?
任意一个字符(注意是一个字符)[set]
匹配多个字符,支持取反{a,b}
匹配名字包括a 或者 b的文件
设置资源文件:
项目如果使用了图片资源文件,那么需要设置这些属性;
resources:配置的文件都会被放到mainBundle路径中
resource_bundles:配置的文件会放到你自己指定的bundle中
1 | spec.resource = "icon.png" |
依赖关系设置
当自己的库中引用了本地库或者依赖第三方的pod库时,你需要添加以下这些依赖关系。
本地依赖:
如果依赖本地的lib
库或者framework
,则需要设置这些依赖,不然在后面的验证中将不会通过。
framework, frameworks:一个库就是用framework
,多个库设置frameworks
并使用,
分割。
library, libraries:同上,需要注意的是设置lib
依赖库时,省略其名称的lib前缀,以及.后缀。
1 | spec.framework = "SomeFramework" |
第三方依赖:
依赖的其他的第三方库
1 | // 依赖pod库 |
工程设置
工程设置:
user_target_xcconfig
,这个设置会影响到用户项目设置,不建议使用;pod_target_xcconfig
,是修改当前pod工程中的项目设置,不会影响到其他的工程设置,这个也是官方推荐。
有关xcconfig
相关的设置取决你的项目中某些设置是否修改,有些朋友可能对此不知道如何设置,我来简单说下,这里的设置其实对应的是你在工程文件中改动的地方,比如说:
在你的pod库中依赖了一些第三方库,而其中某个依赖库的ENABLE_BITCODE
为NO
,那么你的私有库中则无法支持ENABLE_BITCODE
为Yes
了,所以你需要在这里去设置。否则在后面的验证中会无法通过;
1 | spec.pod_target_xcconfig = { 'ENABLE_BITCODE' => 'NO' } |
或者,某些你的私有库中不支持模拟器设置,那么你也需要在这里设置。
1 | spec.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64', 'ENABLE_BITCODE' => 'NO' } |
也就是说,当你的工程设置无法通过验证时,你需要讲你的工程设置内容记录在这里。这个你可以根据报错信息来提示你哪些设置。
说下具体的做法吧,在访达中找到项目工程.xcodeproj
,右键包管理,打开文件project.pbxproj
,在文件中找到需要的设置,然后写在这里就可以;
如下图:
1 | // 设置ARC |
模块设置
如果想要在自己的库中模块化,则需要按照以下来设置;使用这种子模块可以将一个大的项目库划分的非常清晰,也包括依赖关系。
子模块设置:
如果需要设置子模块,那么依赖库,pod,资源文件设置都是继承父模块的,所以可以重写这些属性:
1 | # Animation |
上面的一些设置都是常常会用到的,当然还有一些不常用的方法就不在此一一说明了;
以上内容就是本篇的全部内容。