Flutter - Membangun untuk iOS, tetapi kerangka kerja App.framework yang tertaut dan tertanam dibangun untuk iOS Simulator

13

Setelah memperbarui ke Catalina 10.15.4 beta dengan Xcode 13.4 beta, yang juga memperbarui Simulator ke 13.4 (921.4).

Aplikasi mengkompilasi dan berjalan dengan benar pada perangkat yang terpasang secara fisik, tetapi tidak ada simulator dari perangkat apa pun yang dapat melewati tahap ini.

Saya mendapat kesalahan

Membangun untuk iOS, tetapi kerangka kerja App.framework yang ditautkan dan disematkan dibangun untuk iOS Simulator.

atau

Membangun untuk iOS Simulator, tetapi kerangka kerja yang terhubung dan tertanam 'App.framework' dibangun untuk iOS.

masukkan deskripsi gambar di sini

Bagaimana saya bisa memperbaikinya?

gordonturibamwe
sumber

Jawaban:

42

Xcode 11.4 mengubah cara kerangka kerja ditautkan dan disematkan, dan Anda mungkin mengalami masalah berpindah antara perangkat iOS dan simulator. Flutter v1.15.3 dan yang lebih baru akan secara otomatis memigrasi proyek Xcode Anda.

Untuk melepaskan diri, ikuti instruksi di bawah ini;

  • Perbaikan cepat (buat simulator Anda berfungsi)

rm -rf ios/Flutter/App.framework

  • Langkah resmi yang disarankan untuk bermigrasi secara manual

    1. Dari direktori aplikasi Flutter, buka ios / Runner.xcworkspace di Xcode.
    2. Di panel Navigator, cari grup Flutter dan hapus App.framework dan Flutter.framework. masukkan deskripsi gambar di sini
    3. Dalam pengaturan build target Runner Build Phases> Link Binary With Libraries mengonfirmasi App.framework dan Flutter.framework tidak lagi ada. Juga konfirmasi dalam Build Phases> Embed Frameworks.

masukkan deskripsi gambar di sini

  1. Mengubah pengaturan build target Runner Build Phases> Thin Binary script sebagai berikut:

    / bin / sh "$ FLUTTER_ROOT / package / flutter_tools / bin / xcode_backend.sh" sematkan

    / bin / sh "$ FLUTTER_ROOT / packages / flutter_tools / bin / xcode_backend.sh" thin

masukkan deskripsi gambar di sini

  1. Di Runner target, Bangun Pengaturan> Bendera Tautan Lainnya

    (OTHER_LDFLAGS) tambahkan $ (diturunkan) -Frework Flutter

masukkan deskripsi gambar di sini

Semoga ini bisa membantu!

Loïc Fonkam
sumber
Pertanyaannya baru-baru ini ditutup dan menerima banyak downvotes karena tidak jelas dan diposting di Meta . Sepertinya Anda mengerti apa yang diminta, apakah Anda punya ide bagaimana mengeditnya sehingga tidak terlalu jelas?
Kinerja Tertentu
1
Bekerja seperti pesona!
Giedrius Šlikas
3

Xcode 11.4 mengubah cara kerangka kerja ditautkan dan disematkan, yang menyebabkan masalah beralih antara perangkat iOS dan simulator.

Ikuti panduan resmi tentang cara memigrasi proyek Anda.

Viktor K
sumber
Setelah mengikuti panduan resmi, aplikasi saya masih tidak memuat di perangkat fisik saya. Hanya setelah mengikuti panduan ini, menjalankan flutter cleanbeberapa kali, menghapus Pods/folder dan Podfile.lock, kemudian menginstal ulang menggunakan pod installdalam folder ios yang akhirnya berhasil.
Matius Lerner
2

Diperbarui ke Xcode 11.4. Ios 13.4, Iphone X. App baru saja mengambil data menggunakan API. Aplikasi dimulai pada layar putih dan akhirnya macet, baik pada simulator maupun perangkat.

