Sembra che la directory per il simulatore iOS sia cambiata. Prima c'era ~/Library/Application\ Support/iPhone\ Simulator/
e ora è dentro ~/Library/Developer/CoreSimulator/Devices/
.
Sembra che la directory per il simulatore iOS sia cambiata. Prima c'era ~/Library/Application\ Support/iPhone\ Simulator/
e ora è dentro ~/Library/Developer/CoreSimulator/Devices/
.
Risposte:
Aggiornamento: Charles 3.9.3+ ha una funzione incorporata per configurare i tuoi simulatori iOS (cioè l'installazione del certificato SSL Charles). Questo può essere trovato nel menu Aiuto all'interno dell'applicazione Charles. ( Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators
)
Quanto segue si applica a Charles 3.9.2:
Scarica lo script della shell di configurazione dal sito Web di Charles Proxy . Quindi, sostituisci lo script con il seguente ed eseguilo sul tuo Mac:
#/bin/bash
install() {
if [ -f "$SQLITEDBPATH" ]; then
cp -n "$SQLITEDBPATH" "$SQLITEDBPATH.charlesbackup"
sqlite3 "$SQLITEDBPATH" <<EOF
INSERT INTO "tsettings" VALUES(X'189B6E28D1635F3A8325E1E002180DBA2C02C241',X'3123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A',X'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E0A3C21444F435459504520706C697374205055424C494320222D2F2F4170706C652F2F44544420504C49535420312E302F2F454E222022687474703A2F2F7777772E6170706C652E636F6D2F445444732F50726F70657274794C6973742D312E302E647464223E0A3C706C6973742076657273696F6E3D22312E30223E0A3C61727261792F3E0A3C2F706C6973743E0A',X'3082045E30820346A003020102020101300D06092A864886F70D01010505003081913123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A3020180F31383939313233313132303030305A170D3338303932343033313930355A3081913123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A30820122300D06092A864886F70D01010105000382010F003082010A02820101008349587455EFB272E397A31D3B52D9B13115C93F320766D2D451117F45C40285506027079ED439CABB94D44F1AE136EB1E79BF77ABE43345AD1D436809CF9E035C439272F3CA917DCADD7FBD0E3929F1A345F0B89096130BBD116F8D3AB5655789B7B0831325BD22903F198DA6BDDA30C08DFD17CE9AB51C48555264307BCF789A2B6C48DF4ECAF3EA2C092EE737AD8F397900AC03303BFE2AE43549030A7866CB6FE9B04B9F6EC498B4E7369E99B45491BF093858A77C72F8ADC818E018D413265E39446BE514F78EB57A23AA88F630776F861A9163E04AD38EE8A5C9219D0FC23F6B9A6324455DEA6F4A6A251ECA1FA3D6288CB89FD12A2062A3A015A56F250203010001A381BC3081B9300F0603551D130101FF040530030101FF307706096086480186F842010D046A136853534C2050726F7879696E6720697320656E61626C656420696E20436861726C65732050726F78792E20506C6561736520766973697420687474703A2F2F636861726C657370726F78792E636F6D2F73736C20666F72206D6F726520696E666F726D6174696F6E2E300E0603551D0F0101FF040403020204301D0603551D0E04160414BB27F4CB2EB6DBB058101BBD803F38D208D76129300D06092A864886F70D010105050003820101000041F935F30B209E56360F7E3D9C30314A213323C47EDCEA1467600A50FFE4E8E39DFCA8C8D34463C34745FF04C870F1DF28BB772DB0CF1BCA677B70842C742BC6D5FB00559AD643C6BF2C95BD0B855A961D7D6A3EADA9C642E9A789474C4AD838C6F732D8D859548D30829DF7A32D098FE3F00147DAF08C0B37DD597184C1E27A61EA42050C73994E809013CB21E37BF84BF923BCEFEA6164FD28AB9058CCC48F1F486FC1C47EBD8A9C933F542401B11F36A003E47B141A41C7B326D18D023E11EDB445699AA44800254EA33F174FD5EB1CCCE6A09365751FF905988C06315B5575067BF65EC24CAD1A6A601846D1D2F51F1F420A2762990B044000619D1C84');
EOF
fi
}
for SQLITEDBPATH in ~/Library/Developer/CoreSimulator/Devices/*/data/Library/Keychains/TrustStore.sqlite3; do
echo $SQLITEDBPATH
install
done
echo "The Charles SSL CA Certificate has been installed for the iPhone Simulator"
Alcune cose da notare:
Ho appena testato Charles sul simulatore Xcode 7 / iOS9. Solo alcuni suggerimenti che voglio aggiungere se hai problemi:
Secondo la documentazione di Charles
Il simulatore iOS dovrebbe utilizzare le impostazioni proxy di sistema. In caso contrario, prova a chiudere e a riavviare il simulatore iOS. A partire da Xcode 6, sembra importante che Charles sia in esecuzione e impostato come proxy di sistema di Mac OS X prima di eseguire il simulatore iOS.
Quindi esci dal simulatore, apri Charles e quindi esegui di nuovo l'app. Dopodiché puoi monitorare le tue chiamate di rete.
NOTA: le chiamate di rete falliranno se esci da Charles. Quindi dovrai chiudere il simulatore ed eseguirlo di nuovo o riaprire Charles.
Un altro modo per farlo è accedere al certificato http://charlesproxy.com/charles.crt sul dispositivo
che ti presenterà con lo schermo:
Aggiornamento per iOS 9: devi disabilitare App Transport Security per usare Charles!
http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
Non ho visto lo script della shell di configurazione in quella pagina. Ho fatto quanto segue e ha funzionato per me:
http://raptureinvenice.com/getting-the-charles-debugging-proxy-to-work-with-ios-and-gen”/
Controllalo:
A partire da Charles v3.9.3 c'è una voce nel menu Aiuto, "Installa il certificato SSL Charles CA nei simulatori iOS", che installerà automaticamente il certificato CA SSL di Charles nei tuoi simulatori iOS.
In alternativa, puoi modificare il codice in modo che NSURLConnection accetti qualsiasi certificato SSL. Si prega di consultare la domanda e la risposta su Stack Overflow: come utilizzare NSURLConnection per connettersi con SSL per un certificato non attendibile?
Puoi verificarlo su questo link: http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/
"Installa il certificato radice di Charles nei simulatori iOS" non funziona nella versione corrente di CharlesProxy (3.11) con i simulatori Xcode 7 / iOS 9.
Utilizza invece l'opzione "Installa certificato radice Charles su un dispositivo mobile o browser remoto ...". Questo ti darà un URL per il certificato.
Se apri questo URL in Safari nel simulatore, ti verrà data la possibilità di installare il certificato.
È comunque necessario disabilitare la sicurezza del trasporto delle app. Non capisco perché sia necessario quando hai il certificato installato; Immagino che CharlesProxy non utilizzi chiavi / firme sufficientemente grandi.
Per coloro che lottano con connessioni non affidabili sui simulatori di Xcode 9 beta:
Non so se lo script di installazione funziona o meno, ma puoi installare il certificato di charles allo stesso modo del dispositivo fisico, tramite Safari.
Ultimo passaggio necessario (ovviamente dopo aver installato il certificato tramite script o tramite Safari): vai alle impostazioni di Simluator -> generale -> informazioni su -> Impostazioni di affidabilità del certificato -> Charles Proxy Custom Root ... -> abilita 💥
Passaggi per il simulatore iOS.
Passaggi per iPhone / iPad.
Vai al menu Charles -> Aiuto -> Proxying SSL -> Installa il certificato Charles su un dispositivo mobile o browser remoto -> Seleziona -> viene visualizzato il popup con i passaggi seguenti `
Configura il tuo dispositivo per utilizzare Charles come proxy HTTP su 192.168.0.100:8888 , quindi naviga su chls.pro/ssl per scaricare e installare il certificato.
Vai alle impostazioni dell'iPhone -> Wifi -> fai clic sul wifi selezionato -> Http proxy -> Configura proxy -> seleziona Manuale -> Dai al server come 192.168.0.100 e porta come 8888 -> Salva
Vai al browser iPhone -> Carica chls.pro/ssl -> Verrà mostrato sotto il popup `
Il sito Web sta tentando di scaricare un profilo di configurazione. Lo vuoi consentire? Pulsante Ignora e pulsante Consenti
Fare clic sul pulsante Consenti -> Verrà scaricato il profilo
Per me, questo è ciò che ha funzionato.
Ho fatto la stessa cosa che facciamo nel dispositivo.
Devo farlo su 3 istanze del simulatore, poiché i test di automazione XCUI possono girare 3.