MOB: App offline non partono
copia linkDescrizione del difetto
All'interno della Shell Nativa le app offline che non usano il live update vengono avviate usando l'indirizzo 0.0.0.0, con il template url "http://0.0.0.0/nomeapp.aspx".
Fino ad ora non ci sono stati problemi con questo pattern e tutt'ora non ci sono problemi di sicurezza. I nuovi browser però hanno iniziato ad implementare restrizioni sull'uso di questo indirizzo.
Apple ha appena corretto questa vulnerabilità e questo causa il mancato avvio delle app su iOS 18. Android lo correggerà a breve.
Per risolvere il problema è necessario aggiornare Instant Developer alla versione 24.0r10, ricompilare e rilasciare nuovamente le proprie applicazione mobile sia per iOS che per Android.
Effetti del malfunzionamento
- Avviando un'app offine compilata da un pacchetto XCode generato da InDe l'app non partiva lasciando una pagina bianca.
Soluzioni
Se si sta utilizzando la versione 24.0 di Instant Developer, occorre ricompilare e rilasciare nuovamente le proprie applicazione mobile sia per iOS che per Android.
Se si sta utilizzando una versione precedente di Instant Developer, è necessario procedere come indicato nei paragrafi seguenti.
Funzionalità interessate
Avvio di app offline all'interno della Shell Nativa.
Come applicare la patch per iOS con versioni precedenti di Instant Developer
All'interno del metodo loadFromXML del file Service.m: sostituire la riga
[self setURL:[xml.Root getStringAttribute:@"URL"]];
con le righe:
[self setURL:[xml.Root getStringAttribute:@"URL"]]; if ([URL hasPrefix:@"http://0.0.0.0"]) URL = [URL stringByReplacingOccurrencesOfString:@"http://0.0.0.0" withString:@"http://127.0.0.1"];
All'interno del metodo dbSQLiteDBPath del file Service.m sostituire le righe:
if (dbFullPath == nil && USE_SHELL_DB) {
con le righe:
if (dbFullPath == nil && USE_SHELL_DB) { if ([path hasPrefix:@"http_127.0.0.1"]) path = [path stringByReplacingOccurrencesOfString:@"http_127.0.0.1" withString:@"http_0.0.0.0"]; //
Nel metodo loadAndStartService del file ViewController.m sostituire la riga:
self.mainSvc.URL = [@"http://0.0.0.0/" stringByAppendingString:@"#_ICD_WEB_LOGINURL"];
con la riga:
self.mainSvc.URL = [@"http://127.0.0.1/" stringByAppendingString:@"#_ICD_WEB_LOGINURL"];
Come applicare la patch per Android con versioni precedenti di Instant Developer
All'interno del metodo loadToXml del file Service.java: sostituire la riga
URL = el.getAttribute("URL");
con le righe:
URL = el.getAttribute("URL"); if (URL.startsWith("http://0.0.0.0")) URL = URL.replaceAll("http://0.0.0.0", "http://127.0.0.1");
All'interno del metodo dbSQLiteDBPath del file Service.java sostituire le righe:
Uri url = Uri.parse(WebUI.getUrl()); String domain = url.getScheme() + "_" + url.getHost() + "_" + Math.max(url.getPort(), 0);
con le righe:
Uri url = Uri.parse(WebUI.getUrl()); String host = url.getHost(); if (host.equals("127.0.0.1")) host = host.replaceAll("127.0.0.1", "0.0.0.0"); // String domain = url.getScheme() + "_" + host + "_" + Math.max(url.getPort(), 0);
Nel metodo loadAndStartService del file ViewController.java sostituire la riga:
mainSvc.URL = "http://0.0.0.0/#_ICD_WEB_LOGINURL";
con la riga:
mainSvc.URL = "http://127.0.0.1/#_ICD_WEB_LOGINURL";
Note
- Malfunzionamento relativo alla richiesta di assistenza 001872-2024.
Ultima modifica: 25/09/2024 / Validità: da 24.0.9300