美文网首页
ios 创建私有库pod,codspec

ios 创建私有库pod,codspec

作者: 浪人残风 | 来源:发表于2022-05-12 10:15 被阅读0次

    创建pod模版项目

    使用pod命令创建私有库模板项目
    pod lib create 私有库名,如创建一个名为PodspecLib的库

    pod lib create PodspecLib
    

    接下来提示你选择库的信息


    image.png

    分别是:

    • What platform do you want to use?? [ iOS / macOS ]
      使用哪个平台?
      我们创建的是iOS平台的库,填写iOS
    • What language do you want to use?? [ Swift / ObjC ]
      使用哪种语言开发库?
      这里填写Swift,使用OC语言的同学可以填ObjC
    • Would you like to include a demo application with your library? [ Yes / No ]
      库里是否需要一个demo?
      基本上所有库都需要一个测试的demo,方便测试验证库是否正确
      这里填写Yes
    • Which testing frameworks will you use? [ Quick / None ]
      是否使用Quick单元测试框架?
      熟悉Quick测试框架的可以填上,Demo项目会以pod形式集成Quick框架,不熟悉的话填写None即可
    • Would you like to do view based testing? [ Yes / No ]
      是否需要对视图View进行测试?
      一般都没必要,这里填写No
      填写完了以后会使用Xcode自动打开工程


      image.png

    podspec私有库配置文件的解读

    #
    # Be sure to run `pod lib lint PodspecLib.podspec' to ensure this is a
    # valid spec before submitting.
    #
    # Any lines starting with a # are optional, but their use is encouraged
    # To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
    #
    
    Pod::Spec.new do |s|
      s.name             = 'PodspecLib' # 库名称,不能跟现有cocoapods仓库里的库名同名,同名会有冲突,一般可以加上个人的私有前缀
      s.version          = '0.1.0' # 库的版本号,一般以0.0.1版本开始,注意这里的版本号要跟git里tag标签一样,每个版本都需要打上跟version同样名称的tag,并推送到远程仓库
      s.summary          = 'A short description of PodspecLib.' # 概要
    
    # This description is used to generate tags and improve search results.
    #   * Think: What does it do? Why did you write it? What is the focus?
    #   * Try to keep it short, snappy and to the point.
    #   * Write the description between the DESC delimiters below.
    #   * Finally, don't worry about the indent, CocoaPods strips it!
    
      s.description      = <<-DESC
    TODO: Add long description of the pod here.
                           DESC
    # description指的是对库的描述,平时我们使用pod search 库名的时候,每个库有一个简单的介绍,指的就是这个description
      s.homepage         = 'https://github.com/252797991@qq.com/PodspecLib' # 主页,一般都填写git仓库的主页URL
      # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
      s.license          = { :type => 'MIT', :file => 'LICENSE' } # license默认就好,不要去改动
      s.author           = { '252797991@qq.com' => '252797991@qq.com' } # 作者相关信息,一般形式是'作者名' => '联系方式'
      s.source           = { :git => 'https://github.com/252797991@qq.com/PodspecLib.git', :tag => s.version.to_s } # 源码,这里填写库的Git地址,别人使用你的库时,pod是根据这个Git地址来打包编译的
      # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' # 社交地址,可以填写自己对应博客或网站的地址
    
      s.ios.deployment_target = '9.0' # 库发布的iOS适配版本号,一般指最低支持的iOS版本
    
      s.source_files = 'PodspecLib/Classes/**/*' # 库的源码,需要明确指定,pod编译打包库时编译的就是这里指定的源码,一般都以通配符形式匹配
      
      # s.resource_bundles = {
      #   'PodspecLib' => ['PodspecLib/Assets/*.png']
      # }
    # resource_bundles指的是资源文件,一般指图片、xib、storyboard、配置文件等
      # s.public_header_files = 'Pod/Classes/**/*.h'
      # 开放的公共头
      # s.frameworks = 'UIKit', 'MapKit'
      # 私有库需要依赖系统的哪些framework,需要这里明确指定
      # s.dependency 'AFNetworking', '~> 2.3'
      # 私有库如果需要依赖其他第三方pod,需要这里指定,多个时需要同样格式指定多个
    end
    
    • s.name
      库名称,不能跟现有cocoapods仓库里的库名同名,同名会有冲突,一般可以加上个人的私有前缀
    • s.version
      库的版本号,一般以0.0.1版本开始,注意这里的版本号要跟git里tag标签一样,每个版本都需要打上跟version同样名称的tag,并推送到远程仓库
    • s.summary
      库概要
    • s.description
      description指的是对库的描述,平时我们使用pod search 库名的时候,每个库有一个简单的介绍,指的就是这个description
    • s.homepage
      主页,一般都填写git仓库的主页URL
    • s.license
      license默认就好,不要去改动
    • s.author
      作者相关信息,一般形式是'作者名' => '联系方式'
    • s.source
      源码,这里填写库的Git地址,别人使用你的库时,pod是根据这个Git地址来打包编译的
    • s.social_media_url
      社交地址,可以填写自己对应博客或网站的地址
    • s.ios.deployment_target
      库发布的iOS适配版本号,一般指最低支持的iOS版本
    • s.source_files
      库的源码,需要明确指定,pod编译打包库时编译的就是这里指定的源码,一般都以通配符形式匹配
    • s.resource_bundles
      资源文件,一般指图片、xib、storyboard、配置文件等,库里引用资源文件需要注意得是资源文件路径是在 库名.bundle 里
    • s.public_header_files
      开放的公共头
    • s.frameworks
      私有库需要依赖系统的哪些framework,需要这里明确指定
    • s.dependency
      私有库如果需要依赖其他第三方pod,需要这里指定,多个时需要同样格式指定多个,需要注意的是这里的依赖不支持git形式的pod,如:pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git'

    引用本地私有pod

    pod "PodspecLib", :path => "../PodspecLib"
    或者
    pod 'PodspecLib', :podspec => '../PodspecLib/PodspecLib.podspec'

    编写库源码

    发布pod

    相关文章

      网友评论

          本文标题:ios 创建私有库pod,codspec

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