pubspec.lock Dosyasını Anlamak: Sürüm Çakışmalarını Çözmek
Flutter ve Dart projelerinde `pubspec.lock` dosyası, kullandığın tüm paketlerin tam sürümlerini kaydeder. `pubspec.yaml` dosyasında esnek versiyon aralıkları belirtirsin (mesela `^1.0.0`), ama `pubspec.lock` bu aralıktan seçilmiş kesin sürümü tutarak, proje herkeste aynı şekilde çalışmasını sağlar.
Örneğin, A paketi `http: ^1.0.0` ve B paketi `http: ^2.0.0` gerektiriyorsa, Dart paket yöneticisi hangisini seçeceğini bilmez. Ya da `pubspec.lock` eski sürümü işaret ediyorken, `pubspec.yaml` yeni bir paket eklediğinde uyumsuzluk ortaya çıkar.
1. Sorunu Teşhis Et
Terminalde şu komutu çalıştır:
1flutter pub getEğer çıktıda `version conflict` veya `incompatible version` uyarısı görürsen, sürüm çakışması var demektir.
2. Lock Dosyasını Sıfırla
En güvenli yol, `pubspec.lock` dosyasını silip yeniden oluşturmak:
1rm pubspec.lock2flutter pub getBu, `pubspec.yaml`'daki koşulları sağlayan en yeni uyumlu sürümleri seçer.
3. Paket Sürümlerini Kontrol Et
`pubspec.yaml` dosyasını aç ve çakışan paketleri gözden geçir:
1dependencies:2http: ^1.1.0 # Eski sürüm3google_maps_flutter: ^2.0.0 # Yeni sürümü http ^2.0 gerektiriyorÇakışmayı çözmek için, daha esnek bir sürüm seç:
1dependencies:2http: ^2.0.03google_maps_flutter: ^2.0.04. Güncellemeyi Tamamla
1flutter pub upgradeBu komut tüm paketleri en yeni uyumlu sürüme çıkarır.
İşlem başarılı olursa şöyle bir çıktı görürsün:
1Running "flutter pub get"...2Resolved dependencies in 2.3s.3Got dependencies!`pubspec.lock` dosyası artık güncellenmiş ve tüm paketler uyumlu durumda.
Ver kontrol sistemine (Git) `pubspec.lock` dosyasını mutlaka ekle. Böylece ekibin herkes aynı sürümleri kullanır.
0 yorum