It is currently 16 January 2026, 8:58 Advanced search

ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby Lore » 16 June 2020, 10:31

Buongiorno, da qualche giorno quando provo a lanciare un'applicazione con Caravel quest'ultima si arresta immediatamente. Con il debug dell'applicazione sono riuscito a vedere che ci sono due errori: il primo avviene quando cerca di creare una cartella sul dispositivo (questa parte fino a qualche giorno fa non ha mai creato problemi). La seconda invece è quando cerca di analizzare il nome del device che ora restituisce una pagina HTML quando prima restituiva semplicemente il nome dell'iPad. E' stato effettuato qualche aggiornamento che ha cambiato il funzionamento? Oppure di che errore si può trattare?
Grazie per la collaborazione.
Lore
 
Posts: 16
Joined: 6 December 2017, 13:39

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby lucabaldini » 16 June 2020, 12:08

Un paio di settimane fa è stata rilasciata una nuova versione di Caravel che ora utilizza una nuova WebView (WkWebView invece della UIWebView non più utilizzabile a causa di un vincolo imposto da Apple).

Questo potrebbe dare problemi se si utilizza Caravel in produzione e/o se si testano applicazioni online con versioni precedenti di Instant Developer.

E' questo il tuo caso? Applicazione online sviluppata con versioni precedenti alla 20.0 di Instant Developer?
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby lucabaldini » 16 June 2020, 12:09

Se è questo il tuo caso potresti provare ad usare questa custom nella tua applicazione.
Attachments
custom3.zip
(632 Bytes) Downloaded 304 times
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby Lore » 16 June 2020, 12:41

L'applicazione non è online e ora sto utilizzando la versione 19.5. Anche con l'aggiunta della custom continua a ripetersi l'errore
Lore
 
Posts: 16
Joined: 6 December 2017, 13:39

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby lucabaldini » 16 June 2020, 16:05

Quindi, se ho capito bene:
- l'applicazione è offline
- stai usando la 19.5 con Caravel
- l'applicazione offline non parte

E' così?

Puoi far vedere anche a me il debug che hai visto tu? In particolare come e dove hai visto il problema della creazione della directory ed il problema della lettura del nome del device... Come e dove lo fai? E come hai visto che restituisce una pagina HTML?
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby lucabaldini » 18 June 2020, 16:00

Ciao. Ho visto che hai aperto un ticket per analizzare il caso.
Ho controllato ed in effetti hai ragione tu. Su iOS 11 e precedenti le applicazioni offline compilate con la versione 20.0 non partono!

La shell nativa, nel caso delle applicazioni offline, deve servire lei i file dell'app (che è appunto offline).

Per farlo occorre interfacciare la WebView con la shell nativa.

Il canale di comunicazione è cambiato nel tempo per adattarsi alle limitazioni imposte, man mano, dalle varie versioni di iOS!

Con iOS9 e precedenti usavamo quella che si chiamava NSURLCache.sharedURLCache. Quella intercettava qualunque richiesta HTTP/HTTPS.
Poi con iOS10 non funzionava più correttamente e siamo passati ad NSURLProtocol.
Poi siamo dovuti passare alla WKWebView e usare WKWebViewConfiguration e URLSchemeHandler (disponibile solo per iOS 11 e successivi!) per la comunicazione. Motivo? La WkWebView e NSUrlProtocol non vanno d'accordo (vedi https://stackoverflow.com/questions/242 ... ot-working e https://forums.developer.apple.com/thread/87474).

Ovviamente il bug è stato segnalato ad Apple (la WkWebView è la classe di riferimento e non siamo i soli a voler interfacciare strato nativo con strato web). Ma, se ho capito bene, non sarà corretto perché c'è già URLSchemeHandler... è vero che è disponibile solo su iOS 11... probabilmente penseranno che se uno ha iOS10 deve cambiare device! Tra qualche mese uscirà iOS 14...

