Flutter: l’applicazione nel device non si avvia se non collegato al cavo

Se dopo aver collegato l’iPhone con il cavo e digitato:

flutter run -d 00007046-004082773524571B

per testare l’applicazione, scollegando il cavo l’appl’icazione non riparte e viene mostrato il messaggio:

In iOS 14+, debug mode Flutter apps can only be launched from Flutter tooling, IDEs with Flutter plugins or from Xcode.
Alternatively, build in profile or release modes to enable launching from the home screen.

approfitto per ricordarvi che Flutter in debug costruisce un “app sandbox” che comunica costantemente via USB/network con l’host per:

  • Hot reload / hot restart
  • DevTools (debugger, performance, logging)
  • Dart VM service

Da iOS 14 in poi, per questioni di sicurezza, Apple blocca l’apertura di queste app dalla home se non sono state avviate dal tooling (Flutter/Xcode). Non è un bug: è una limitazione voluta.

Soluzione: installa in release o profile mode

Queste due modalità compilano AOT (codice macchina nativo ARM) e non richiedono connessione all’host. Funzionano a cavo scollegato.


Passaggi da fare:

1. Verifica prerequisiti sull’iPhone (solo 1a volta)

  • Sblocca iPhone e tienilo sullo schermo home durante l’installazione.
  • Developer Mode ON: Impostazioni → Privacy e sicurezza → Modalità sviluppatore → ON (riavvio richiesto).
  • Fiducia computer: quando compare il popup "Fiducia di questo computer?" su iPhone → tocca Fiducia e inserisci il codice.

2. Controlla che Flutter veda il device

flutter devices

Dovresti vedere iPhone di XXXX (mobile) in elenco (non simulator). Se non lo vede:

brew install libimobiledevice ideviceinstaller ios-deploy

3. Installa in RELEASE mode (scelta consigliata per usarlo senza cavo)

flutter run --release -d 

oppure con il nome:

flutter run --release -d "iPhone di XXXX"

⚠️ Se ti chiede la password del keychain / permessi di accesso a Xcode: rispondi Consenti sempre (il sandbox dell’IDE spesso inghiotte questi dialoghi, per questo dal terminale esterno è più sicuro).

4. Alternative se flutter run fallisce per il signing

Se incontri errori di code signing / provisioning profile:

1. Apri Xcode → Apri progetto: ios/Runner.xcworkspace
2. Seleziona target Runner → Tab "Signing & Capabilities"
3. Team: seleziona il tuo account Apple Developer (anche free va bene)
4. Bundle Identifier: metti qualcosa di unico (es. com.tuonome.xxxxx)

Poi ridai:

flutter run --release -d "iPhone di XXXX"

5. Modalità Profile (utile se vuoi anche performance monitor, ma sempre standalone)

Se vuoi anche misurare performance:

BashRun

flutter run --profile -d "iPhone di XXXX"

6. Verifica cavo scollegato

Quando il terminale stampa:

💪  Running with sound null safety
🔥  To hot restart changes while running, press "r" or "R".

L’app è installata e avviata. Adesso puoi:

  1. Premere q nel terminale per chiudere il processo Flutter (non disinstalla niente).
  2. Staccare il cavo USB.
  3. Aprire l’app dgtv direttamente dalla home di iOS: ✅ funzionerà.

enjoy!

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta