podspec属性详解
2022-11-25 本文已影响0人
三千烦恼风_eefa
source_files:源文件(可以包含.h和.m)
public_header_files:头文件(.h文件)
resources:资源文件(配置的文件都会被放到mainBundle中)
resource_bundles:资源文件(配置的文件会放到你自己指定的bundle中)
frameworks:依赖的系统框架
vendored_frameworks:依赖的非系统框架
libraries:依赖的系统库
vendored_libraries:依赖的非系统的静态库
dependency:依赖的三方库
Pod::Spec.new do |spec|
# pod库名称
spec.name = "MyLib"
# 曾经被被弃用的名字
# spec.deprecated_in_favor_of = 'NewMoreAwesomePod'
# pod库版本
spec.version = "0.0.1"
# pod库指定swift版本
# spec.swift_version = '3.2'
# pod库指定cocoapods版本
# spec.cocoapods_version = '>= 0.36'
# Pod库的简要说明。字数最多为140字。描述应该剪短,但是内容丰富。
spec.summary = "这是一个测试用的pod库"
# Pod的描述(description)比摘要(summary)更详细,写在 <<-DESC 内容 DESC 这个标签之间
# spec.description = <<-DESC
# DESC
# 用来说明这个库的项目主页
spec.homepage = "http://EXAMPLE/MyLib"
# 用图片的方式去介绍库,可以是任意常用图片格式
# spec.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"
# 文档地址
# spec.documentation_url = "www.example.com/doc"
# pod库开源许可证书 如MIT、GPL、LGPL、BSD
spec.license = "MIT"
# 作者名称和邮箱,会读取本地git信息自动生成,允许匿名,只填邮箱,可设置多个用逗号分隔
spec.author = { "kukukukiki" => "896415611@qq.com", "sx" => "896415611@qq.com" }
# 作者的社交账户地址,twitter 微博之类的都可以
# spec.social_media_url = "https://twitter.com/kukukukiki"
# 在pod文件下载完毕之后,执行的命令,支持多行命令
# spec.prepare_command = 'ruby build_files.rb'
# spec.prepare_command = <<-CMD
# sed -i 's/MyNameSpacedHeader/Header/g' ./**/*.h
# sed -i 's/MyNameOtherSpacedHeader/OtherHeader/g' ./**/*.h
# CMD
# 标记pod是否过期
# spec.deprecated = true
# 支持的平台,如果不写默认支持所有平台(ios、osx、watchos、tvos)
# spec.platform = :ios
# spec.platform = :ios, "5.0"
# spec.ios.deployment_target = "5.0"
# spec.osx.deployment_target = "10.7"
# spec.watchos.deployment_target = "2.0"
# spec.tvos.deployment_target = "9.0"
# 指定代码地址。一般是git地址,后面可以跟tag--标签,branch-分支,commit-版本号,submodules-子目录
# 也支持 git, hg, bzr, svn and HTTP.
# 支持的key:
# :git => :tag, :branch, :commit, :submodules
# :svn => :folder, :tag, :revision
# :hg => :revision
# :http => :flatten, :type, :sha256, :sha1
# :tag => "v_#{spec.version}, :submodules => true" 表示指向 'v_当前pod库版本'的tag,同时也支持submodules,最好是可以保持tag和podVersion统一
spec.source = { :git => "http://EXAMPLE/MyLib.git", :tag => "#{spec.version}" }
# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
# 源文件
# 匹配规则
# *匹配所有文件
# c*匹配以名字C开头的文件
# *c匹配以名字c结尾的文件
# *c*匹配所有名字包含c的文件
# **文件夹以及递归子文件夹
# ?任意一个字符(注意是一个字符)
# [set] 匹配多个字符,支持取反
# {p,q} 匹配名字包括p 或者 q的文件
spec.source_files = "Classes", "Classes/**/*.{h,m}"
spec.exclude_files = "Classes/Exclude"
# 公有头文件 私有头文件
# spec.public_header_files = "Classes/**/*.h"
# spec.private_header_files = 'Headers/Private/*.h'
# 自己的或者第三方framework,比qqSDK的TencentOpenAPI.framework
# spec.vendored_frameworks = 'MyFramework.framework','TheirFramework.framework'
# 自己的或者第三方.a文件,比如微信SDK的.a文件
# spec.vendored_libraries = 'libProj4.a', 'libJavaScriptCore.a'
# ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
# spec.resource = "icon.png"
# spec.resources = ['Images/*.png', 'Sounds/*']
# 资源文件,比如图片,这种方式资源文件会被以bundle的形式加入到项目中去,官方建议使用的方式,主要是防止与用户的命名方式冲突
# spec.ios.resource_bundle = { 'MapBox' => 'MapView/Map/Resources/*.png' }
# spec.resource_bundles = {
# 'MapBox' => ['MapView/Map/Resources/*.png'],
# 'OtherResources' => ['MapView/Map/OtherResources/*.png']
# }
# ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
# 依赖的系统的框架, 可以指定平台
# spec.framework = "SomeFramework"
# spec.frameworks = "SomeFramework", "AnotherFramework"
# spec.ios.framework = 'SomeFramework', "AnotherFramework"
# spec.library = "iconv"
# spec.libraries = "iconv", "xml2"
# spec.ios.libraries = "iconv", "xml2"
# compiler_flags, 头文件,pch文件
# spec.compiler_flags = '-DOS_OBJECT_USE_OBJC=0', '-Wno-format'
# spec.prefix_header_contents = '#import <UIKit/UIKit.h>', '#import <Foundation/Foundation.h>'
# spec.prefix_header_file = 'iphone/include/prefix.pch'
# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
# 是否是ARC,默认true,如果不是,会自动添加-fno-objc-arc compiler flag
# spec.requires_arc = true
# 也可以指定使用ARC的目录
# spec.requires_arc = false // 先设为false才可以
# spec.requires_arc = 'Classes/Arc' //该文件夹下是ARC,其它非ARC
# spec.requires_arc = ['Classes/*ARC.m', 'Classes/ARC.mm'] //指定文件ARC,其它非ARC
# 设置 xcconfig 比如 HEADER_SEARCH_PATHS
# spec.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
# 依赖的第三方
# 可以指定某个平台的依赖
# spec.dependency "JSONKit", "~> 1.4"
# spec.ios.dependency 'MBProgressHUD', '~> 0.5'
# 支持 c++
# spec.ios.library = 'c++'
end