Flutter - iOS için oluşturma, ancak bağlantılı ve gömülü 'App.framework' çerçevesi iOS Simulator için oluşturuldu


13

Catalina 10.15.4 beta'ya Xcode 13.4 beta ile güncelledikten sonra Simulator'u 13.4'e (921.4) güncelledi.

Uygulama, fiziksel olarak bağlı bir aygıtta doğru bir şekilde derlenir ve çalışır, ancak hiçbir aygıtın simülatörleri bu aşamayı geçemez.

Hataları aldım

İOS için oluşturma, ancak bağlantılı ve gömülü 'App.framework' çerçevesi iOS Simulator için oluşturuldu.

veya

İOS Simulator için bina, ancak bağlantılı ve gömülü 'App.framework' çerçevesi iOS için oluşturuldu.

resim açıklamasını buraya girin

Bunu nasıl düzeltebilirim?

Yanıtlar:


42

Xcode 11.4, çerçevelerin bağlantı ve gömülme şeklini değiştirdi ve iOS cihazlar ile simülatörler arasında geçiş yapma konusunda sorun yaşayabilirsiniz. Flutter v1.15.3 ve üstü, Xcode projenizi otomatik olarak geçirecektir.

Sıkışmak için aşağıdaki talimatları izleyin;

  • Hızlı düzeltme (simülatörünüzü çalıştırın)

rm -rf ios/Flutter/App.framework

  • Resmi olarak manuel olarak geçiş yapmak için önerilen adımlar

    1. Flutter uygulama dizininden, Xcode'da ios / Runner.xcworkspace'i açın.
    2. Gezgin bölmesinde Flutter grubunu bulun ve App.framework ve Flutter.framework öğelerini kaldırın. resim açıklamasını buraya girin
    3. Runner hedef oluşturma ayarlarında Derleme Aşamaları> İkili Kitaplıklarıyla Bağla App.framework ve Flutter.framework öğelerinin artık mevcut olmadığını doğrulayın. Ayrıca Yapı Aşamaları> Çerçeveleri Yerleştir öğesinde onaylayın.

resim açıklamasını buraya girin

  1. Runner hedef oluşturma ayarlarını Derleme Aşamaları> İnce İkili komut dosyasını aşağıdaki gibi değiştirin:

    / bin / sh "$ FLUTTER_ROOT / paketleri / flutter_tools / bin / xcode_backend.sh" yerleştirme

    / bin / sh "$ FLUTTER_ROOT / paketleri / flutter_tools / bin / xcode_backend.sh" ince

resim açıklamasını buraya girin

  1. Runner hedefi Oluşturma Ayarları> Diğer Bağlayıcı Bayrakları

    (OTHER_LDFLAGS) $ (devralınan) çerçeveyi Çırpın

resim açıklamasını buraya girin

Umarım yardımcı olur!


Soru yakın zamanda kapatıldı ve belirsiz ve Meta'da yayınlandığı için çok sayıda aşağı oy aldı . Görünüşe göre ne istediğini anlıyorsunuz, şekli nasıl düzenleyeceğinize dair bir fikriniz var mı?
CertainPerformance

1
Cazibe gibi çalışır!
Giedrius Šlikas

3

Xcode 11.4, çerçevelerin bağlanma ve gömülme şeklini değiştirdi, bu da iOS cihazlar ve simülatörler arasında geçiş yapma sorunlarına neden oldu.

Lütfen projenizi nasıl taşıyacağınıza ilişkin resmi kılavuzu izleyin .


Resmi kılavuzu izledikten sonra, uygulamam fiziksel cihazıma yüklenmedi. Yalnızca kılavuzu takip ettikten, flutter cleanbirkaç kez çalıştıktan , Pods/klasörü sildikten ve nihayet çalıştığı ios klasöründe Podfile.lockkullanarak yeniden pod installyükledikten sonra oldu .
Matthew Lerner

2

