iOS用のコンポーネントライブラリを作成する

インデックスライブラリリポジトリ

インデックスファイル (.podspec ファイル)

1. プライベート ライブラリを構築する前に、まずインデックス ライブラリを作成する必要があります

1) まず、現在のコンピュータのインデックス ライブラリを確認します。

リポジトリの下に

2) gitlab 上で新しいライブラリを作成します このライブラリはプライベート ライブラリの podspec ファイルを保存するために使用されるため、通常はこのライブラリの役割を区別するために xxxSpec という名前を付けます。

3) ローカル インデックス ライブラリを作成し、それを作成したばかりのリモート インデックス ライブラリに関連付けます現時点ではリモート インデックス ライブラリは空です。空の!空の!ただし、readme ファイルを追加できるように、master ブランチが必要です。

2つの方式: 01-https方式、02-ssh方式(ssh方式は事前にSSHの設定が必要です)

ポッド リポジトリ ローカル インデックス ライブラリ名を追加 リモート インデックス ライブラリの git アドレス

例:ポッド リポジトリに Pinnet Specを追加 http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git

4) インストールが成功したかどうかを確認します

新しいインデックス ライブラリに cd します。

cd ~/.cocoapods/repos/ピンネット仕様 

インデックス ファイル リポジトリを確認する

ポッド リポリント 。

ローカルリポジトリを削除する

ポッド リポジトリの削除 [インデックス ライブラリ名]

ローカルPodインデックスライブラリのキャッシュ情報を更新する

ポッド リポジトリの更新 --verbose

2. ローカルプライベートライブラリ(コンポーネントライブラリ)を作成する

1) ローカルのプライベートライブラリを作成する

作成するローカルのプライベート ライブラリ フォルダーにcd して実行します。

pod lib create [コンポーネント ライブラリ名] 

ここでのコンポーネントライブラリの名前は、リモート ウェアハウスで作成された名前と一致している必要があります。

例: pod lib create PinnetHeaderSegment

エラー[!] /usr/bin/git クローン https://github.com/CocoaPods/pod-template.git  xxx

xxx 」にクローンを作成しています...

致命的: 'https://github.com/CocoaPods/pod-template.git/' にアクセスできません: エラー:02FFF036:システム ライブラリ:func(4095):ピアによって接続がリセットされました

または

致命的: 'https://github.com/CocoaPods/pod-template.git/' にアクセスできません: SSL 証明書の問題: ローカル発行者の証明書を取得できません

プロキシの削除

git config --global http.proxy

git config --global --unset http.proxy

2)パラメータ設定は下図を参照してください。

​​​​​​​

3)設定が完了すると、以下のような階層構造の HeaderSegmentView-Example プロジェクトが自動的に開きます。

4) Classes フォルダー内の ReplaceMe.m ファイルを削除し、コンポーネント ライブラリのコードに置き換えます。

5)ポッドライブラリをインストールする

cd で Example フォルダーに移動し、実行します。

ポッドのインストール

しばらく待ってください

6) xxx.podspec 構成ファイルを変更します。

追伸

(A) s.homepage は、プライベート インデックス ライブラリのアドレスではなく、リモート プライベート ライブラリのホームページ アドレスに変更する必要があります。

(B) s.source は、リモート プライベート ライブラリの git アドレスに変更する必要があります (HTTPS アドレスの使用を選択します)。

(C) s.version プライベートライブラリのバージョン番号は通常1.0.0に変更されます。

3. ローカルのプライベートライブラリをアップロードする

1) gitlab 上にリモートプライベートライブラリを作成します。知らせ!このライブラリにはリモート プライベート ライブラリ コードが保存されます。リモート インデックス ライブラリと混同しないでください。

git Remote add オリジン リモート ウェアハウス アドレス ##アドレスが関連付けられていない場合は、関連付けられたリモート ウェアハウス アドレスを追加する必要があります

2) ローカルのプライベート ライブラリをリモートのプライベート ライブラリにプッシュします。

cd でローカルのプライベート ライブラリ フォルダーPinnetHeaderSegmentに移動し、実行します。

①ローカルのgitコードベースを構築する

gitの初期化

git status  ##最後の送信以降にファイルが変更されているかどうかを確認します(赤いファイルはキャッシュ内で更新されていないことを示します)

②赤いファイルをキャッシュに更新します

git add file name##単一ファイルをアップロードする 

git add .   ##すべてのファイルをアップロードする

git status  ##正常に更新されたファイルは緑色に変わります

書類提出

git commit -m 'コミット情報' 

④まずリモコンコードを引きます

git pull オリジンマスター 

またはgit Branch --set-upstream-to=origin/master master

エラー「致命的: 無関係な履歴のマージを拒否しています」(つまり、互いの存在を知らず、履歴が一致しないプロジェクト送信履歴) は、git pullorigin master --allow-unpopular-histories によって実行できます。

