PageReceived

Salve a tutti,

ho un problema con una mia app gi pubblicata sullo store, una volta aggiornato xojo alla rel 3 e risolto (grazie Antonio e James) i problemi di licenza (bisogna aggiornare sia xcode che OSX) se simulo con iphone 4s il codice passa dalla PageRecived se compilo con il 5s o il 6s non ci passa pi…
Per essere piu chiari ho un app cosi composta:
View1
Controls
Button
il codice dentro
PostSocket1.Send(“GET”," http://www.pippo.webapp.eu/xxxx/login?U UserName="+TextField1.Text+"&userPasswd="+TextField2.Text)
ecc…
(ovviamente una stringa che restituisce un json)

      Postsocket1
           pagereceived
              (il codice dentro il pagereceived)

se provo la simulazione con iphone4 tutto ok

se provo la compilazione dal 5 in su non ci passa proprio e quindi non funziona pi l’app.

Un saluto
Grazie
Enrico

Il sito http?
Allora non funziona sul device
Puoi chiamare direttamente https o AL MOMENTO, potrebbe presto cambiare, allegare alla tua app una plist con la lista dei domini che vuoi chiamare in modalit http.

Ad esempio utilizzando il tuo dominio una cosa del genere

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSExceptionDomains</key>
		<dict>
			<key>pippo.webapp.eu</key>
			<dict>
				<key>NSIncludesSubdomains</key>
				<true/>
				<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
				<true/>
			</dict>
		</dict>
	</dict>
</dict>
</plist>

Se hai gi una plist allegata ovviamente aggiungi key e dict a quella che hai

Ciao Antonio,

si il sito in http, se passasse in https si risolverebbe automaticamente?

grazie come sempre del tuo prezioso aiuto, adesso provo ad aggiungere key e dict alla plist e ti faccio sapere.

Ciao Antonio scusa la domanda, io modifico il file plist del pacchetto ma poi su application loader carico l’IPA come faccio ad allegare il file che il pacchetto gia compilato?
non so se sono riuscito a spiegarmi.

la chiamata :
PostSocket1.Send(“GET”,“http://www.xxx.webapp.eu/mobileService/dipendenti/v1/login?userName="+TextField1.Text+"&userPasswd=”+TextField2.Text)

metto solo http://http://www.xxx.webapp.eu oppure devo mettere tutto?

sempre grazie
Enrico

Scusa se scrivo ancora, in effetti modificando la plist non va più in errore (immagino che se anche carico l’ipa qualche cosa lo vada a prendere dal file pacchetto) comunque non passa dal pagereceived, ho messo dei msg per vedere i vari punti e di li proprio non ci passa.
Forse sbaglio qualche cosa nel plist?

ciao e scusa per il numero dei messaggi

Crei un file di testo con nome qualsiasi e estensione plist
Contenuto quello che ti ho indicato
Poi lo trascini dentro l’IDE sul navigator
Verr allegato in automatico, o meglio il suo contenuto andr ad integrare la plist che viene generata per l’app

Puoi fare la stessa cosa per le applicazioni per macOS (ad esempio lo uso per usare font custom e, prima del supporto nativo per HiDpi, per abilitare le immagini Retina)

Se guardi i log dell’app reale dovresti vedere messaggi relativi alla navigazione e perch non naviga.
… e per lo stesso motivo usa system.debugLog invece di msg

Ciao Antonio,
ho inserito nell’IDE il file plist come mi hai detto tu e adesso se guardo le informazioni del pacchetto dentro il file plist c’ l’eccezione per il sito in http, ma continua a non funzionare su testflight.
Una domanda, perch la vecchia versione gi sullo store funziona senza problemi con la stessa chiamata in hhtp?

Sto guardando come usare system.debuglog ma non trovo un esempio pratico…

Forse faccio domande un po stupide ma da poco che utilizzo Xojo IOS (anche su un app sono riuscito gi a pubblicarla)

Sempre grazie per la tua disponibilit

Enrico

Per System.debulog
Mettiamo che hai una variable pippo (intera e vale 10 as esempio)
vuoi vedere quanto vale durante l’esecuzione
nel punto in cui vuoi controllare scrivi
System.DebugLog “Pippo vale:”+pippo.toText

In debug (selezionando nell’IDE il pulsante con il simbolo dell’RSS in basso) vedrai apparire:
Pippo vale:10

In esecuzione devi andare sui file di log, in particolare su iOS:
colleghi il device, apri da xCode la finestra dei Devices (Mela shift 2), aspetta che il device venga caricato, nella parte inferiore vedi i log del device, pulisci la pagina (cestino), avvia l’app e vedrai i tuoi log (o quelli generati dal sistema) tra cui Pippo vale:10

Qui dovresti trovare anche gli eventuali errori per la connessione (non usi l’evento error?)

Per informazioni più aggiornate sull’ATS (il plist che ti ho detto): https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33
cerca qui NSAppTransportSecurity

Il fatto che la versione precedente funzioni pu dipendere dal fatto di essere linkata con una versione diversa dell’SDK del sistema

Eccomi di nuovo,

ho messo un nel postsoket un event.error e sono riuscito ad avere un errore -1021 non riesco a capire cosa sia… ho fatto un po di ricerche e forse questo : https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html anche se non ne sono sicuro…

Ieri sera ho provato a collegare il dispositivo al mac ma mi diceva che mancava un certificato per installare l’app in locale… ho provato a generarlo ma non ci sono riuscito…per di pi ho rovinato il certificato developer… e ho creato un certo casino … tanto che xojo non compilava pi dicendomi che non trovava il device DFG1256DD… comunque stamattina ho risolto anche se non so bene come. (ho litigato spesso con i certificati developer.apple)
Sai se esiste una guida che spieghi per bene il percorso di generazione dei vari certificati (developer, distribution) e la sezione identifiers?

Questa sera ci riprovo a collegare il dispositivo ed installare l’app per vedere in debug perch non passa dal pagerecived

Per il momento sempre grazie per il tuo prezioso e paziente aiuto.
Enrico

Potrebbe essere un problema di DNS?
Comunque gli errori sono quelli del sistema iOS non del protocollo

Grazie Antonio,

prima di tutto Buon Anno!

Il problema l’ho risolto alla fine con il tuo primo post sulle eccezioni da inserire nel file plist, in attesa di riscrive la chiamata in HTTPS.

Sempre grazie del tuo preziosissimo aiuto.!
Enrico