Eski Flutter projesi güncel sürüme nasıl taşınır?
Yusuf İhsan Görgel · Yayın: 10.10.2026
Fotoğraf: Christina Morillo / Pexels
Eski bir Flutter projesini güncel sürüme taşımak, flutter upgrade komutunu çalıştırıp hata mesajlarını sırayla kapatmaktan ibaret değildir. Projenin Flutter ve Dart sürümleri, eklentileri, Android derleme araçları ve iOS yapılandırması birbirine bağlıdır. Hepsini aynı anda değiştirmek, hangi değişikliğin soruna yol açtığını anlamayı zorlaştırır. Kontrollü bir yükseltmede önce mevcut durum kaydedilir, ardından küçük bir değişiklik yapılır ve sonuç gözlemlenir.
Yükseltme öncesinde kodun yedeğinin ve sürüm kontrolünde temiz bir çalışma dalının olması işleri geri almayı kolaylaştırır. Üretim sürümünün nasıl derlendiğini de kaydedin. Eski projelerde geliştiricinin bilgisayarındaki araç sürümleri ile CI ya da mağazaya gönderim yapan makinenin sürümleri farklı olabilir. Bu farklar görünür olursa taşıma sırasında sürpriz azalır.
Önce mevcut durumu çıkarın
Flutter SDK sürümünü, Dart sürümünü, kullanılan kanalı ve derleme komutlarını not edin. pubspec.yaml içindeki paket kısıtlarını ve kilit dosyasını saklayın. Android tarafında Gradle Wrapper sürümü, Android Gradle Plugin ve Kotlin yapılandırmasını belirleyin. iOS tarafında Xcode sürümü, CocoaPods kurulumu ve minimum iOS hedefi kayda geçsin. Bu bilgiler eski sürüme dönmek veya bir derleme hatasını karşılaştırmak gerektiğinde referans olur.
Ardından paketlerin durumunu görmek için şu komutu kullanın:
flutter pub outdated
Çıktı, çözümlenmiş sürümle izin verilen ve yayımlanmış daha yeni sürümler arasındaki farkı gösterir. Her yeni sürümü hemen eklemek gerekmez. Bazı paketler uygulamanın kısıtlarıyla, kullanılan Flutter sürümüyle veya başka bir paketle uyumsuz olabilir. Artık kullanılmayan bağımlılıkları da ayıklayın. Paketleri tek tek ya da küçük kümeler halinde yükseltip ilgili ekranları ve akışları deneyin. Büyük bir paket değişikliği aynı anda çok sayıda derleme hatası doğurursa sebebi izlemek zorlaşır.
Flutter SDK yükseltmesini de küçük basamaklara bölün. Proje çok eskiyse ara SDK sürümlerinde derleyip düzeltmek, uzun bir sıçramadan daha yönetilebilir olabilir. Her basamakta değişen uyarıları ve yapılandırma gereksinimlerini okuyun. Bir adım başarıyla derlenmeden sonraki büyük değişikliğe geçmeyin. Kaynak kodu ile paket dosyaları arasında anlaşılır bir sürüm kontrolü kaydı tutun.
Android yapılandırmasını ayrı ele alın
Android derlemesinde Gradle Wrapper, Android Gradle Plugin ve Kotlin eklentisinin birbiriyle uyumlu olması gerekir. Birini güncelleyince diğerinin gereksinimleri değişebilir. Bu nedenle projedeki sürümleri birlikte inceleyin ve Flutter'ın kullandığınız SDK için açıkladığı Android proje yapısına göre ilerleyin. Bir sürümü yalnızca yeni olduğu için seçmeyin; kullandığınız Flutter, Android Studio ve eklentilerle uyumunu doğrulayın.
Eski projelerde Gradle eklentileri apply plugin ve ayrı apply from satırlarıyla uygulanmış olabilir. Yeni proje şablonları çoğunlukla plugins DSL yaklaşımını kullanır. Geçişte eklenti tanımlarının nerede belirtileceğini, Flutter Gradle eklentisinin hangi sırayla tanıtıldığını ve proje düzeyindeki ayarların nasıl taşınacağını dikkatle kontrol edin. Bu yalnızca satırları başka yere kopyalamak değildir; settings.gradle ve uygulama modülünün Gradle dosyası arasındaki görev paylaşımı da değişebilir.
Android derlemesi çalışsa bile uygulamayı gerçek cihazda açın. Bildirim izni, dosya erişimi, arka plan görevleri, derin bağlantılar ve kullandığınız eklentiler Android sürümüne bağlı davranabilir. Emülatör yararlıdır ama mağazaya çıkacak cihaz koşullarının tamamını temsil etmez.
iOS hedefini ve CocoaPods'u gözden geçirin
iOS tarafında Podfile içindeki minimum platform hedefi ile Xcode proje ayarlarının tutarlı olması gerekir. Bir Flutter sürümü veya eklenti daha yeni bir minimum iOS sürümü isteyebilir. Hedefi yükseltmeden önce mevcut kullanıcılarınızın cihaz gereksinimini ve kullandığınız paketleri değerlendirin. Gereksiz yere yüksek bir taban sürüm seçmek eski cihazları destek dışı bırakabilir; gereğinden düşük hedef ise bağımlılıkların derlenmesini engelleyebilir.
CocoaPods bağımlılıklarının kurulumu ve çözülmesi de yükseltmenin bir parçasıdır. Pod dosyalarını elle değiştirmeden önce projede bu dosyaların nasıl üretildiğini ve sürüm kontrolüne alınıp alınmadığını anlayın. pod install sırasında oluşan hatalar çoğu zaman iOS deployment target, Xcode araç zinciri veya bir eklentinin gereksinimiyle ilişkilidir. Sorunun kaynağını bulmak için hata mesajındaki pod ve hedef bilgilerini inceleyin.
Kullanımdan kalkan API'leri kontrollü düzeltin
Dart araçlarının önerdiği bazı kod değişikliklerini uygulamak için dart fix --apply kullanılabilir. Komutu proje derlenebilir durumdayken çalıştırın ve yaptığı farkları gözden geçirin. Bu araç her API değişimini veya iş mantığı sorununu otomatik çözmez. Önerilen değişiklikleri test etmeden kabul etmeyin; geniş kapsamlı otomatik düzeltme bir çağrının amacını değiştirebilir.
Her basamaktan sonra uygulamayı hem derleyin hem de gerçek cihazda temel iş akışlarıyla deneyin. Giriş, kayıt oluşturma, kamera, konum, dosya seçimi, bildirim ve ödeme gibi kullanılan özellikleri kontrol edin. Uygulama açılıyor diye yükseltme tamamlanmış sayılmaz. Eklentilerin izinleri, arka plan davranışı ve mağaza yapılandırması da etkilenebilir.
Mağazaya göndermeden önce
Son kontrol için ayrı bir dağıtım derlemesi alın ve temiz bir ortamda üretilebildiğini doğrulayın. Sürüm numarası, imzalama ayarları, gizlilik açıklamaları, izin metinleri ve mağaza görsellerinin güncel olduğuna bakın. Android ve iOS için hedeflenen cihaz ve işletim sistemi aralığını yeniden kontrol edin. Yükseltme sırasında yapılandırma dosyalarında yapılan değişiklikleri de ekip içinde açıklanabilir halde bırakın.
İlk adım olarak projenin mevcut Flutter, paket, Gradle, Kotlin, Xcode ve CocoaPods durumunu tek sayfalık bir notta toplayın. Sonra sürüm kontrolünde ayrı bir yükseltme dalı açıp yalnızca bir basamağı değiştirin ve derlemeyi gerçek cihazda doğrulayın.
Flutter sürüm yükseltme Gradle Android iOS CocoaPods Dart
Bu yazı uzmanın kendi görüş ve deneyimidir.