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.