美文网首页React Native
podspec属性详解

podspec属性详解

作者: 三千烦恼风_eefa | 来源:发表于2022-11-25 18:56 被阅读0次

    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
    

    相关文章

      网友评论

        本文标题:podspec属性详解

        本文链接:https://www.haomeiwen.com/subject/fuuxfdtx.html