Xcode 11.4 sürümüne güncellendi. Ios 13.4, Iphone X. App sadece API kullanarak veri alır. Uygulama beyaz ekranda başladı ve sonunda hem simülatörde hem de cihazda çöküyor.

Resmi kılavuzu (ben de rm -rf ios/Flutter/App.framework) flutter.dev/docs/development/ios-project-migration takip ettim . Birkaç kez koştumflutter clean

Ayrıca Pods / klasör ve Podfile.lock'u silmeyi, ardından pod installios klasöründe yeniden yüklemeyi denedim .

Eşzamansız veriler kullandığım için main () de 1. satır olarak ekledim

WidgetsFlutterBinding.ensureInitialized();

Yardım yok, uygulama her iki simülatör de başlamadı.

Sonra kaldırıldı ios/ve android/klasörler. Bundan sonra proje klasöründe flutter create .bahsedilen klasörleri yeniden üreten bir komut çalıştırdım .

Bundan sonra uygulamam hem simülatörde hem de cihazda iyi başladı. Umarım bu başkalarına yardım eder. NOT!! bu klasörlerde manuel olarak herhangi bir değişiklik yaptıysanız, lütfen yedeklemeyi veya önceden taahhütte bulunun.


1

İOS cihazında Flutter uygulamasını test etmek için bir çözüm bulmaya çalıştıktan birkaç gün sonra nihayet bunu buldum:

flutter clean
flutter build ios

-Kodu açın ve cihazınızda uygulamayı çalıştırın.


Hala benim için çalışmıyor. koşmaya çalıştığımda aynı şeyi yapıyorflutter build ios
Raymond Ativie


evet ben teşekkür işi sona erdi
Raymond Ativie

0

Çözümü flutter'in resmi web sitesinde denedim ama benim için işe yaramadı, bu yüzden benim için çalışan geçici bir çözüm buldum, ancak bazı zor işleri aldı: İşte yeni bir proje stuck_framework ile örnek yeni proje (simülatörde ilk kez çalıştırılıyor)

  1. Flutter projesinde
    "ios_simulator" ve "ios_real_device" adlı 2 klasör oluşturdum . resim açıklamasını buraya girin

  2. Şimdi ilk yapım simülatör içindi, sonra gerçek bir cihaza geçmek istiyorum, Flutter projesinin içindeki ios klasörünü "ios_simulator" a taşıyacağım

  3. Projeyi visual studio kodu ile açıp "flutter create" komutunu çalıştırıyorum. ve şimdi projeyi yeniden oluşturmak için gerçek bir cihaz seçeceğim (simülatörünüz çevrimiçi ise, lütfen çıkın). resim açıklamasını buraya girin
  4. Şimdi derleme bitmesini bekliyorum ve gerçek cihazda hatasız çalışıyorum. Simülatörler için 2 ve gerçek cihazlar için bir tane ios proje 1 var.
  5. Bir dahaki sefere simülatörde tekrar çalıştırmak istediğimde, sadece mevcut ios klasörünü kaldırıyorum ve "ios_simulator" üzerine yerleştirdiğim ios klasörünü geri proje klasörüne geri kopyalarım. Umarım bu yardım

0

Çırpınmayı sürüm 1.15'e manuel olarak yükseltmek de bu sorunu çözer. Koşmak flutter version v1.15.17bana yardımcı oldu.

Ayrıca, komut çalıştırarak betaveya devkanallara geçebilirsiniz, flutter channelancak kodunuzu tüm BC değişikliklerine karşı kontrol ettiğinizden emin olun ...


0

Benim durumumda, sadece simülatör (hata ayıklama) çalışır. Uygulamanızı App Store'da (sürümde) dağıtmak istiyorsanız, kullanarak flutter sürümünü yükseltmenizi şiddetle tavsiye ederim

flutter version v1.15.17

Aksi takdirde beyaz ekran ile çöktü uygulaması karşılaşacaksınız.

sadece çarpıntı sürümünü yükseltin, sonra her şey iyi çalışıyor


1.15.17henüz Kararlı kanalda değil.
Loolooii
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.