English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
他人のPods依存ライブラリを使用する方法を学んだ後、自分自身の依存ライブラリを作成する興味を持つことでしょう。本日は、Pods依存ライブラリの作成プロセスの秘密を明かします。このプロセスは、私が実現したWZMarqueeViewという名前のランドマーク効果のビューを例にして、以下の手順で進められます:
一、自分自身のgithubリポジトリを作成する
CocoaPodsはgithub上に統合されています(公式リンクは以下の通りです:https://github.com/CocoaPods)、すべてのPods依存ライブラリもまたgithubに依存しているため、最初のステップとして自分自身のgithubリポジトリを作成する必要があります。リポジトリの作成画面は以下の通りです:
上図に番号がつけられたのは、合計6場所、対応する説明は以下の通りです:
1、リポジトリ名
リポジトリの名前、ここではWZMarqueeViewと記入する、必須項目;
2、説明
リポジトリの説明情報、オプション;
3、リポジトリの公開性
ここではPublicを選択する理由は、一つにはPrivateはお金が必要で、もう一つにはPrivateは他人には見えずに共有する意味がないからです;
4、デフォルトのREADMEファイルを作成するかどうか
完全なリポジトリはREADMEの説明文書が必要です。オプションとしてチェックを入れることを推奨します。もちろん、面倒くさがらずに後で手動で作成することもできます;
5、.gitignoreファイルを追加するかどうか
.gitignoreファイルにはいくつかのファイルタイプが記録されています。このファイルに含まれるファイルタイプは、gitがバージョン管理に含めません。選択は個人の必要に応じて;
6、ライセンスタイプ
正式なリポジトリはライセンスファイルを持っていますが、Pods依存ライブラリはこのファイルに対して厳しい要求をしています。必ず持っている必要がありますので、ここでgithubが自動的に作成するか、後で自分で作成することをお勧めします。私はMITライセンスを使用しています。
上記のすべての項目が入力された後、Create repositoryボタンをクリックすると、成功した画面が以下の通りです:
ここで、リポジトリの作成プロセスは終了です。
二、ローカルにリポジトリをクローンする
リポジトリに内容を削除するために便利になるように、まずはローカルにリポジトリをクローンする必要があります。操作方法はいくつかありますが、コマンドラインの使用を推奨します:
$ git clone https://github.com/wangzz/WZMarqueeView.git
操作が完了すると、github上の対応するファイルがローカルにコピーされます。ディレクトリ構造は以下の通りです:
github上のリポジトリ内の.gitignoreファイルは.で始まる隠しファイルであり、そのためここでは2つしか見えません。
以降のすべてのファイルの追加、削除、変更はこのディレクトリ下で行います。
ステップ3、ローカルgitリポジトリにPods依存ライブラリ作成に必要なファイルを追加する
注意:以下の記述ファイルは、ステップ2でローカルgitリポジトリにクローンしたディレクトリのルートに配置する必要があります。
1、拡張子が.podspecのファイル
このファイルはPods依存ライブラリの記述ファイルであり、各Pods依存ライブラリには必ず1つの記述ファイルが必要です。ファイル名は作成したい依存ライブラリの名前と一致する必要があります。私のWZMarqueeView依存ライブラリの対応するファイル名はWZMarqueeView.podspecです。
1.1 podspecファイル内容
WZMarqueeView.podspecの保存内容为:
Pod::Spec.new do |s| s.name = "WZMarqueeView" s.version = "1.0.0" s.summary = "A marquee view used on iOS." s.description = <<-DESC It is a marquee view used on iOS, which implement by Objective-C. DESC s.homepage = "https:"//github.com/wangzz/WZMarqueeView" # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" s.license = 'MIT' s.author = { "王中周" => "wzzvictory_tjsd@"163.com" } s.source = { :git => "https:"//github.com/wangzz/WZMarqueeView.git", :tag => s.version.to_s } # s.social_media_url = 'https:'//twitter.com/NAME'' s.platform = :ios, ''4.3' # s.ios.deployment_target = ''5.0'' # s.osx.deployment_target = ''10.7' s.requires_arc = true s.source_files = 'WZMarqueeView'/*' # s.resources = 'Assets' # s.ios.exclude_files = 'Classes'/osx' # s.osx.exclude_files = 'Classes'/ios' # s.public_header_files = 'Classes'/**/*.h' s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit' end
これはrubyファイルであり、中の項目はほとんどが意味がわかります。
説明が必要ないくつかのパラメータがあります:
①s.license
Pods依存ライブラリが使用するlicenseの種類です。皆さんが選択する自分の選択を入力してください。
②s.source_files
ソースファイルのパスを示します。このパスはpodspecファイルに対して相対的なものです。
③s.frameworks
使用するフレームワークは、.frameworks接尾辞を付けない必要があります。
1.2 podspecファイルの作成方法
皆さんがpodspecファイルを作成する方法は2つあります:
①私のpodspecファイルをコピーして、対応するパラメータを変更します。この方法をお勧めします。
②以下の作成コマンドを実行します:
$ pod spec create WZMarqueeView
また「WZMarqueeView.podspec」というファイルも作成されますが、作成したファイルを開くと、中には私たちが必要としない多くのものが含まれていることがわかります。
2、LICENSEファイル
CocoaPodsはすべてのPods依存ライブラリにlicenseファイルを持つことを強制しており、それがなければ検証は通過しません。licenseの種類はたくさんありますが、詳細はtl;dr Legalウェブサイトを参照してください。githubリポジトリを作成する際には、MITタイプのlicenseを選択しました。
3、メインクラスファイル
Pods依存ライブラリを作成するのは、他の人が私たちの成果を使用しやすくするためです。例えば、私は皆さんに共有したいWZMarqueeViewクラスは、多くのユーザーに提供したいという考えから、このクラスは必須です。このクラスを含む2つのファイルを「WZMarqueeView」というフォルダーに保存し、対応するディレクトリ構造は以下の図のようです:
中にはWZMarqueeView.hとWZMarqueeView.mという2つのファイルが含まれています
4、デモエンジン
他の人が私たちのPods依存ライブラリを使用するために迅速に教えるために、通常デモエンジンを提供する必要があります。私が作成したデモエンジンは「WZMarqueeViewDemo」というフォルダーに保存されており、このフォルダーには以下の図に示されるファイルが含まれています:
5、README.md
githubを使用する人はこのファイルに馴染みがあるでしょう。これは成功したgithubリポジトリの不可欠な一部であり、markdown記法を使用してリポジトリの詳細な説明を行います。
以上に述べた5はPod依存ライブラリを作成するために必要な最も基本的なファイルであり、その中には1、2、3は必須です。4、5はオプションですが、強く推奨されるものです。
これらのファイルを追加した後、私のgithubローカルリポジトリのディレクトリ構造は以下のようになります:
4、変更したファイルをgithubにコミット
ステップ3で、ローカルgitリポジトリに多くのファイルが追加されました。これらのファイルをgithubリポジトリにコミットする必要があります。コミットプロセスは以下のステップで構成されています:
1、pod検証
以下のコマンドを実行します:
$ 新しいバージョンを設定する 1.0.0 $ 新しいtagを設定する 1.0.0
これら2つのコマンドは、podにバージョン番号を追加し、tagを打つために使用され、pod検証コマンドを実行します:
$ pod lib lint
すべてが正常に進めば、このコマンドを実行した後、以下の出力が表示されます:
-> WZMarqueeView (1.0.0) WZMarqueeViewが検証を通過しました。
これで、pod検証は終了です。
説明すべきことは、pod検証コマンドを実行するときに何かwarningやerror情報が表示されると、検証は失敗します!検証に異常が発生した場合、表示される情報は詳細であり、ユーザーは対応する指示に従って修正を行うことができます。
2、ローカルgitリポジトリの変更内容をgithubリポジトリにアップロード
以下のコマンドを順次実行します:
$ git add -A && git commit -m "Release 1.0.0." $ git tag '1.0.0' $ git push --tags $ git push origin master
上記のコマンドはgitの範囲内に属していますが、ここでは詳述しません。正常に進めば、github上に自分が追加した内容が見られます。以下の図を参照してください:
5、podspecファイルをCocoaPods公式リポジトリにアップロード
前の4つの操作を完了すると、終わりだと思われるかもしれませんが、まだ早いです。
Pods依存ライブラリが本当に使用可能になるためには、最後のステップとして、私たちが先ほど生成したpodspecファイルをCocoaPods公式のSpecsリポジトリにアップロードする必要があります。リンクはこちら:https://github.com/CocoaPods/Specs
このリンクを開くと、私たちが使用できるもの、pod searchコマンドで検索できるすべてのPods依存ライブラリがそのpodspecファイルをこのリポジトリにアップロードしていることがわかります。つまり、私たちのpodspecファイルをこのリポジトリにアップロードするまで、本当にPods依存ライブラリとして認められず、他の人が正常に使用することはできません。
gitのルールに従って、他人のリポジトリにファイルを追加するには、まず他人のリポジトリをforkし、必要な修正を行った後、それを元のリポジトリの原作者にpushし、原作者が承認すると、元のリポジトリにマージします。
流れがわかると、自然とどう進めるべきかが分かります:
1CocoaPods公式のSpecsリポジトリをforkします
先ほどの公式リポジトリのリンクに移動し、画面右上隅のforkボタンをクリックします。以下のようになります:
すると、自分の名前の下に新しいリポジトリのブランチが追加されます。例えば、私のブランチは:
2forkしたリポジトリをローカルにクローンします
以下のコマンドを実行します:
$ git clone https://github.com/wangzz/Specs.git
注意していただきたいのは、各人に対応するリポジトリのURLを自分のものに変更する必要があります。
このリポジトリは少し大きいですので、根気強くください。
3自分のpodspecファイルをローカルSpecsリポジトリに追加します
Specsリポジトリをローカルにクローンした後、Specsという名前のフォルダに置かれます。podspecファイルの保存原則は:
Pods依存ライブラリと同名のフォルダ--->バージョン番号と同名のフォルダ--->podspecファイル
この原則に従って、Specsフォルダの下にWZMarqueeViewという名前のフォルダを作成し、WZMarqueeViewフォルダの下に、1.0.0のフォルダに、最後に1.0.0のフォルダに、前に作成したWZMarqueeView.podspecファイルをコピーします。
理解しやすいですが、将来的にWZMarqueeViewクラスのアップグレードがある場合、WZMarqueeViewフォルダの下に対応するバージョン名のフォルダを作成し、対応するバージョンのpodspecファイルを保存します。
これらの操作が完了すると、以下のようになるディレクトリ構造が示されます:
4自分のローカルSpecsリポジトリの修正をgithubリポジトリにアップロードします
以下のコマンドを実行します:
$ git add -A && git commit -m "WZMarqueeView podspecファイルを追加" $ git push origin master
成功すると、github上の自分のforkしたSpecsリポジトリでアップロードしたファイルが見られます。
5自分のforkしたSpecsに加えた修正をCocoaPods公式のSpecsリポジトリにpullします
自分のforkしたSpecsリポジトリに入ると、画面の左上隅に緑色のボタンがあります:
このボタンをクリックすると、以下の図に示される画面が表示されます:
図に示された緑色のCreate Pull Requestボタンをクリックすると、forkしたSpecsに加えた修正をCocoaPods公式のSpecsリポジトリにpullすることができます。
このステップに達すると、残りの作業は待つことだけです。CocoaPodsのメンテナンススタッフが承認を行い、pullした修正を公式のSpecsリポジトリにマージするまでを待ちます。このプロセスは通常、1日程度の待ち時間が必要です。何かのメッセージがあれば、承認が拒否された場合や承認が通った場合、CocoaPods公式からメールが届きます。
承認が通ったとき、公式のSpecsリポジトリに自分がアップロードしたフォルダが見られます。
6、承認進捗を確認する
もちろん、承認進捗を確認することもできます。このリンクを開いてください:https://github.com/CocoaPods/Specs/pullsここに、すべてのSpecsリポジトリのpullリクエストが見られます。以下の図を参照してください:
赤い円で示されたのが、先ほどpullしたリクエストです。それをクリックすると、対応する承認進捗が見られます。
第6章 自分で作成したPods依存ライブラリを確認する
CocoaPods公式から承認済みのメールを受け取った後、自分のコンピュータでpod searchコマンドを実行して、自分が作成したPods依存ライブラリが検索できるかを確認したくなるかもしれません。しかし、失望するでしょう。なぜなら、ローカルのコンピュータでsearchコマンドを使用して依存ライブラリを検索するには、さらに一つのコマンドを実行する必要があるからです:
$ pod setup
私のCocoaPodsシリーズガイドの最初の記事:CocoaPods詳細解説の----進歩編の最後の部分でこのコマンドについて紹介しました。これは、すべてのPods依存ライブラリのtreeをローカルに更新します。このコマンドを実行した後、次のコマンドを実行します:
$ pod search WZMarqueeView
すると、対応する紹介情報が表示されます!
それだけ言ったところで、ここでPods依存ライブラリの作成プロセスが本当に終わりました!皆さん、成功しましたか???何か問題があれば、コメントを残してください。
第7章 参考文書