Flutter/flutter.h file not found hatasının basit bir çözümünü yazacağım bu yazıda bu hatanını neden kaynaklandığını ve çözümü için nasıl bir yaklaşım izleyebileceğinizi anlatacağım.

Genellikle stackoverflow üzerinde pod init, pod install, rm podfile.lock gibi komutların sırayla yapılıp bu hatanın çözülebileceğini ve iOS buildini alabileceğinizi düşünürsünüz. Öncelikle tavsiye edilen bazı adımları tekrarlayalım:

Birinci çözüm:

flutter pub cache repair
cd ios 
pod init 
pod install
flutter run

İkinci çözüm:

cd ios
pod deintegrate
rm Flutter/Flutter.podspec
rm podfile.lock
flutter clean
flutter pub get
flutter run

Üçüncü çözüm:

rm ios/Flutter/Flutter.podspec
flutter clean
flutter pub get
flutter run

Tüm çözümler tükendiyse ya? Bu durumda probleme yakından bakmamız gerekiyor ve logları okumamız gerekiyor.

Xcode's output:
↳
    In file included from /Users/zahidtekbas/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.1/ios/Classes/FLTPathProviderPlugin.m:5:
    /Users/zahidtekbas/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.1/ios/Classes/FLTPathProviderPlugin.h:5:9: fatal error: 'Flutter/Flutter.h'
    file not found
    #import <Flutter/Flutter.h>
            ^~~~~~~~~~~~~~~~~~~
    1 error generated.
    1 error generated.
    Command MergeSwiftModule failed with a nonzero exit code
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description

Hatanın ayrıntısında, path-provider paketinin içerisindeki bir dosyada Flutter.h isimli dosyanın bulunamadığı anlaşılıyor. Bunun nedeni, Flutter framework ile Swift SDK arasında kurulan bağlantıda bir problem olduğu için olabilir. Peki bu bağlantının sağlandığı kısımlardan birisi geliştirici tarafından farkında olmadan değiştiriliyorsa?

Evet! Podfile içerisinde farklı kütüphaneler ekledikçe yaptığımız değişiklikler nedeniyle bazen Flutter uygulamalarının default olarak yazdığı satırları da siliyoruz. Bu nedenle de uygulamalarda build alırken beklenmedik sonuçlar gerçekleşebiliyor.



post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      config.build_settings['SWIFT_VERSION'] = '5.0' 
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
    flutter_additional_ios_build_settings(target)
  end
end

Podfile içerisindeflutter_additional_ios_build_settings(target) komutunun silinmesiyle beraber bazı hatalar oluşabiliyor. Eğer konfigürasyon ayarlarını değiştirecekseniz bu satırı silmeden yapmanız gerekiyor.


Okuyucuya Not

Merhaba okuyucu! Blogum son zamanlarda yüksek trafik almaya başladı ve bu durumdan memnunum fakat aynı zamanda siz ziyaretçileri tatmin edememekten endişeliyim. 🙂 Eğer yazılarım ile ilgili bir tavsiyeniz olursa mail adresimden bana ulaşabilir veya Twitter üzerinden direct message gönderebilirsiniz. Github’ta örnek olarak yaptığım projelere göz atmak isterseniz de bu linki kullanabilirsiniz. Umarım bu ziyaretinizle size bir şeyler katabilmişimdir.

Sağlıcakla kalın!

Tags: