tl; dr verwenden:
pod update podName
Warum? Lesen Sie unten.
pod update
wird das NICHT respektieren podfile.lock
. Es wird es überschreiben.
pod install
wird die respektieren podfile.lock
Dieses Diagramm hilft, die Unterschiede besser zu verstehen:
Das Hauptproblem kommt vom ~>
alias optimistischen Operator .
Es Podfile
reicht nicht aus, genaue Versionen in der zu verwenden
Einige denken möglicherweise, dass die Angabe genauer Versionen ihrer Pods in ihrem Podfile
Beispiel pod 'A', '1.0.0'
ausreicht, um sicherzustellen, dass jeder Benutzer dieselbe Version wie andere Personen im Team hat.
Dann könnten sie sogar verwenden pod update
, selbst wenn sie nur einen neuen Pod hinzufügen, und denken, dass es niemals riskieren würde, andere Pods zu aktualisieren, da sie auf eine bestimmte Version in der festgelegt sind Podfile
.
Tatsächlich reicht dies jedoch nicht aus, um sicherzustellen, dass Benutzer1 und Benutzer2 in unserem obigen Szenario immer genau die gleiche Version aller ihrer Pods erhalten.
Ein typisches Beispiel ist, wenn der Pod A
eine Abhängigkeit vom Pod hat A2
- deklariert A.podspec
als dependency 'A2', '~> 3.0'
. In diesem Fall 'A', '1.0.0'
zwingt die Verwendung von pod in Ihrer Poddatei tatsächlich Benutzer1 und Benutzer2, beide immer Version 1.0.0 von Pod A zu verwenden, aber:
- Benutzer1 hat möglicherweise einen Pod
A2
in der Version 3.4
(da dies zu diesem Zeitpunkt A2
die neueste Version war).
- Wenn Benutzer2 ausgeführt wird,
pod install
wenn er später dem Projekt beitritt , wird möglicherweise ein Pod A2
in der Version angezeigt 3.5
(da der Betreuer von A2
möglicherweise in der Zwischenzeit eine neue Version veröffentlicht hat). Deshalb ist die einzige Möglichkeit , jedes Teammitglied der Arbeit mit den gleichen Versionen aller pod , um sicherzustellen , auf dem Computer jedes ist zu verwenden Podfile.lock
und richtig verwenden pod install
vs. pod update
.
Der obige Auszug wurde alle von Pod-Installation vs. Pod-Update abgeleitet
Ich empfehle auch sehr zu beobachten, was ein podfile.lock
macht
podfile.lock
ist. Siehe den Link und das Video, auf das verwiesen wird.