美文网首页
CocoaPods:为Swift创建私有Pods

CocoaPods:为Swift创建私有Pods

作者: Mob_Developer | 来源:发表于2018-05-16 16:59 被阅读0次

    之前使用OC时,鼓捣了一下CocoaPods的创建,翻译了一篇国外的文章,发布在了简书。但是一直没有把这个技术放在实际的开发中,也遗忘的差不多了。最近工作中强烈的感觉到模块化开发的重要性,所以打算把CocoaPods拾起来。之前翻译的文章中的方式跟现在已经大有不同。

    研究了两天,制作了公共Pods和私有Pods,都验证成功。去掉了多余的步骤,精简为以下几步,方便以后查阅。

    1. 在Git托管平台上(github、码云、gitlab……)创建一个仓库,我这里在码云创建了https://gitee.com/mob_developer/MDBase.git

    2. 执行pod repo add MDBase https://gitee.com/mob_developer/MDBase.git命令,将私有仓库添加到CocoaPods中。再执行cd ~/.cocoapods/repos命令,就能在cocoapods的repos中看到MDBase了;

    3. 执行cd ~/.cocoapods/repos/MDBase命令到MDBase文件夹,执行pod spec create MDBase创建MDBase.podspec文件,这个文件是我们的私有库的配置文件

    4. 在MDBase中创建Pod文件夹,在Pod文件夹下分别创建Classes、 Assets文件夹。 Classes用来放私有Pod源码。Assets文件夹下放png资源文件

    5. 执行open MDBase.podspec -a Xcode命令,使用Xcode打开podspec文件。之后我们在podspec文件中根据需求编辑。以下为模板

      #
      # Be sure to run `pod lib lint ${POD_NAME}.podspec' to ensure this is a
      # valid spec before submitting.
      # 在提交之前执行`pod lib lint MDBase.podspec`以确保spec是有效的。
      #
      # 以#开头的都是可选的,但是推荐使用。
      # 了解更多Podspec信息: https://guides.cocoapods.org/syntax/podspec.html
      #
      
      Pod::Spec.new do |s|
      s.name             = 'MDBase'
      s.version          = '0.1.0'
      s.summary          = '私有仓库概述'
      
      # 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
                          私有仓库详细描述
                             DESC
      
      s.homepage         = 'https://gitee.com/mob_developer/PublicPodTests'
      # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
      s.license          = { :type => 'MIT', :file => 'LICENSE' }
      s.author           = { '名字' => '邮箱' }
      s.source           = { :git => 'https://gitee.com/mob_developer/MDBase.git', :tag => s.version.to_s }
      # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
      
      s.ios.deployment_target = '8.0'
      
      s.source_files = 'Pod/Classes/**/*'
      s.swift_version = '4.1'
      
      # s.resource_bundles = {
      #   '${POD_NAME}' => ['${POD_NAME}/Assets/*.png']
      # }
      
      # s.public_header_files = 'Pod/Classes/**/*.h'
      # s.frameworks = 'UIKit', 'MapKit'
      # 依赖的第三方库
      s.dependency 'AFNetworking'
      end
      
      
    6. 将私有库的代码文件放在Classes文件夹中

    7. 将MDBase同步到它的仓库上

    8. 打上标签,标签要与podspec文件中的s.version的值一致

    9. 终端执行pod lib lint,以检查配置文件是否正确

      PublicPodTests (0.1.0)
      - ERROR | [iOS] file patterns: The source_files pattern did not match any file.

      遇到上面的问题是因为,在POD/Classes文件夹下没有任何文件。此时我们把我们的库文件放进去。再次执行'pod lib lint',知道没有错误,终端给出以下信息,表示成功

      PublicPodTests passed validation.

    10. 回到MDBase文件夹下,执行pod repo push MDBase MDBase.podspec,等待执行成功,一个私有Pod就创建成功了

    11. 在Podfile中使用私有库的方法

      platform :ios, '9.0'
      
      source 'https://gitee.com/mob_developer/MDBase.git'
      source 'https://github.com/CocoaPods/Specs.git'
      
      target 'SwiftNetworkingExample' do
          use_frameworks!
      
          pod 'MDBase', git:'https://gitee.com/mob_developer/MDBase.git'
      end
      
    12. 最后pod install,工程中导入MDBase库,大功告成!

    如果要创建公共Pods库,则在从10中要执行:
    pod trunk register 邮箱 '名字' --description='描述',以注册仓库。之后所填的邮箱会受到一封验证邮件,点击链接,验证成功。之后执行pod trunk push MDBase.podspec命令,一个公共Pods就创建成功了。使用的方式就跟使用其他公共仓库的方式一样。

    相关文章

      网友评论

          本文标题:CocoaPods:为Swift创建私有Pods

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