84 votes

Comment utiliser Charles Proxy sur le simulateur Xcode 6 (iOS 8) ?

Il semble que le répertoire du Simulateur iOS ait changé. Il se trouvait auparavant dans ~/Library/Application\ Support/iPhone\ Simulator/ et maintenant c'est dans ~/Library/Developer/CoreSimulator/Devices/ .

121voto

jonsibley Points 1916

Mise à jour : Charles 3.9.3+ dispose d'une fonction intégrée pour configurer vos simulateurs iOS (c'est-à-dire installer le certificat SSL de Charles). Cette fonction se trouve dans le menu Aide de l'application Charles. ( Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators )

Ce qui suit s'applique à Charles 3.9.2 :

Télécharger le configuration shell script de la Site web de Charles Proxy . Remplacez ensuite le script par ce qui suit, et exécutez-le sur votre 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"

Quelques points à noter :

  • vous devez ouvrir Charles avant de lancer le simulateur. Si vous fermez Charles, les demandes de réseau échoueront jusqu'à ce que vous redémarriez le simulateur.
  • vous devrez le faire à chaque fois que vous réinitialiserez le contenu et les paramètres du simulateur.
  • Pour Xcode 5 : si vous cherchez à installer Charles Proxy sur Xcode 5 et antérieur, vous n'avez pas besoin de modifier le script original. Il suffit de le télécharger depuis le site web de Charles et de l'exécuter tel quel.

4 votes

Fonctionne après avoir redémarré le simulateur.

9 votes

Votre réponse semble résoudre le problème des requêtes SSL, mais le problème principal pourrait être que Charles ne gère pas les requêtes provenant du simulateur iOS 8.0/Xcode6.

1 votes

Je pense que le script a été déplacé ici : charlesproxy.com/documentation/faqs/ (et en lisant la source, il semble qu'il ait été mis à jour de la manière que vous suggérez)

35voto

Hampden123 Points 146

Je viens de tester Charles sur le simulateur Xcode 7 / iOS9. Juste quelques points à ajouter si vous avez des problèmes :

  • Assurez-vous que " Activer le proxy Mac OS " et " Utiliser un proxy HTTP "sont cochés sous Charles' Proxy | Proxy Settings ; et optionnellement, cochez " Activer Mac OS X au démarrage " si vous ne voulez pas faire cette étape à chaque fois que vous chaque fois que vous démarrez Charles.
  • Si votre Configuration automatique du proxy (et/ou Découverte automatique du proxy ) est défini dans votre système Préférences du système | Réseau, vous devez le décocher pour éviter que Charles' Web Proxy (HTTP) et Secure Web Proxy (HTTPS) ne prendraient pas effet.
  • Si votre entreprise a besoin d'un serveur proxy indépendant de Charles, vous devez devez reproduire manuellement les paramètres à l'intérieur de Charles, de peur qu'ils ne soient remplacés par Charles et que vous ne puissiez pas accéder à l'internet. Notez l'URL du proxy et les numéros de port avant de démarrer Charles. Transcrivez-les Web Proxy y Proxy Web sécurisé paramètres sous Procuration de Charles | Externe Paramètres du proxy.
  • " Activer le proxy SSL "et ajoutez votre point de terminaison à la liste, via la page de Charles intitulée Proxy | SSL Proxying Settings.
  • " Installer le certificat racine Charles dans le simulateur iOS "via le menu Aide de Charles | Menu Proxy SSL.
  • Et oui, assurez-vous d'abord que Charles est installé et démarré avant de vous lancer dans l'aventure. avant de démarrer le simulateur.
  • Enfin, pour l'instant, désactivez l'ATS pendant le développement jusqu'à ce que nous en sachions plus. de la part d'Apple.

17voto

iHulk Points 4859

Selon la documentation de Charles

Le simulateur iOS doit utiliser les paramètres proxy du système. Si ce n'est pas le cas, essayez de quitter et de redémarrer le simulateur iOS. Depuis Xcode 6, il semble important que Charles soit en cours d'exécution et défini comme proxy système Mac OS X avant que vous ne lanciez le simulateur iOS.

Lire ici

Il suffit donc de quitter le simulateur, d'ouvrir Charles et de relancer l'application. Après cela, vous pouvez suivre vos appels réseau.

NOTE : Vos appels au réseau échoueront si vous quittez Charles. Vous devrez donc soit quitter le simulateur et le relancer, soit rouvrir Charles.

12voto

user1307434 Points 41

Une autre façon de le faire est de naviguer jusqu'au certificat http://charlesproxy.com/charles.crt sur le dispositif

qui vous présentera l'écran :

install certificate prompt screen

0 votes

J'ai essayé cette méthode, mais elle ne permet pas non plus de charger le site sécurisé lorsque le serveur local est utilisé. Quelqu'un peut-il m'éclairer sur la façon de résoudre ce problème ?

1 votes

Essayez de naviguer avec Safari pour voir s'il y a un problème avec le certificat. Pour ce faire, cliquez sur le symbole du cadenas de votre site web. Fenêtre de dialogue du certificat Safari . Je soupçonne que vous utilisez un certificat auto-signé et que vous devez installer le certificat client sur votre machine. Vous pouvez le faire dans Safari en choisissant Confiance -> "toujours autoriser".

0 votes

J'ai dû le faire pour me débarrasser des erreurs d'échange SSL.

4voto

Ethical Paul Points 666

Mise à jour pour iOS 9 : vous devez désactiver App Transport Security pour utiliser Charles !

http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X