Il semble que le répertoire du simulateur iOS ait changé. C'était jadis en ~/Library/Application\ Support/iPhone\ Simulator/
et maintenant c'est dans ~/Library/Developer/CoreSimulator/Devices/
.
Mise à jour: Charles 3.9.3 + possède une fonction intégrée pour configurer vos simulateurs iOS (c'est-à-dire 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 de configuration à partir du site Web Charles Proxy . Ensuite, remplacez le script par le suivant 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 un simulateur Xcode 7/iOS9. Quelques remarques à ajouter si vous rencontrez des difficultés:
Selon 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 soit en cours d'exécution et défini en tant que proxy système Mac OS X avant d'exécuter le simulateur iOS.
Alors, quittez simplement votre simulateur, ouvrez charles, puis relancez l’application. Après cela, vous pouvez suivre vos appels sur le réseau.
REMARQUE: Vos appels réseau échoueront si vous quittez Charles. Vous devrez donc soit quitter le simulateur et le réexécuter, soit ouvrir à nouveau Charles.
Une autre façon de le faire est de parcourir le certificat http://charlesproxy.com/charles.crt sur le périphérique
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/
Le 'Installer le certificat racine Charles dans des 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 périphérique 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 encore désactiver la sécurité du transport d'applications. Je ne comprends pas pourquoi cela est nécessaire lorsque le certificat est installé. Je suppose que CharlesProxy n'utilise pas suffisamment de clés/signatures.
Je n'ai pas vu le script 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/
Vérifiez ceci:
Depuis la version v3.9.3 de Charles, un élément du menu Aide, "Installer le certificat SSL Charles CA dans des simulateurs iOS", installera automatiquement le certificat SSL de Charles Charles sur vos simulateurs iOS.
Vous pouvez également modifier votre code pour que NSURLConnection accepte tout certificat SSL. Veuillez consulter la question et la réponse sur le dépassement de pile: Comment utiliser NSURLConnection pour se connecter à SSL pour un certificat non approuvé?
Vous pouvez le vérifier sur ce lien: http://www.charlesproxy.com/documentation/faqs/ssl-connections-from- dans-iphone-applications /
Le fait de (re) démarrer le simulateur après que Charles ait commencé commence à le réparer pour moi.
Pour ceux qui luttent 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 périphérique physique - via Safari.
Dernière étape nécessaire (bien sûr après l'installation du certificat via un script ou via Safari): Accédez aux paramètres de Simluator -> général - - à propos de -> paramètres de confiance du certificat -> racine personnalisée du proxy Charles ... -> enable ????
Pour moi, c'est ce qui a fonctionné.
J'ai fait la même chose que nous en appareil.
Je dois le faire sur 3 instances de simulateur, car les tests d’automatisation XCUI peuvent tourner 3.