Comunque: è rimasto scoperto un caso: iOS 10... Su iOS 10 non posso usare URLSchemeHandler perché è disponibile solo per iOS 11 e successivi, non posso usare NSUrlProtocol perché la WkWebView non lo supporta. Non posso usare LocalCache perché non va sulla WkWebView.

Vabbè, per accorciare la storia... ho provato a gestire anche il tuo caso: Caravel su iOS 10. Credo di esserci riuscito.
Ho inviato su TestFlight una versione di Caravel (20.0.2.0) che dovrebbe gestire il tuo caso. Potresti provare e dirmi se funziona?

Se la risposta è sì invierò Caravel su AppStore per la pubblicazione definitiva. Per il momento preferirei testarla prima per capire se funziona correttamente.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby Lore » 19 June 2020, 9:18

Grazie per la risposta. Si ho aperto un'assistenza e successivamente una segnalazione perchè il problema si sta espandendo in maniera abbastanza rapida a tutti i tablet che abbiamo.
Volevo chiederti come posso testare la versione che hai pubblicato su TestFlight perchè non l'ho mai usato e non so bene come funziona.
Grazie ancora
Lore
 
Posts: 16
Joined: 6 December 2017, 13:39

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby Lore » 19 June 2020, 11:38

Sono riuscito a scaricarla e a testarla. Sembra che funzioni sull'ipad con versione di iOS 10
Lore
 
Posts: 16
Joined: 6 December 2017, 13:39

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby lucabaldini » 19 June 2020, 12:56

Ottimo!

L'ho inviata su AppStore... ora dipende tutto da Apple.

N.B.: Attenzione... usare Caravel in produzione è mooooolto rischioso... io non riesco a testare le nuove versioni su tutti gli iOS, tutti i device, in qualunque configurazione... è già molto se riesco a testare tutte le funzionalità sulla versione attuale di Instant Developer (online e offline) e su quella precedente.
Ovviamente ci provo, faccio tutto quello che posso... ma tra qualche mese uscirà iOS 14... e non è detto che sia in grado di gestire il tutto senza causare problemi alle versioni precedenti... farò del mio meglio ma se Apple rompe qualcosa, non posso farci nulla... ecco perché consigliamo sempre di usare i propri pacchetti... così siete liberi e indipendenti dai rilasci di Caravel il cui scopo è testare le proprie applicazioni prima di invarle allo store... Capisco che Caravel sia comoda (l'abbiamo fatto anche per quello) ma usarla in produzione vi obbliga a dipendere da noi e, se ci sono regressioni non volute, ad avere problemi in produzione che avremmo volentieri evitato se conosciuti.

Aggiungo anche che, specialmente nell'ultima versione dove siamo passati dalla UIWebView alla WKWebView, abbiamo reso disponibile Caravel su TestFlight per 1 mese e mezzo prima di inviarla ad AppStore. Proprio per permettere a tutti quelli che la usano in produzione (anche se non dovrebbero ;-) di verificare se le loro app funzionavano correttamente. Suggerisco, anche per le prossime versioni, di testare Caravel appena disponibile su TestFlight... e, come sempre, valutare se riuscite a passare ad un'app ibrida indipendente da Caravel appena possibile.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ERRORE INITIALIZE CON CARAVEL SU APPLICAZIONE MOBILE

Postby Tony » 20 June 2020, 8:01

Sono fondamentalmente d'accordo sul passare "prima possibile" ad app indipendenti da caravel, ma spesso, nella pratica si è di fronte a problematiche imprevedibili e con carattere di urgenza.
Ti cito un caso reale: Modifica urgente sulla struttura dati dell'applicazione server, deploy dell'applicazione web e ibrida, con Caravel immediatamente operativa,
Con app indipendente: accettazione della release da apple store 8 giorni, risultato: 18 agenti bloccati!

Santo subito chi ha realizzato Caravel!
Tony
 
Posts: 550
Joined: 13 November 2013, 11:37
Location: Messina

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 33 guests