Podプライベートウェアハウス構築

8078 ワード

Podプライベートウェアハウス構築

  • プライベートウェアハウスインデックスライブラリを作成する(iOS)
  • プライベートウェアハウスインデックスライブラリをローカルrepo管理
  • に追加
  • 独自の構築ライブラリエンジニアリング
  • を作成
  • アップロード`ライブラリエンジニアリング`プライベート倉庫インデックスライブラリ`
  • Appエンジニアリング呼び出しライブラリエンジニアリング
  •  

    目的


    私有ライブラリ管理は、コードエンジニアリング構造を簡素化し、コード多重化とエンジニアリング管理を実現するための方案であり、ほとんどの会社が独自の私有倉庫を持ってコンポーネント化管理エンジニアリングを行っている.

    1.私有倉庫インデックスライブラリの作成


    説明

  • プライベートウェアハウスインデックスライブラリ`は、各コンポーネントライブラリのバージョンを管理するために使用されます.ここでは空のgit倉庫と理解できます.以下は名前を区別して
  • と理解できます.
  • プライベートライブラリ:コンポーネントコードを本当に配置する場所を指します.
  • インデックスライブラリ:specファイルを格納する場所で、コードの場所にインデックスします.

  •  
    例えば、インデックスライブラリはポインタのようなもので、プライベートライブラリはオブジェクトのようなもので、ポインタにはオブジェクトのアドレスが格納されており、アドレスを通じてオブジェクトを見つけることができます.(任意のコンポーネントウェアハウスを管理可能)

    作成


    自分のgitlabまたはgithubに空の倉庫を勝手に作成すれば、自分のケースで倉庫の住所が次のようになります.
     
    https://gitlab.rokid-inc.com/kingbo/iOS.git

    2.プライベートウェアハウスインデックスライブラリをローカルrepo管理に追加


    1.coapodsローカルウェアハウスパス

    ~/.cocoapods/repos

    2.ローカルに独自のリモートインデックスライブラリを追加

    // git ( , :iOS  )
     pod repo add iOS https://gitlab.rokid-inc.com/kingbo/iOS.git

    ディレクトリ構造は次のとおりです.
    .
    └── repos
        ├── master
        └── iOS //  

    実はここの私有倉庫はすでに私たちのgitlabと関係を確立して、後でコンポーネントを追加する時、直接私たちのgit倉庫にpushします
     

    3.独自の`ライブラリエンジニアリングを作成する`


    ここの設立は任意のライブラリで、以下はテストの準備なので、私は`RokidToolsKitTest`という名前を用意します.

    3.1 gitlab倉庫名構築


     
    gitlabの上に`RokidToolsKitTest`倉庫を作成します.私の住所は以下の通りです.
    https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git

    リモートコードcloneはローカルはもちろん

    3.2 gitignoreファイル作成


    また、コンポーネントエンジニアリングではpodファイルの中のものを管理する必要がないため、`.gitignore`の隠しファイルは、この倉庫のディレクトリの下(隠しファイル)にあります.

    3.3 CHANGELOG.mdファイル作成(無視可能)


    コンポーネントエンジニアリングではバージョン管理も含まれているため、このファイルは各コンポーネントを反復的に変更する機能レコードです.

    3.4 podコマンドpodエンジニアリングのローカル作成

     pod lib create  RokidToolsKitTest

    上のコマンドラインを実行し、状況に応じてダイアログボックスを選択すると、最後にコンポーネントエンジニアリングが作成されます(`podspec`ファイルには多くの構成がありますが、ここでは一つ一つ書かないでください)

    3.5ローカル・ウェアハウスとリモート・ウェアハウスを関連付けるリンク

    git remote add origin  https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git

     
    (自分のコードを書き終えてgitlab倉庫に直接提出したら、ビジネスロジックは一つ一つ書かない)
     

    3.6 podspecファイル情報の変更


    開発が完了したらpodspecファイルを作成する必要があります.フォーマットは以下の通りです.
    Pod::Spec.new do |s|
    
      s.name             = 'RokidToolsKitTest'
    
      s.version          = '0.1.0'
    
      s.summary          = 'RokidToolsKitTest'
    
      s.swift_version    = '4.0' #  swift  
    
      s.description      = <DESC
    
        , 
    
                           DESC
    
      s.homepage         = 'https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest'
    
      s.license          = { :type => 'MIT', :file => 'LICENSE' }
    
      s.author           = { 'jinlingbo' => '[email protected]' }
    
      s.source           = { :git => 'https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git', :tag => s.version.to_s }
    
      s.ios.deployment_target = '8.0'
    
      s.source_files = 'RokidToolsKitTest/Classes/**/*'
    
    end

     

    4.ライブラリ構築プロジェクトを私有倉庫インデックスライブラリにアップロードする


    開発が完了したら、独自のlib倉庫を公開する必要があります.具体的には、以下のプロセスがあります.

    4.1 specファイルの検証


    実は私たちが自分のライブラリを作成した後、自分のライブラリがコンパイルされたかどうかを検証する必要があります.そのため、提出する前に検証する必要があります.
      # cd    podspec  
    
     pod lib lint --private 
    
     // , ,  --source , 
    
     pod lib lint --private --sources=https://github.com/CocoaPods/Specs.git,https://gitlab.rokid-inc.com/kingbo/iOS.git

    4.2バージョンにブランチを付ける


    検証に合格したら、tagにバージョンを打つ必要があります.
     0.1.0 spec 
    
    $ git tag 0.1.0
    
    $ git push  --tags

    ###4.3現在のリリース

    // , 2 ,  `iOS`  , push push git 
    
    pod repo push iOS RokidToolsKitTest.podspec

     

    5、App工事呼び出し`ライブラリ工事の構築`


    すべてがうまくいけば、構築を直接呼び出すことができます.使用方法は他のライブラリと同じです.
     
    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://gitlab.rokid-inc.com/kingbo/iOS.git' #   
    
    target 'RokidToolsKitTest_Example' do
        pod 'RokidToolsKitTest','0.1.0'
        pod 'SVProgressHUD', '~> 2.2.5'
       target 'RokidToolsKitTest_Tests' do
        inherit! :search_paths
      end
    
    end

     

    まとめ


    ここまで、大体の私有倉庫の流れはすでに完成して、次に私たちはどのように解決するかを考えて、私有倉庫をframeworkにパッケージしてそれから対外開放の問題...この話題は続きます.

    [参考資料]


    http://www.cocoachina.com/ios/20180511/23359.html
     
    転載先:https://www.cnblogs.com/kingbo/p/11455043.html