回答:
CocoaPodsの最新バージョンがインストールされていることを確認してください。$ pod update POD
最近導入されました。
詳細については、この問題のスレッドを参照してください。
$ポッド更新
を実行すると
pod update SomePodName
、CocoaPodsは、にリストされているバージョンを考慮せずに、ポッドSomePodNameの更新バージョンを見つけようとしますPodfile.lock
。ポッドを可能な限り最新バージョンに更新します(Podfileのバージョン制限に一致する限り)。ポッド名を指定せずにポッド更新を実行すると、CocoaPodsは、Podfileにリストされているすべてのポッドを可能な限り最新のバージョンに更新します。
$ pod update SomePodName
。ただし、CocoaPodsが他のポッドの依存関係も更新しようとする場合があります。要するに、SomePodNameは、場合によって更新される唯一のポッドではありません。
pod install
すると、元のバージョンに戻ります。しかし、変更を失いたくありません
pod update
すべてに触れます。それはそれが缶で言うことをしません、そしてそれは非常にイライラします。タッチするように指示していない他のポッドからヘッダーをランダムに削除するなど
既存のものを更新せずに単一のポッドをインストールするには、そのポッドをPodfileに追加して使用します。
pod install --no-repo-update
特定のポッドを削除/更新するには:
pod update POD_NAME
テスト済み!
だから pod update SomePod
、cocoapodsの最新バージョンのすべてに触れる、回避策を見つけました。
次の手順に従います。
SomePod
から削除Podfile
走る pod install
ポッドがSomePod
プロジェクトとPodfile.lock
ファイルから削除されます。
元に戻すSomePod
にPodfile
pod install
もう一度走る
今回は、最新バージョンのポッドがインストールされ、に保存されますPodfile.lock
。
pod update somepod anotherpod thirdpod
複数のポッドを更新することもできます:)
SomePod
最新の依存関係に更新された場合、共有された依存関係をanotherPod
最新に更新しないのですか?ポッドロックの内容に関係なく発生しませんか?それ以外の場合は、の要件を満たすことができなくなりますSomePod
ただ言って:
pod install
-新しいポッドをインストールするため
pod update
-既存のポッドを更新するため
pod update podName
-他のポッドに触れずに特定のポッドのみを更新するため、
pod update podName versionNum
-他のポッドに触れずに特定のポッドを更新/ダウングレードするため
pod
代わりにgit
?
tl; dr使用:
pod update podName
どうして?以下をお読みください。
pod update
を尊重しませんpodfile.lock
。それを上書きします。pod install
を尊重します podfile.lock
この図は、違いをよりよく理解するのに役立ちます。
主な問題は、~>
別名楽観演算子に起因します。
Podfile
するだけでは不十分ですポッドの正確なバージョンをで指定することでPodfile
、pod 'A', '1.0.0'
ですることで、すべてのユーザーがチームの他のユーザーと同じバージョンになることを保証するには十分います。
その後pod update
、新しいポッドを追加するだけでも、を使用する可能性があります。他のポッドは、の特定のバージョンに修正されているため、更新するリスクがないと考えていPodfile
ます。
しかし、実際には、上記のシナリオのuser1とuser2が常にすべてのポッドのまったく同じバージョンを取得することを保証するには十分ではありません。
ポッドがあれば1つの典型的な例はあるA
ポッドへの依存性があるA2
中で宣言- A.podspec
などをdependency 'A2', '~> 3.0'
。そのような場合、'A', '1.0.0'
Podfileでポッドを使用すると、user1とuser2の両方が常にバージョン1.0.0のポッドAを使用することになりますが、次のようになります。
A2
バージョンのポッドで終了する可能性があります3.4
(それはA2
そのときの最新バージョンだったため)pod install
後でプロジェクトに参加するときにuser2を実行すると、ポッドA2
バージョンが取得される可能性があります3.5
(A2
その間にメンテナが新しいバージョンをリリースした可能性があるため)。つまり、各者のコンピュータ上のすべてのポッドの同じバージョンとすべてのチームメンバーの仕事が使用することを確認するために、なぜ唯一の方法だPodfile.lock
と、正しく使用してpod install
対をpod update
。上記の抜粋はすべて、ポッドインストールとポッド更新から派生したものです
私は何をするのかを見ることを強くお勧めしpodfile.lock
ます
私は使用cocoapods version 1.0.1
してpod update name-of-pod
おり、完全に機能します。他のポッドは更新されず、入力した特定のポッドのみが更新されます。
これは少し外れ値であり、OPが扱っていた可能性は低いですが、 pod update <podname>
ますが、コンピューターでローカルポッドを使用している場合は、すべてのケースで機能するわけではありません。
この状況ではpod update
、podspecファイルに変更があった場合にのみ、機能します。ただし、変更を加えると、pod install
なります。
この状況では、説明や要約などのマイナーなものを1文字ずつ変更するだけで、インストールまたは更新コマンドを正常に実行できます。
podfile.lock
があります。リンクとそれが参照するビデオを参照してください。