美文网首页
cocoapods公共库制作笔记整理

cocoapods公共库制作笔记整理

作者: EvenCode | 来源:发表于2020-04-30 16:41 被阅读0次

    第一步:新建远程仓库

    • 去代码托管平台新建仓库:个人推荐码云gitee,毕竟是咱中国人自己的;
    • 具体步骤看下面截图,应该比较详细了。


      gitee.png

    第二步:创建项目

    1. 执行的相关命令如下
        & cd /Users/iPackage/Desktop  ///进入指定目录 
        & pod lib create  TestDemo /// 创建项目
    

    接下来会让你回答一些列问题:

    1、What is your email? /// 填入自己的邮箱地址。
    2、What platform do you want to use?? [ iOS / macOS ] /// 根据自己的需要选择, 此处选择iOS。
    3、What language do you want to use?? [ Swift / ObjC ] /// 根据自己的需要选择, 此处选择ObjC。
    4、Would you like to include a demo application with your library? [ Yes / No ] /// 是否创建一个demo应用包含在工程里, 根据自己的需要选择,此处选择Yes。
    5、Which testing frameworks will you use? [ Specta / Kiwi / None ] /// 是否需要使用测试Framwork,选择None。
    6、Would you like to do view based testing? [ Yes / No ] /// 否需要做接界面调试test,此处选择No。
    7、What is your class prefix? /// 设置工程文件的前缀,这个根据自己的代码规范填写。
    

    至此我们就创建了一个空的比较合格的工程,接下来我们就需要将我们的功能代码注入该工程,具体步骤如下:

    1、功能代码注入

    进入如下图所示文件路径,将我们的功能代码注入Classes文件类,并删除Replaceme.m文件


    TestDemo
    功能代码注入

    第三步:将代码推送至远程仓库(第一步创建的)

    进入我们刚创建的远程仓库


    image.png
    1. 修改配置文件


      修改配置文件
    Pod::Spec.new do |s|
      s.name             = 'TestDemo'
      s.version          = '0.0.1'
      s.summary          = '我的测试Demo'
    
    # 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
    
      s.homepage         = 'https://gitee.com/wanly/TestDemo'
      # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
      s.license          = { :type => 'MIT', :file => 'LICENSE' }
      s.author           = { 'xxxxxxxx' => 'xxxxxxxx' }
      s.source           = { :git => 'https://gitee.com/wanly/TestDemo.git', :tag => s.version.to_s }
      # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
    
      s.ios.deployment_target = '9.0'
    
      s.source_files = 'TestDemo/Classes/**/*'
      
      # s.resource_bundles = {
      #   'TestDemo' => ['TestDemo/Assets/*.png']
      # }
    
      # s.public_header_files = 'Pod/Classes/**/*.h'
      # s.frameworks = 'UIKit', 'MapKit'
      # s.dependency 'AFNetworking', '~> 2.3'
    end
    
    1. 进入终端,进行提交
        & cd /Users/iPackage/Desktop/TestDemo /// 进入之前创建的项目目录
        & git add *
        & git commit -s -m"frist upload"
        & git remote add origin https://gitee.com/wanly/TestDemo.git ///(这个地址要换成你的远程仓库地址)
        & $ git push origin master ///添加版本号
            /// 若出现//fatal: refusing to merge unrelated histories这样的错误可执行下面的命令
            /// git pull origin master --allow-unrelated-histories
            //做完以上操作,可以再次push,
            ///添加版本号
        & git tag -m "first release" "0.1.0"
        & git push --tags
    
        /// 备注:删除tag方式    
        ///本地删除
        & git tag-d v0.0.1
        ///远端删除
        & git push origin :refs/tags/v0.0.1
    

    第四步:发布库,文件spec文件提交至cocoapod

    知识点插入:
    • 注册 pod trunk(这里需要保证gem源或者pod是最新版本,否则有可能会失败)
        & pod trunk register '邮箱''用户名'  
    

    接着你的邮箱会受到一条邮件通知,点击邮箱中的链接,即完成truck注册

    发布公开库

    知识点插入:
    • 这里需要注意你本机的网络DNS配置信息,最好先检查一下DNS服务器地址是否包含8.8.8.8(我之前在进行下面操作的时候,就是在这里被坑了好久)


      image.png

      1.OK 一切准备工作就绪,进入终端:

    pod lib lint  TestDemo.podspec --allow-warnings --use-libraries /// 本地检测代码仓库是否有问题
    pod spec lint  TestDemo.podspec --allow-warnings --use-libraries /// 远程检测代码仓库是否有问题
    pod trunk push  TestDemo.podspec --allow-warnings --use-libraries /// 使用pod trunk命令,把podspec文件推送到CocoaPod官方库
    

    --use-libraries 如果引用了静态库编译时需要静态库,
    --allow-warnings 忽略警告

    在验证和上传你的podspec文件到trunk之前,需要将你的源码push到Github上,tag一个版本号并发布一个release版本,这样podspec文件中的s.source的值才能是准确的

    至此一切顺利的话,应该就可以通过

    pod 'TestDemo' 
    

    方式直接在项目中进行引用了

    2.提交修改

    git add -A && git commit -m "Release 1.0.1"
    git push origin master
    git tag '1.0.1'
    git push --tags  ///将tag推送到远程仓库
    pod trunk push TestDemo.podspec  --allow-warnings /// 发布 忽略警告 --allow-warnings
    

    参考:
    https://www.jianshu.com/p/d2fe3bd1767d

    相关文章

      网友评论

          本文标题:cocoapods公共库制作笔记整理

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