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!
One Comment