简介
- 私有库创建时对应项目的podspec文件书写
1 | # |
- 以上为标准生成的podspec文件结构,生成代码为
1 | pod spec create PODSPEC_NAME |
结构说明
Spec Metadata
- 私有库基本描述内容,以下为必要内容
- name 私有库名称 必须和文件名称相同
- version 版本 对应git项目中的tag
- summary 总结
- description 详细描述 必须长于总结
- homepage 主页 用git上的页面即可
Spec License
license 证书
1
2
3
4
5
6s.license = {
:type => 'Copyright',
:text => <<-LICENSE
© 1990-2019 Company. All rights reserved.
LICENSE
}
Author Metadata
authors 作者
1
2spec.authors = {'Darth Vader' => 'darthvader@darkside.com',
'Wookiee' => 'wookiee@aggrrttaaggrrt.com' }
Platform Specifics
platform 对应平台,必须指明iOS版本
1
s.platform = :ios, "9.0"
Source Location
source pod下载代码的地址 尾部tag指定为version
1
s.source = { :git => "http://EXAMPLE/new.git", :tag => "#{s.version}" }
可以指定branch,但是不推荐。
Source Code
source_files 私有库代码文件
1
s.source_files = "Classes/**/*.{h,m,mm}"
subspec subspec内的文件必须可以单独编译成功
1
2
3
4
5
6
7subspec 'Twitter' do |sp|
sp.source_files = 'Classes/Twitter'
end
subspec 'Pinboard' do |sp|
sp.source_files = 'Classes/Pinboard'
end
Resources - 非必要
- resources 资源文件 用于图片,声音类的资源 .h.m类文件放入资源不会被编译,指定形式与source code一样
- xib,storyboard文件也可以直接作为资源文件导入,导入时注意添加UIKit.frameworks
- xib导入时必须以resources导入一次,然后以resources_bundle导入一次
- 使用时直接利用名称找到resource_bundles,然后利用bundle加载xib
1 | s.resources = "File_Path/*.xib","File_Path/*.png" |
- 如果需要导入本地化.strings应该放入一个bundle中来实现
1 | NSString *path = [[NSBundle mainBundle] pathForResource:@"Bundle_Name" ofType:@"bundle"]; |
Project Linking - 非必要
frameworks libraries 用于添加系统的依赖库
1
2s.frameworks = "SomeFramework", "AnotherFramework"
s.libraries = "iconv", "xml2"vendored_frameworks vendored_library 用于添加第三发依赖库
1
2s.vendored_frameworks = "SomeFramework", "AnotherFramework"
s.vendored_library = "iconv", "xml2"
Project Settings
s.requires_arc = true 现在这条基本必加了
xcconfig 对应项目的一些配置
1
s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
dependency 其它依赖库
1
s.dependency "JSONKit", "~> 1.4"
- 注意:
- 如果为私有库需要指定好source,branch 或 tag
- 如果私有库的podspec文件以官方形式维护,示例方式即可
参考文档
格式检查 (非常重要)
编辑完成之后 需要先检查格式无误 编译能够通过 才能上传 否者上传会失败
- 检查方式
1
pod spec lint .PODSPEC_FILE_ADDRESS
- 相关参数:
- –verbose 查看编译的详情 以理清错误
- –allow-warnings 允许编译警告
- –use-libraries 通常用于避免i386 x86的编译错误
- –sources=”SOURCE_URL, SOURCE_URL” 如果包含私有库的dependency必须加入该参数