Il semble que le répertoire du simulateur iOS ait changé. Il était dans ~/Library/Application\ Support/iPhone\ Simulator/
et maintenant il est ~/Library/Developer/CoreSimulator/Devices/
.
Il semble que le répertoire du simulateur iOS ait changé. Il était dans ~/Library/Application\ Support/iPhone\ Simulator/
et maintenant il est ~/Library/Developer/CoreSimulator/Devices/
.
Réponses:
Mise à jour: Charles 3.9.3+ a une fonction intégrée pour configurer vos simulateurs iOS (c.-à-d. Installer le certificat SSL Charles). Cela 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échargez le script shell de configuration à partir du site Web Charles Proxy . Ensuite, remplacez 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:
Je viens de tester Charles sur le simulateur Xcode 7 / iOS9. Juste quelques conseils que je souhaite ajouter si vous rencontrez des problèmes:
D'après la documentation de Charles
Le simulateur iOS doit utiliser les paramètres de proxy du système. Si ce n'est pas le cas, essayez de quitter et de redémarrer le simulateur iOS. À partir de Xcode 6, il semble important que Charles s'exécute et soit défini comme proxy système Mac OS X avant d'exécuter le simulateur iOS.
Alors quittez simplement votre simulateur, ouvrez charles, puis exécutez à nouveau l'application. Après cela, vous pouvez suivre vos appels réseau.
REMARQUE: vos appels réseau échoueront si vous quittez Charles. Vous devrez donc soit quitter le simulateur et le relancer, soit rouvrir Charles.
Une autre façon de le faire consiste à accéder au certificat http://charlesproxy.com/charles.crt sur l'appareil
qui vous présentera l'écran:
Mise à jour pour iOS 9: vous devez désactiver App Transport Security pour utiliser Charles!
http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
Je n'ai pas vu le script shell de configuration sur cette page. J'ai fait ce qui suit et cela a fonctionné pour moi:
http://raptureinvenice.com/getting-the-charles-debugging-proxy-to-work-with-ios-and-genymotion/
Regarde ça:
Depuis Charles v3.9.3, il y a un élément dans le menu Aide, "Installer le certificat SSL de Charles CA dans les simulateurs iOS", qui installera automatiquement le certificat SSL CA de Charles dans vos simulateurs iOS.
Vous pouvez également modifier votre code afin que NSURLConnection accepte n'importe quel certificat SSL. Veuillez consulter la question et la réponse sur Stack Overflow: Comment utiliser NSURLConnection pour se connecter avec SSL pour un certificat non approuvé?
Vous pouvez le vérifier sur ce lien: http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/
L'installation du certificat racine Charles dans les simulateurs iOS ne fonctionne pas dans la version actuelle de CharlesProxy (3.11) avec les simulateurs Xcode 7 / iOS 9.
À la place, utilisez l'option «Installer le certificat racine Charles sur un appareil mobile ou un navigateur distant ...». Cela vous donnera une URL pour le certificat.
Si vous ouvrez cette URL dans Safari dans le simulateur, vous aurez alors la possibilité d'installer le certificat.
Vous devez toujours désactiver la sécurité du transport des applications. Je ne comprends pas pourquoi cela est nécessaire lorsque le certificat est installé; Je suppose que CharlesProxy n'utilise pas de clés / signatures suffisamment grandes.
Pour ceux qui sont aux prises avec des connexions non fiables sur les simulateurs de Xcode 9 beta:
Je ne sais pas si le script d'installation fonctionne ou non, mais vous pouvez installer le certificat de charles de la même manière que sur un appareil physique - via Safari.
Dernière étape nécessaire (bien sûr après l'installation du certificat via un script ou via Safari): Allez dans les paramètres de Simluator -> général -> à propos -> Paramètres de confiance du certificat -> Charles Proxy Custom Root ... -> activer 💥
Étapes pour le simulateur iOS.
Étapes pour iPhone / iPad.
Aller au menu Charles -> Aide -> SSL Proxying -> Installer Charles Ceritificate sur un appareil mobile ou un navigateur distant -> Sélectionner -> une fenêtre contextuelle apparaît avec les étapes ci-dessous `
Configurez votre appareil pour utiliser Charles comme proxy HTTP sur 192.168.0.100:8888 , puis naviguez sur chls.pro/ssl pour télécharger et installer le certificat.
Accédez aux paramètres de l'iPhone -> Wifi -> cliquez sur le wifi sélectionné -> Proxy Http -> Configurer le proxy -> sélectionnez Manuel -> Donner le serveur comme 192.168.0.100 et portez comme 8888 -> Enregistrer
Aller au navigateur iPhone -> Charger chls.pro/ssl -> Il apparaîtra ci-dessous popup `
Le site Web tente de télécharger un profil de configuration. Voulez-vous autoriser cela? Bouton Ignorer et bouton Autoriser
Cliquez sur le bouton Autoriser -> Il téléchargera le profil
Pour moi, c'est ce qui a fonctionné.
J'ai fait la même chose que nous faisons dans l'appareil.
Je dois le faire sur 3 instances de simulateur, car les tests d'automatisation XCUI peuvent en tourner 3.