原文
Cocoapods整理(三)——编写podspec文件
source_files:配置三方库的源文件(.h或.m文件)
写法:
source_files = 'Classes/ZCPKit.{h,m}' // 直接指定文件名
或:
source_files = 'Classes/*.{h,m}' // Classes文件夹下的所有匹配文件
source_files = 'Classes/**/*.{h,m}' // Classes所有路径下的所有匹配文件
public_header_files:配置公有的头文件(.h文件)
写法:
source_files = 'Classes/ZCPKit.h' // 直接指定文件名
或:
source_files = 'Classes/*.h' // Classes文件夹下的所有匹配文件
source_files = 'Classes/**/*.h' // Classes所有路径下的所有匹配文件
vendored_frameworks:配置需要引用的非系统框架(**/*的写法后面不再赘述)
写法:
vendored_frameworks = 'Frameworks/MyFramework.framework'
frameworks:配置依赖的系统框架
写法:
frameworks = 'AVFoundation', 'CoreGraphics', 'Security', 'SystemConfiguration'
vendored_libraries:配置需要引用的非系统静态库(要注意,这里的.a静态库名字必须要带lib前缀,如果引用的静态库名字没lib前缀会导致编译报错,只需要重命名加上即可)
写法:
vendored_libraries = 'Frameworks/libZCPKit.a'
libraries:配置依赖的系统库(要注意,这里的写法需要忽略lib前缀)
写法:
libraries = 'c++', 'sqlite3', 'stdc++.6.0.9', 'z'
resources:配置资源文件(.bundle,.png,.txt等资源文件,这些资源文件会被放到mainBundle中,要注意避免发生命名重复的问题)
写法:
resources = 'Resources/MyRes.bundle'
resource_bundles:配置指定bundle的资源文件(可以解决resources导致的命名冲突问题)
写法:
resource_bundles = {
'ZCPKitBundle' => ['Resources/MyRes.bundle'],
}
dependency:依赖的三方库,pod库或者可以是自身的subspec
写法:
dependency 'AFNetworking', '~>3.1.0' // pod三方库
dependency 'Util' // 自身的subspec
或
dependency 'AFNetworking'
三方Framework和Library
在项目中,我们经常会有一些以文件形式存在的framework和.a,例如我项目中就有百度的语音识别和一个高德的.而由于某些原因,你不能用cocoapods将其管理,只能拖到项目中,cocoapods使用vendored_frameworks和vendored_libraries字段进行设置:
s.ios.vendored_libraries = 'LTVoiceAssistant/Classes/libBDVoiceRecognitionClient.a',
'LTVoiceAssistant/Classes/libBDSSpeechSynthesizer.a'
s.ios.vendored_frameworks = 'LTVoiceAssistant/Classes/*.framework'
网友评论