sử dụng tl; dr:
pod update podName
Tại sao? Đọc dưới đây.
pod update
sẽ KHÔNG tôn trọng podfile.lock
. Nó sẽ ghi đè lên nó.
pod install
sẽ tôn trọng podfile.lock
Sơ đồ này giúp hiểu rõ hơn về sự khác biệt:
Vấn đề chính đến từ ~>
toán tử lạc quan aka .
Sử dụng các phiên bản chính xác trong Podfile
là không đủ
Một số người có thể nghĩ rằng bằng cách chỉ định các phiên bản chính xác của nhóm trong họ Podfile
, như thế pod 'A', '1.0.0'
, đủ để đảm bảo rằng mọi người dùng sẽ có cùng phiên bản với những người khác trong nhóm.
Sau đó, họ thậm chí có thể sử dụng pod update
, ngay cả khi chỉ thêm một nhóm mới, nghĩ rằng sẽ không bao giờ có nguy cơ cập nhật các nhóm khác vì chúng được sửa thành một phiên bản cụ thể trong Podfile
.
Nhưng trên thực tế, điều đó là không đủ để đảm bảo rằng user1 và user2 trong kịch bản trên của chúng tôi sẽ luôn có được phiên bản chính xác của tất cả các nhóm của họ.
Một ví dụ điển hình là nếu nhóm A
có phụ thuộc vào nhóm A2
- được khai báo A.podspec
là dependency 'A2', '~> 3.0'
. Trong trường hợp như vậy, việc sử dụng pod 'A', '1.0.0'
trong Podfile của bạn thực sự sẽ buộc user1 và user2 phải luôn sử dụng phiên bản 1.0.0 của pod A, nhưng:
- user1 có thể kết thúc với pod
A2
trong phiên bản 3.4
(vì đó là A2
phiên bản mới nhất tại thời điểm đó)
- trong khi khi user2 chạy
pod install
khi tham gia dự án sau này, họ có thể nhận được pod A2
trong phiên bản 3.5
(vì người bảo trì A2
có thể đã phát hành một phiên bản mới trong thời gian đó). Đó là lý do tại sao cách duy nhất để đảm bảo mọi thành viên trong nhóm làm việc với cùng một phiên bản của tất cả các nhóm trên máy tính của mỗi người là sử dụng Podfile.lock
và sử dụng đúng cách pod install
so với pod update
.
Đoạn trích trên là tất cả bắt nguồn từ cài đặt pod so với cập nhật pod
Tôi cũng khuyên bạn nên xem những gì podfile.lock
làm
podfile.lock
là gì . Xem liên kết và video nó tham khảo.