在此前的# framework项目指引(Swift)文章中,我通过参考组件化方案,选择了在本地构建一个pod库的方式创建Framework,但没有将配置podspec过程记录下来,怕自己忘记所以单独写一遍快速配置。
一个完整的podspec文件是包含很多内容的,不需要逐一的认识每一个的用法,很花时间,感兴趣的可以单独学习podspec的相关语法,我这边只记录需要的部分。
1.创建podspec
控制台输入 $:
pod spec create (pod名称)
成功 - 控制台输出 $:
Specification created at xxx.podspec
2.快速阅读信息
创建成功后,打开文件并找到Pod::Spec.new do |spec|
下面划分成了很多不同的模块
用于设置pod信息
――― Spec Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
spec.name = "xxx" (名称)
spec.version = "0.0.1" (版本号)
spec.summary = "A short description of xxx." (描述)
设置支持的最低平台版本(根据支持的平台来设置就行)
――― Platform Specifics ―――――――――――――――――――――――――――――――――――――――――――――――――――――――
spec.ios.deployment_target = "9.0"
spec.osx.deployment_target = "12.0"
添加依赖
――― Project Settings ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――
spec.dependency "MBProgressHUD"
spec.dependency "Alamofire"
spec.dependency "SnapKit"
spec.vendored_frameworks = "xxx.framework"
本地项
――― Loction Settings ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――
spec.vendored_frameworks = "xxx.framework" (添加本地frameworks库)
spec.source_files = "xxx/**/*" (添加本地资源文件,*为通配符)
以上二者选其一,SDK导入选1,工程文件导入选2
spec.resources = "xxx.bundle" (添加本地资源)
spec.resource_bundles = { 'keyName' => '资源'}
以上二者选其一,怕麻烦选1,不怕麻烦选二
spec.subspec = 'EmptyXXX' do |spec_network (spec子模块)
3.注意项
spec.description = <<-DESC
# 此处,加上描述pod描述或copy下面的内容
TODO: Add long description of the pod here.
切换类型
# spec.license = "MIT (example)"
spec.license = { :type => "MIT", :file => "FILE_LICENSE" }
全局EXAMPLE替换成github.com或其他域名
使用resources会生成蓝色文件,而xcode中蓝文件不参与编译;所以,不要用resources导入代码文件,但可导入资源
4.新建一个命名文件夹xxx,将podspec与framework放入其中
5.文件夹xxx项目根目录下,配置Podfile,运行$pod install
pod '(库名称)', :path => './(文件夹名称,如xxx)'
6.更新失败:需要处理ERROR
mac$ pod install
Analyzing dependencies
[!] The `xxx` pod failed to validate due to 2 errors:
- ERROR | license: Sample license type.
- WARN | github_sources: Github repositories should use an `https` link.
- ERROR | description: The description is empty.
7.成功
Installing xxx (0.0.1)
Pod installation complete!