Saya mengikuti panduan resmi (saya juga rm -rf ios/Flutter/App.framework) flutter.dev/docs/development/ios-project-migration . Saya berlari beberapa kaliflutter clean

Saya juga mencoba menghapus Pods / folder dan Podfile.lock, kemudian menginstal ulang menggunakan pod installdi folder ios.

Karena saya menggunakan data async, saya juga menambahkan baris pertama di main ()

WidgetsFlutterBinding.ensureInitialized();

Tidak ada bantuan, aplikasi tidak memulai simulator.

Lalu saya dihapus ios/dan android/folder. Setelah itu di folder proyek saya menjalankan perintah flutter create .yang membuat ulang folder yang disebutkan.

Setelah ini aplikasi saya mulai baik di simulator dan di perangkat. Saya harap ini akan membantu orang lain. CATATAN!! jika Anda telah melakukan modifikasi apa pun secara manual pada folder-folder itu, harap ambil cadangan atau komit sebelumnya.

pengguna12657834
sumber
1

Setelah beberapa hari mencoba menemukan solusi untuk menguji aplikasi Flutter di perangkat iOS, saya akhirnya menemukan ini:

flutter clean
flutter build ios

Buka xCode dan jalankan aplikasi di perangkat Anda.

gordonturibamwe
sumber
Masih tidak bekerja untuk saya. melakukan hal yang sama ketika saya mencoba menjalankanflutter build ios
Raymond Ativie
3
Ikuti tautan ini: flutter.dev/docs/development/ios-project-migration
gordonturibamwe
ya itulah yang akhirnya saya lakukan terima kasih
Raymond Ativie
0

Saya telah mencoba solusi di situs resmi flutter tetapi tidak berhasil untuk saya, jadi saya menemukan solusi sementara yang bekerja untuk saya, tetapi saya perlu beberapa kerja keras: Ini adalah contoh saya dengan proyek stuck_framework yang baru proyek baru (pertama kali dijalankan di simulator)

  1. Saya membuat 2 folder di dalam proyek flutter yang disebut
    "ios_simulator" dan "ios_real_device". masukkan deskripsi gambar di sini

  2. Sekarang build pertama saya adalah untuk simulator, maka saya ingin beralih ke perangkat nyata, saya akan memindahkan folder ios di dalam proyek Flutter ke "ios_simulator"

  3. Saya membuka proyek dengan kode studio visual dan menjalankan "flutter create." dan sekarang saya akan memilih perangkat nyata untuk membangun kembali proyek (jika simulator Anda sedang online, silakan berhenti). masukkan deskripsi gambar di sini
  4. Sekarang saya menunggu build selesai dan berjalan di perangkat nyata tanpa kesalahan. Sekarang saya punya 2 proyek ios 1 untuk simulator dan satu untuk perangkat nyata.
  5. Lain kali ketika saya ingin menjalankan simulator lagi, saya hanya menghapus folder ios saat ini dan salin folder ios yang saya tempatkan di "ios_simulator" kembali ke mengepak folder proyek. Semoga bantuan ini
Phil Tran
sumber
0

Memutakhirkan flutter secara manual ke versi 1.15 juga menyelesaikan masalah ini. Berlari flutter version v1.15.17membantu saya.

Selain itu, Anda dapat beralih ke betaatau devsaluran dengan menjalankan flutter channelperintah tetapi pastikan Anda memeriksa kode Anda terhadap semua perubahan BC ...

Johnny Vietnam
sumber
0

Dalam kasus saya, ini hanya berfungsi simulator (debug). jika Anda ingin menggunakan aplikasi Anda di app store (rilis) saya sangat menyarankan Anda untuk meningkatkan versi flutter menggunakan

flutter version v1.15.17

jika tidak, Anda akan menemukan aplikasi macet dengan layar putih.

cukup tingkatkan versi flutter maka semuanya berjalan dengan baik

KIM
sumber
1.15.17belum di saluran Stable.
Loolooii