私有库podspec文件的编写

Pod::Spec.new do |s|
s.name = 'SPEC_NAME' # pod名,一般与仓库名相同
s.version = '1.0.0' # 版本号
s.summary = <<-DESC # 简介
简介写在这里,一般不超过140个英文字符
DESC
s.description = <<-DESC # 详细介绍
详细介绍写在这里
DESC
s.homepage = 'https://git.yourcompany.com/iOSPods/SPEC_NAME' # 项目仓库地址
s.license = { :type => 'yourcompanyLicense', :file => 'LICENSE' } # 协议,这种方式必须包含协议文件LICENSE
s.author = { 'yourcompany' => '[email protected]' } # 作者联系方式,固定不改变
s.source = { :git => '[email protected]:iOSPods/SPEC_NAME.git', :tag => s.version} # git地址和tag
s.frameworks = 'Foundation', 'UIKit' # 使用的系统framework
s.weak_frameworks = 'WebKit', 'UserNotifications' # 使用高版本iOS系统才有的framework, optional导入
s.libraries = 'z', 'sqlite3' # 如:使用系统的libz.tbd,libsqlite3.tbd
s.vendored_frameworks = '/.framework' # 如果项目中有包含framework,使用 vendored_frameworks
s.vendored_libraries = '
/.a' # 如果项目中有包含.a,使用 vendored_libraries
s.source_files = 'Folder//.{h,m}' # 源文件目录, ** 代表所有Folder的子目录, .{h,m} 代表所有以 .h 和 .m 结尾的文件
s.public_header_files = 'Folder/
/.h' # public 的头文件,不写默认为源文件中所有的.h文件
s.pod_target_xcconfig = {'ENABLE_BITCODE' => 'NO'} # 设置 pod 中该 target 的 Build Setting, 选择使用, key 为 project.pbxproj 中 buildSettings 的 key
s.user_target_xcconfig = {'OTHER_LDFLAGS' => '-lstdc++ -ObjC'} # 设置使用该库主工程的 target 的 Build Setting, 选择使用, key 为 project.pbxproj 中 buildSettings 的 key
s.xcconfig = {'OTHER_CFLAGS' => '-DMAGICKCORE_HDRI_ENABLE=0', 'OTHER_LDFLAGS' => '-lstdc++'} # 设置本 target 和使用的 target 的 Build Setting, 选择使用, key 为 project.pbxproj 中 buildSettings 的 key
# 资源文件,png, xib, storyboard, plist等非编译的资源文件都写在这里, 不要将info.plist放进去,有些项目可能会有问题
s.resources = 'Folder/
/.{png,xib,plist}'

s.exclude_files             = '**/*.md', '**/LICENSE'    # 同时导入的文件,不参与编译不参与拷贝,但是会同时下载到项目中
s.dependency 'YYModel', '~> 1.0'  # 依赖1,直接写依赖的 pod 名称
s.dependency 'YYCache', '~> 1.0'  # 依赖2,直接写依赖的 pod 名称

s.requires_arc              = true        # 是否使用ARC, 默认为true
s.static_framework          = true        # 是否使用静态的framework,如果必须使用静态的framework,则设置为true,否则不设置,不要强制用户设置静态库

s.ios.deployment_target     = '9.0'       # 支持的iOS系统版本

# 如果需要创建子spec,使用这种方式,但必须保证每个子spec都可以单独编译
# pod不会按照原先的文件目录进行导入,如果想让pod中按目录显示,必须使用子spec方式
s.subspec 'SUB_SPEC_NAME' do |ss|
    ss.dependency 'YYCache', '~> 1.0' # 依赖1,直接写依赖的 pod 名称
    ss.source_files         = 'SubSpecFolder/**/*.{h,m}'
    ss.public_header_files  = 'SubSpecFolder/**/*.h'
    ss.exclude_files        = 'SubSpecFolder/**/*.md'
    ss.resources            = 'SubSpecFolder/**/*.{png,xib,plist}'
end

end

你可能感兴趣的:(私有库podspec文件的编写)