proxying not locations for enabled enable ios ios8 xcode6 ios-simulator charles
script de shell de configuración

ios - not - charles proxy android



¿Cómo usar Charles Proxy en el simulador de Xcode 6(iOS 8)? (10)

Parece que el directorio del simulador de iOS ha cambiado. Solía ​​estar en ~/Library/Application/ Support/iPhone/ Simulator/ y ahora está en ~/Library/Developer/CoreSimulator/Devices/ .


Acabo de probar a Charles con el simulador Xcode 7 / iOS9. Solo algunos consejos que quiero agregar si tiene problemas:

  • Asegúrese de que " Enable Mac OS proxy " y " Use HTTP Proxy " estén marcados en Charles ''Proxy | Configuración de proxy; y opcionalmente marque " Habilitar proxy Mac OS X al inicio " si no desea hacer este paso cada vez que inicie Charles.
  • Si su Configuración de Proxy Automática (y / o Auto Proxy Discovery ) está configurada en las Preferencias del Sistema | Red, debe desmarcarlo para evitar que el Web Proxy (HTTP) y Secure Web Proxy (HTTPS) de Charles no surtan efecto.
  • Si su empresa requiere un servidor proxy independiente de Charles, debe replicar manualmente la configuración dentro de Charles, no sea que Charles los invalide y no podrá acceder a Internet. Anote la dirección URL proxy y los números de puerto antes de iniciar Charles. Transcriba estas configuraciones Proxy Web y Secure Web Proxy bajo el Proxy de Charles | Configuración de Proxy externo.
  • " Habilite SSL Proxying " y agregue su endpoint en la lista, a través del Proxy de Charles | Configuración de proxy SSL.
  • " Instalar Charles Root Certificate en iOS Simulator " a través de la ayuda de Charles | Menú de proxy de SSL.
  • Y sí, asegúrese de que Charles esté configurado y comience primero antes de iniciar el simulador.
  • Finalmente, por ahora, deshabilite ATS durante el desarrollo hasta que escuchemos más de Apple.


De acuerdo con la documentación de Charles

El simulador de iOS debe usar la configuración de proxy del sistema. Si no es así, intente salir y reiniciar el simulador de iOS. A partir de Xcode 6, parece importante que Charles se esté ejecutando y configurado como el proxy del sistema Mac OS X antes de ejecutar el simulador de iOS.

Leer aquí

Así que solo cierre su simulador, abra charles y luego vuelva a ejecutar la aplicación. Después de eso puedes rastrear tus llamadas de red.

NOTA: Sus llamadas a la red fallarán si abandona a Charles. Por lo tanto, deberá abandonar el simulador y ejecutarlo de nuevo o abrir Charles nuevamente.


El ''Install Charles Root Certificate in iOS simulators'' no funciona en la versión actual de CharlesProxy (3.11) con los simuladores Xcode 7 / iOS 9.

En su lugar, use la opción ''Instalar el certificado de raíz de Charles en un dispositivo móvil o navegador remoto ...''. Esto le dará una url para el certificado.

Si abre esta url en Safari en el simulador, se le dará la opción de instalar el certificado.

Todavía necesita desactivar la seguridad de transporte de la aplicación. No entiendo por qué es necesario cuando tienes el certificado instalado; Supongo que CharlesProxy no usa claves / firmas suficientemente grandes.




Para aquellos que luchan con conexiones no confiables en los simuladores de Xcode 9 beta:

No sé si el script de instalación funciona o no, pero puede instalar el certificado de Charles de la misma manera que en el dispositivo físico, a través de Safari.

Último paso que se necesita (por supuesto, después de instalar el certificado, ya sea mediante script o mediante Safari): vaya a la configuración de Simluator -> general -> sobre -> configuración de confianza del certificado -> Charles Proxy Custom Root ... -> habilite 💥


Simplemente (re) iniciar el simulador después de que Charles comienza a arreglarlo por mí.


Actualización: Charles 3.9.3+ tiene una función integrada para configurar sus simuladores iOS (es decir, la instalación del Certificado Charles SSL). Esto se puede encontrar en el menú de Ayuda dentro de la aplicación Charles. ( Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators )

Lo siguiente aplica a Charles 3.9.2:

Descargue el script de shell de configuración del sitio web de Charles Proxy . Luego, reemplace el script con lo siguiente y ejecútelo en su 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"

Algunas cosas a tener en cuenta:

  • debes abrir a Charles antes de lanzar el simulador. Si cierra Charles, las solicitudes de red fallarán hasta que reinicie el simulador
  • tendrás que hacer esto cada vez que "Restablezca el contenido y la configuración ..." en el simulador
  • Para Xcode 5: si está buscando configurar Charles Proxy en Xcode 5 y versiones anteriores, no necesita modificar el script original. Solo descárguelo del sitio web de Charles y ejecútelo tal cual

Mira esto:

A partir de Charles v3.9.3, hay un elemento en el menú Ayuda, "Instalar el Certificado SSL Charles CA en Simuladores iOS", que instalará automáticamente el certificado CA de Charles en sus Simuladores iOS.

Alternativamente, puede cambiar su código para que NSURLConnection acepte cualquier certificado SSL. Consulte la pregunta y respuesta en : ¿Cómo usar NSURLConnection para conectarse con SSL para un certificado que no es de confianza?

Puede consultarlo en este enlace: http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/