React Native

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
上一篇下一篇

猜你喜欢

热点阅读