CocoaPodsプライベートウェアハウスは最新バージョンのポッドを取得できません

バックグラウンド:

会社は独自のプライベートCocoaPodが倉庫を取得すると予測しています。pod repo add privatefactory "http://xxx.xx.xx.xx/mygit.git"ローカルで
変更されたポッドに追加し、ポッドの最新バージョン1.3.5をウェアハウスにプッシュしてから、ローカルリポジトリを
ローカルでpod repo update privatefactory更新することでプライベートウェアハウスを作成します。

問題:

Podfileの内容は次のとおりです。

platform :ios, '7.0'
source 'http://xxx.xx.xx.xx/mygit.git'
source 'https://github.com/CocoaPods/Specs.git'

target 'Sample' do
  pod 'SamplePod','~> 1.3.1'
end

pod install --no-repo-updateポッドをインストールした、最新の1.3.5ではなくSamplePodバージョン1.3.1が引き続き使用されていることがわかりました。

理由

/.cocoapods/reposディレクトリを見ると、私のプライベートウェアハウスには、手動で追加したプライベートファクトリーと2mygitフォルダーの2つのフォルダーがあることがわかりました。privatefactoryフォルダー内のSamplePodは最新バージョン1.3.5であり、2-mygitのバージョンは古いバージョン1.3.1です。
デバッグと比較の結果、理由がわかりました
。Podfileでは、ソースがgitアドレスで構成されているため、pod installを実行すると、手動で追加したプライベートファクトリプライベートウェアハウスは使用されませんが、2に移動します。 -mygitウェアハウス。存在しない場合は再プルされます。すでに存在する場合は、ウェアハウスが直接使用され、ウェアハウスは更新されません。
私の問題は、2 mygitウェアハウスが以前に存在し、SamplePodのバージョンが1.3.1であり、privatefactoryウェアハウスを手動で更新した、2 mygitウェアハウスが更新されなかった、およびポッドのインストール中に2-mygitが更新されなかったことです。そのため、古いgitが使用されました。

解決

テストの結果、ローカルウェアハウスの名前がgitウェアハウスプロジェクトの名前と同じである場合、ポッドのインストール時にウェアハウス名が直接使用されることがわかりました。
したがって、ローカル倉庫の名前を倉庫プロジェクトの名前に設定するように全員に要求することで、この問題を解決できるようであり、複数の倉庫の問題は発生しません。
ただし、そのようなソリューションにはリスクが伴います。開発者が要件に従わず、自分のマシンにパッケージ化されている場合、古いポッドを使用する際に問題が発生します。

したがって、最も安全な方法は、jenkinsを使用して専用のパッケージングマシンでパッケージ化し、ネイティブ環境によるコード統合の問題を回避することです。

おすすめ

転載: blog.csdn.net/jhq1990/article/details/54376343