その後、上記のコマンドは vi モードに入ります。プロンプトに従って更新情報を入力した後、[ESC] キーを押してコマンド モードにジャンプし、コロン キーを押してから、[wq] を押して保存して vi 編集を終了します。州。

致命的: リモート参照マスターが見つかりませんでした

このウェアハウスにはまだファイルがありません。空です。ローカルの変更を直接プッシュするだけです。プルは必要ありません。

致命 的: 「origin」は git リポジトリではないようです

致命的: リモート リポジトリから読み取ることができませんでした。

再CDフォルダーの場所

git Remote add オリジン リモート ウェアハウス アドレス#Associate リモート ウェアハウスアドレス

ローカルキャッシュをリモートコードベースに送信する

変更を送信する前に、変更が行われないことを再度確認し、仕様ファイルのタグ値を変更してからプッシュしてください。

git Push -u オリジンマスター 

バージョンを master ブランチにプッシュします (-f は強制的にプッシュし、以前のすべてのファイルを上書きします)

git プッシュ オリジン マスター -f

4. ローカル検証を実行する

初期コマンド

ポッド lib lint --verbose  --allow-warnings

他のサードパーティライブラリに依存している場合

pod lib lint  --verbose  --allow-warnings --sources="cocoapods ライブラリ アドレス、プライベート ライブラリ リモート アドレス"

他のサードパーティのプライベート ライブラリが他のライブラリに依存している場合は、--use-librariesを追加する必要があります

pod lib lint  --verbose  --use-libraries --allow-warnings --sources="cocoapods ライブラリ アドレス、プライベート ライブラリ リモート アドレス"

Display xxx  pass validation.検証に合格したことを示します

追伸:

--verbose : 一部の非文法的エラーでは、エラーの理由が示されません。現時点では、これを使用して詳細な検証プロセスを表示し、エラーを特定するのに役立ちます。
--allow-warnings : 警告が許可されることを示します。
--use-libraries : 静的ライブラリまたはフレームワークの使用を示します。これは主に、一部のフレームワーク ライブラリに依存していて、検証プロンプトでライブラリが見つからない場合に問題を解決するために使用されます。

--sources='master,privateSpecs' : ソースを指定します。たとえば、プライベート ポッドがパブリック ライブラリとプライベート ライブラリの両方に依存している場合、デフォルトではパブリック ソース内の対応する依存関係のみを検索するため、ソースを指定する必要があります。 。

报错[!]  xxx は 1 つのエラーのため検証に合格しませんでした。

サンプル プロジェクト内のすべてのエラーを解決し、再送信する必要があります。

エラー | [iOS] 不明: 検証中に不明なエラーが発生しました (CDN: トランク URL をダウンロードできませんでした: https://cdn.cocoapods.org/all_pods_versions_a_1_5.txt 応答: SSL ピア証明書または SSH リモート キーが OK ではありませんでした)。

ポッド リポジトリの削除トランクを実行して 、次のリポジトリ ソースを削除します。

トランク

- タイプ: CDN

- URL:https://cdn.cocoapods.org/

- パス: /Users/ xxx /.cocoapods/repos/trunk

エラー| [iOS] 不明: 不明なエラーが発生しました (`PinnetHeaderSegment` が依存する `PinnetBase` の仕様が見つかりません)

またはエラーを報告してください

[!] URL のリポジトリ タイプを決定できませんでした: `https:// xxx /`: SSL_connect returns=1 errno=0 state=SSLv3 サーバー証明書の読み取り B: 証明書の検証に失敗しました (ローカル発行者の証明書を取得できません)

または、エラーを報告してください[!]「xxx」の複数の仕様が見つかりました

Github サードパーティ ライブラリの実行は参照されません

pod  lib  lint --verbose --use-libraries --allow-warnings --sources='http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git'

実行用の github サードパーティ ライブラリへの参照があります

pod  lib  lint --verbose --use-libraries --allow-warnings --sources=' https://github.com/CocoaPods/Specs.git http://code.pinnettech.cn/pinnet/IESP880/IOS /PinnetSpec.git'

5.タグ付け

タグは仕様ファイルに書かれているバージョン番号と一致している必要があります、一貫しています、一貫しています! 以降のバージョンで変更されたものはすべて、再タグ付けする必要があります。

git タグのバージョン番号(仕様ファイルに書き込まれたバージョン番号と一致している必要があります)

git Push Origin --tags

6.リモート認証

1) タグを追加した後、リモート検証を実行します。実際、それはローカル検証と同じです。ローカル検証はどのようにパスしますか? リモートは lib フィールドを spec に変更するだけです。たとえば、mine

ポッド仕様 lint --verbose --allow-warnings

他のサードパーティライブラリに依存している場合

ポッド仕様 lint  --verbose  --allow-warnings --sources="cocoapods ライブラリ アドレス、プライベート ライブラリ リモート アドレス"

