CocoaPodsプライベートウェアハウスの作成チュートリアル

6242 ワード

CocoaPodsプライベートウェアハウスの作成チュートリアル
プライベートpodを作成するには、まずThe CocoaPods Master Repoのようなコンテナが必要です.sを使用することができます.
pod 'AFNetworking' 

私たちのプライベートライブラリを追加しました.
プライベートRepoの構築方法
まず、コマンドラインのpodにどのようなCOMMANDがあるかを見てみましょう.
Commands:
...
    + repo          Manage spec-repositories
...

repoに含まれるコマンドを見てみましょう
    + add       Add a spec repo
    + lint      Validates all specs in a repo
    > list      List repos
    + push      Push new specifications to a spec-repo
    + remove    Remove a spec repo
    + update    Update a spec repo

addの下にどのような方法が含まれているかを見続けます
   $ pod repo add NAME URL [BRANCH]

これにより,プライベートrepoを作成する方法(URLはgit上の倉庫であり,初期化完了)が得られた.
    pod repo add DDRepo https://github.com/dingdingtion/Specs

追加が完了したらrepoのリストを見ることができます
 pod repo list
DDRepo
- Type: git (master)
- URL:  https://github.com/dingdingtion/Specs.git
- Path: /Users/dingding/.cocoapods/repos/DDRepo

これで私たちはもう自分の容器を持っています.
podプライベートライブラリの作成
pod関連コマンドの表示
 + lib Develop pods

libのコマンドの表示
 + create    Creates a new Pod
 + lint      Validates a Pod

createのコマンドの表示
 $ pod lib create NAME

createを使用して独自のライブラリを構築します
コマンドの実行
pod lib create DDTest

次のいくつかの問題が発生します(関連する問題がなければpodをアップグレードして解決することも考えられます).
  • What language do you want to use?? [ Swift/ObjC ]
  • Would you like to include a demo application with your library? [ Yes/No ]
  • Which testing frameworks will you use? [ Specta/Kiwi/None ]
  • Possible answers are [ Specta/Kiwi/None ]
  • Would you like to do view based testing? [ Yes/No ]
  • What is your class prefix?

  • 現在のディレクトリに生成されたフォルダDDTestは主にDDTestを見る.podspecファイル
    1 #
      2 # Be sure to run `pod lib lint DDTest.podspec' to ensure this is a
      3 # valid spec before submitting.
      4 #
      5 # Any lines starting with a # are optional, but their use is encouraged
      6 # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podsp    ec.html
      7 #
      8
      9 Pod::Spec.new do |s|
     10   s.name             = 'DDTest'
     11   s.version          = '0.0.1'    ///          ,       
     12   s.summary          = 'A short description of DDTest.'
     13
     14 # This description is used to generate tags and improve search results.
     15 #   * Think: What does it do? Why did you write it? What is the focus?
     16 #   * Try to keep it short, snappy and to the point.
     17 #   * Write the description between the DESC delimiters below.
     18 #   * Finally, don't worry about the indent, CocoaPods strips it!
     19
     20   s.description      = < 'MIT', :file => 'LICENSE' }
     27   s.author           = { '******@qq.com' => '132******@wo.com.cn' }
     28   s.source           = { :git => 'https://github.com/******@qq.com/DDTest    .git', :tag => s.version.to_s }
     29   # s.social_media_url = 'https://twitter.com/'
     30
     31   s.ios.deployment_target = '8.0'
     32
     33   s.source_files = 'DDTest/Classes/**/*'
     34
     35   # s.resource_bundles = {
     36   #   'DDTest' => ['DDTest/Assets/*.png']
     37   # }
     38
     39   # s.public_header_files = 'Pod/Classes/**/*.h'
     40   # s.frameworks = 'UIKit', 'MapKit'    ///      
     41   # s.dependency 'AFNetworking', '~> 2.3' ///      
     42 end
    

    ここで注意しなければならないのは、私たちのすべてのファイルが保存されている場所です.
     33   s.source_files = 'DDTest/Classes/**/*'
    

    ソースアドレスは現在のgitのアドレスでなければなりません
     28   s.source           = { :git => 'https://github.com/******@qq.com/DDTest    .git', :tag => s.version.to_s }
    

    プライベートライブラリをパブリッシュする前にlibの正当性を検証する必要があります
    pod lib lint
        --silent    Show nothing
        --verbose   Show more debugging information
        --no-ansi   Show output without ANSI codes
        --help      Show help banner of specified command
    

    検査結果を見て、警告はしばらく無視します.
    ➜  DDTest git:(master) pod lib lint
    
     -> DDTest
     -> DDTest (0.1.0)
        - WARN  | summary: The summary is not meaningful.
        - WARN  | url: The URL (https://github.com/***@qq.com/DDTest) is not reachable.
    

    検証が完了すると、プライベートpodライブラリをgitにアップロードし、タグを追加します.git', :tag => s.version.to_sはgitが対応するバージョンを見つけることができるようにします(注:すべてコミットしてからパブリッシュする必要があります)
    git tag '0.0.1'  /// s.version      
    git push --tags
    

    repoにプライベートライブラリを追加
    repoに関するコマンドを見てください
    pod repo --help
    
    Usage:
    
        $ pod repo [COMMAND]
    
          Manage spec-repositories
    
    Commands:
    
        + add       Add a spec repo
        + lint      Validates all specs in a repo
        > list      List repos
        + push      Push new specifications to a spec-repo
        + remove    Remove a spec repo
        + update    Update a spec repo
    

    pushを使用してパブリッシュされていることがわかります
    $ pod repo push REPO [NAME.podspec]
    
    pod repo push DDRepo DDTest.podspec  --allow-warnings
    
    --allow-warnings     Allows pushing even if there are warnings
    --verbose       Show more debugging information
    

    発生する可能性のある問題:
  • s.versionとgit tagの一致
  • s.sourceアドレスが一致しない
  • エラーメッセージなしコマンドラインを追加--verbose
  • コマンドラインの後に追加できない警告があります--allow-warnings
  • パブリケーションが成功したら、検証します.
     pod search 'DDTest'
    
    -> DDTest (0.0.1)
       A short description of DDTest.
       pod 'DDTest', '~> 0.0.1'
       - Homepage: https://github.com/***@qq.com/DDTest
       - Source:   https://github.com/dingdingtion/DDTest.git
       - Versions: 0.0.1 [DDRepo repo]
    

    プロジェクトでのプライベートライブラリの使用
    プロジェクトでsourceを追加してインデックスの場所を指定する必要があります
    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://github.com/dingdingtion/Specs.git'
    
    pod 'DDTest', '~> 0.0.1'
    

    よし、意外にも使えた~