美文网首页iOS 组件化
Pod 私有库创建(自定义的组件)

Pod 私有库创建(自定义的组件)

作者: 下班不写程序 | 来源:发表于2020-12-24 17:47 被阅读0次

    3篇文章带你学会组件化😁😁😁
    1.iOS 创建远程cocoapods 私有库
    2.iOS Pod 私有库创建(自定义的组件)
    3.iOS CTMediator组件化实践

    其实就是创建一个组件, 放到GitHub 上, 别人直接pod 过去就能用, 而不是像原来一样把上传的文件下载然后拉取到项目中...

    demo组件地址

    步骤导览

    1. 先在Git上创建远程私有库

    和自己平时创建仓库一模一样 创建远程私有库

    2. 创建本地项目

    1. 进入终端,cd到目标目录下, 便于管理, 最好将你一个项目的使用到的所有组件放到同一文件夹下, 例如demo文件夹 cd到目标目录
    1. 在demo 目录下创建组件CustomUIKit
      格式: pod lib create xxx
    pod lib create CustomUIKit
    
    将会经过如下一系列询问 lib create 操作后的询问

    以上步骤完成后,将会自动打开XCode项目.

    可以通过 tree 指令或者打开文件夹看下创建的本地仓库的目录结构

    目录结构

    3. 修改xxx.podspec 文件

    下面是一些注释, 根据实际情况增加或者减少即可.

    Pod::Spec.new do |s|
      s.name         = "A_section"
    
      #发版版本号,每更新一次代码就改变一次版本号
      s.version      = "0.0.1"
    
      #一个简单的总结,随便写
      s.summary      = "A short description of A_section." 
    
      #一定要写上,不写的话,执行 pod lib lint 验证项目的时候会报找不到 UIKIT 等框架错误
      s.platform = :ios, "8.0"
    
      #描述,随便写 但是要比 s.summary 长度长
      s.description  = <<-DESC
       short description of A_section short description of A_section
                       DESC
    
      #你的 git 仓库首页的网页 url,注意并不是 https/ssh这种代码仓库地址
      s.homepage     = "https://coding.net/u/xxxx/p/A_section"
       
      #直接写 MIT
      s.license      = "MIT"
      
      #你是谁
      s.author             = { "" => "" }
      
      #这里就是你 git 仓库的 https/ssh 地址了
      s.source       = { :git => "https://git.coding.net/xxxx/A_section.git", :tag => "#{s.version}" }
    
      #这里的文件夹下的内容就是这个 pods 被pod install 的时候会被下载下来的文件,不在这个文件夹,将不会被引用
      # Classes 目录和.podspec 目录是平级的。
      #你可以随便指定文件夹名称,只要这个文件夹是真实存在的
      #Classes/**/*.{h,m},表示 Classes 文件夹及其文件夹下的所有.h,.m 文件。
      s.source_files  =  "A_section/Classes/**/*.{h,m}"
    
      #资源文件地址,下面的所有.png资源都被打包成 s.name.bundle
      s.resource = ['Images/*.png','Sounds/*']
    
      #资源文件地址,和 resource 的区别是,这个属性可以指定 bundle 的名字,下面的所有.png文件都会被打包成 ABC_section.bundle
      s.resource_bundle = {
      'ABC_section' => ['Classes/ABCImage/*png']
    
      }
    
      #指定公有头文件,如果没有写,那么所有 pod 中的头文件都默认公有,可以被 import。如果指定了某些头文件,那么只有这些被指定的头文件才可以被 import。
      s.public_header_files = 'Classes/Public/*.h'
    
      #这个 pods 还依赖于其他哪些 pods
      s.dependency "B_Category"
      s.dependency "HandyFrame"
    

    4. cd Example/

    更新组件内容

    pod update --no-repo-update
    

    5. cd demo/CustomUIKit/

    pod lib lint
    

    可能会出现验证失败的情况, 就根据提示解决就好

    [!] CustomUIKit did not pass validation, due to 2 warnings (but you can use --allow-warnings to ignore them).
    You can use the --no-clean option to inspect any issue.

    6. 关联远程地址

    git remote add origin git@github.com:LiHe0308/CustomUIKit.git
    
    git add .
    
    git commit -a -m "创建项目"
    
    git push -u origin HEAD
    

    至此就将创建的私有库上传到GitHub上了.

    7. 项目发布

    git tag 0.1.0
    
    git push origin 0.1.0
    

    要想被使用,还需向私有 CocoaPods 远程索引库提交 podspec 描述文件.

    8. 向私有 CocoaPods 远程索引库提交 podspec 描述文件

    远程索引仓库的创建

    pod repo push PrivateSpecs CustomUIKit.podspec --allow-warnings
    
    • PrivateSpecs 就是私有索引仓库的名称.
    • CustomUIKit.podspec 就是创建组件的文件夹下面的.podspec的全名(注意:xxx.podspec路径需注意,必须是.podspec的路径, 也就是说,当前操作要在demo下的CustomUIKit目录下进行).

    完成之后这个组件库就添加到我们的私有Spec Repo中了,可以进入到~./cocoapods/repos/xxx目录下查看

    .End

    相关文章

      网友评论

        本文标题:Pod 私有库创建(自定义的组件)

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