Flutter - Building for iOS, ma il framework collegato e incorporato 'App.framework' è stato creato per iOS Simulator


13

Dopo l'aggiornamento a Catalina 10.15.4 beta con Xcode 13.4 beta, che ha anche aggiornato Simulator a 13.4 (921.4).

L'applicazione viene compilata ed eseguita correttamente su un dispositivo collegato fisicamente, ma nessun simulatore di alcun dispositivo può superare questa fase.

Ho ricevuto gli errori

Creazione per iOS, ma il framework 'App.framework' collegato e incorporato è stato creato per iOS Simulator.

o

Creazione per iOS Simulator, ma il framework collegato e incorporato 'App.framework' è stato creato per iOS.

inserisci qui la descrizione dell'immagine

Come posso risolvere questo problema?

Risposte:


42

Xcode 11.4 ha cambiato il modo in cui i framework sono collegati e incorporati e potresti riscontrare problemi nel passaggio tra dispositivi iOS e simulatori. Flutter v1.15.3 e versioni successive eseguiranno automaticamente la migrazione del progetto Xcode.

Per sbloccare, seguire le istruzioni seguenti;

  • Correzione rapida (fai funzionare il tuo simulatore)

rm -rf ios/Flutter/App.framework

  • Passaggi ufficiali raccomandati per migrare manualmente

    1. Dalla directory dell'app Flutter, apri ios / Runner.xcworkspace in Xcode.
    2. Nel riquadro Navigator, individuare il gruppo Flutter e rimuovere App.framework e Flutter.framework. inserisci qui la descrizione dell'immagine
    3. Nelle impostazioni di creazione del target Runner, Costruisci fasi> Collega binario con librerie conferma che App.framework e Flutter.framework non sono più presenti. Conferma anche in Fasi di costruzione> Incorpora cornici.

inserisci qui la descrizione dell'immagine

  1. Modifica le impostazioni di creazione della destinazione Runner Crea fasi> Script binario sottile come segue:

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

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

inserisci qui la descrizione dell'immagine

  1. Nel target Runner, crea Impostazioni> Altre bandiere linker

    (OTHER_LDFLAGS) aggiungi Flutterwork (ereditato) $

inserisci qui la descrizione dell'immagine

Spero che sia d'aiuto!


La domanda è stata recentemente chiusa e ha ricevuto molti voti negativi perché non è chiara ed è stata pubblicata su Meta . Sembra che tu capisca cosa ti sta chiedendo, hai un'idea di come modificarlo in modo che non sia così poco chiaro?
CertainPerformance,

1
Funziona come il fascino!
Giedrius Šlikas il

3

Xcode 11.4 ha cambiato il modo in cui i framework sono collegati e integrati, il che causa problemi nel passaggio tra dispositivi iOS e simulatori.

Segui la guida ufficiale su come migrare il tuo progetto.


Dopo aver seguito la guida ufficiale, la mia app non è stata ancora caricata sul mio dispositivo fisico. Solo dopo aver seguito la guida, eseguito flutter cleanpiù volte, cancellato la Pods/cartella e Podfile.lockreinstallato utilizzando pod installla cartella ios, alla fine ha funzionato.
Matthew Lerner,

2

Aggiornato a Xcode 11.4. Ios 13.4, Iphone X. L'app recupera solo i dati utilizzando l'API. L'app è stata avviata su schermo bianco e infine si arresta in modo anomalo, sia sul simulatore che sul dispositivo.

Ho seguito la guida ufficiale (anch'io rm -rf ios/Flutter/App.framework) flutter.dev/docs/development/ios-project-migration . Ho corso diverse volteflutter clean

Ho anche provato a eliminare Pod / cartella e Podfile.lock, quindi reinstallarlo utilizzando pod installnella cartella iOS .

Mentre sto usando i dati asincroni ho anche aggiunto come prima riga in main ()

WidgetsFlutterBinding.ensureInitialized();

Nessun aiuto, l'app non ha avviato nessuno dei due simulatori.

Quindi ho rimosso ios/e android/cartelle. Dopo quello nella cartella del progetto ho eseguito il comando flutter create .che rigenera le cartelle menzionate.

Dopo questo la mia app è partita bene sia sul simulatore che sul dispositivo. Spero che questo sarebbe di aiuto per gli altri. NOTA!! se hai apportato modifiche manualmente a tali cartelle, esegui prima il backup o il commit.


1

Dopo diversi giorni cercando di trovare una soluzione per testare l'app Flutter sul dispositivo iOS, ho finalmente trovato questo:

flutter clean
flutter build ios

-Apri xCode ed esegui l'app sul tuo dispositivo.


Non funziona ancora per me. fa la stessa cosa quando provo a eseguire ilflutter build ios
Raymond Ativie il


sì, questo è quello che ho finito per ringraziare
Raymond Ativie il

0

Ho provato la soluzione sul sito Web ufficiale di flutter ma non ha funzionato per me, quindi ho trovato una soluzione temporanea che ha funzionato per me, ma mi ci sono voluti un duro lavoro: ecco il mio esempio con il progetto stuck_framework che è una novità nuovo progetto (prima volta eseguito sul simulatore)

  1. Ho creato 2 cartelle all'interno del progetto
    Flutter chiamato "ios_simulator" e "ios_real_device". inserisci qui la descrizione dell'immagine

  2. Ora la mia prima build è stata per il simulatore, quindi voglio passare a un dispositivo reale, sposterò la cartella ios all'interno del progetto Flutter nel "ios_simulator"

  3. Apro il progetto con il codice di Visual Studio ed eseguo "Flutter Create". e ora sceglierò un dispositivo reale per ricostruire il progetto (se il tuo simulatore è online, per favore esci). inserisci qui la descrizione dell'immagine
  4. Ora aspetto il completamento della compilazione ed eseguo sul dispositivo reale senza errori. Ora ho 2 ios project 1 per simulatori e uno per dispositivi reali.
  5. La prossima volta che voglio eseguire di nuovo il simulatore, rimuovo solo la cartella ios corrente e copio la cartella ios che ho inserito in "ios_simulator" nella cartella del progetto Flutter. Spero che questo aiuto

0

L'aggiornamento manuale di flutter alla versione 1.15 risolve anche questo problema. La corsa flutter version v1.15.17mi ha aiutato.

Inoltre, puoi passare a betao devcanali eseguendo il flutter channelcomando ma assicurati di controllare il tuo codice con tutte le modifiche BC ...


0

Nel mio caso, funziona solo con il simulatore (debug). se vuoi distribuire la tua app su app store (versione) ti consiglio vivamente di aggiornare la versione di flutter usando

flutter version v1.15.17

altrimenti incontreresti l'app in crash con lo schermo bianco.

basta aggiornare la versione flutter quindi tutto funziona bene


1.15.17non è ancora sul canale stabile.
Loolooii,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.