他のサードパーティのプライベート ライブラリが他のライブラリに依存している場合は、--use-librariesを追加する必要があります

ポッド仕様 lint  --verbose  --use-libraries --allow-warnings --sources="cocoapods ライブラリ アドレス、プライベート ライブラリ リモート アドレス"

Github サードパーティ ライブラリの実行は参照されません

ポッド 仕様 lint --verbose --use-libraries --allow-warnings --sources='http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git'

実行用の github サードパーティ ライブラリへの参照があります

ポッド 仕様 lint --verbose --use-libraries --allow-warnings --sources=' https://github.com/CocoaPods/Specs.git http://code.pinnettech.cn/pinnet/IESP880/IOS /PinnetSpec.git'

报错 - エラー | [iOS] 不明: 不明なエラーが発生しました ([!] /usr/bin/git clone http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSearchBar.git /var/folders/sn/56pkr11n0vv91b5q37mjgxf80000gn/T/ d20221021-1427-1o5usog --template= --single-branch --length 1 --branch 1.0.0

「/var/folders/sn/56pkr11n0vv91b5q37mjgxf80000gn/T/d20221021-1427-1o5usog」にクローンを作成しています...

警告: クローンを作成するリモート ブランチ 1.0.0 が見つかりませんでした。

致命的: リモート ブランチ 1.0.0 がアップストリーム オリジンで見つかりません

警告: クローンを作成するリモート ブランチ 1.0.0 が見つかりませんでした。

致命的: リモート ブランチ 1.0.0 がアップストリーム ソースに見つかりません

gitlab でコンポーネント ライブラリ タグを表示する

 最初にタグを付けてください

7. podspec ファイルを最初に作成したプライベート インデックス ライブラリ PinnetSpec に送信します。

1) すべての検証に合格した後、最初に作成したリモート インデックス ライブラリに仕様ファイルをプッシュする必要があります。

エラーが報告された場合

[!] `PinnetSpec` リポジトリが見つかりません。クローンがまだ作成されていない場合は、「pod repo add」を使用して追加します。

1. 送信元アドレスを追加する

ポッド リポジトリに PinnetSpec を追加 http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git

2. 仕様をリモートにプッシュします

ポッド リポジトリ プッシュ [インデックス ライブラリ名] [コンポーネント ライブラリ名].podspec

ポッド リポジトリ プッシュ PinnetSpec PinnetBase.podspec --allow-warnings --use-libraries --verbose

URL のリポジトリ タイプを決定できませんでした: `https://cdn.cocoapods.org/`: SSL_connect returns=1 errno=0 state=SSLv3 読み取りサーバー証明書 B: 証明書の検証に失敗しました (ローカル発行者を取得できません)証明書)

外部ネットワークに切り替えて一度実行し、次に内部ネットワークに切り替えて再度実行します。

xx.podspec 仕様は検証されません

コマンドにサフィックスを追加します --allow-warnings --use-libraries --verbose

2) 最後のプッシュ後、ローカル インデックス ライブラリの外観は次のようになります。

3)この時点でプライベート ライブラリを確認します。

まずポッド ライブラリを更新してください。そうしないと、アップロードしたばかりのプライベート ライブラリが見つかりません。

ポッド リポジトリの更新 -- 

ポッド検索プライベート ライブラリ名

プライベートライブラリを使用する

Example フォルダー内の Podfile ファイル内

1.ソースソースパスを追加

ソース「https://github.com/CocoaPods/Specs.git」

ソース「http://code.pinnettech.cn/pinnet/IESP880/IOS/PinnetSpec.git」

2、ポッド「PinnetBase」

リモートプライベートライブラリ(コンポーネントライブラリ)を更新する

1. xxx/xxx/Classes フォルダー内の対応するライブラリ ファイルを変更します。

2. テストプロジェクトのポッドライブラリファイルを更新します。

ポッド更新 --no-repo-update

3. xxx.podspec ファイルの構成情報を更新します (バージョン番号タグを変更する必要があります)。

4.コードをリモートウェアハウスに送信します

git プッシュ orgin マスター

5. タグラベルを更新する

gitタグxxx

git Push --tags

6. プライベートライブラリを確認する

ポッド lib lint --private

ポッド仕様の糸くず

7. リモートおよびローカルのプライベート インデックス ライブラリを更新する

ポッド リポジトリ プッシュ [インデックス ライブラリ名] [コンポーネント ライブラリ名].podspec

プライベートライブラリ画像リソースの処理

·  独自の画像リソースをデスクトップ上の xxKit/xxKit/Assets フォルダーに直接コピーします (Assets はコンポーネント画像リソースを保存するために特別に使用されます)

·  デスクトップ コンポーネント xxKit の Example ディレクトリに cd します。
cd xxx/Example
pod
install

おすすめ

転載: blog.csdn.net/baidu_33298752/article/details/130946655