[ios] Xcode 6 (iOS 8) 시뮬레이터에서 Charles Proxy를 사용하는 방법은 무엇입니까?

iOS 시뮬레이터의 디렉토리가 변경된 것 같습니다. 이전에 였지만 ~/Library/Application\ Support/iPhone\ Simulator/지금은 ~/Library/Developer/CoreSimulator/Devices/.



답변

업데이트 : Charles 3.9.3+ 에는 iOS 시뮬레이터를 구성하는 기능이 내장되어 있습니다 (예 : Charles SSL 인증서 설치). Charles 응용 프로그램의 도움말 메뉴에서 찾을 수 있습니다. ( Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators)

다음은 Charles 3.9.2에 적용됩니다.

Charles Proxy 웹 사이트 에서 구성 셸 스크립트 를 다운로드합니다 . 그런 다음 스크립트를 다음으로 바꾸고 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"

참고할 사항 :

  • 시뮬레이터를 시작하기 전에 Charles를 열어야합니다. Charles를 닫으면 시뮬레이터를 다시 시작할 때까지 네트워크 요청이 실패합니다.
  • 시뮬레이터에서 “콘텐츠 및 설정 재설정 …”할 때마다이 작업을 수행해야합니다.
  • Xcode 5의 경우 Xcode 5 및 이전 버전에서 Charles Proxy를 설정하려는 경우 원본 스크립트를 수정할 필요가 없습니다. Charles 웹 사이트에서 다운로드하여 그대로 실행하십시오.


답변

방금 Charles를 Xcode 7 / iOS9 시뮬레이터에서 테스트했습니다. 문제가있는 경우 추가하고 싶은 몇 가지 지침 :

  • 확인 ” 맥 OS 프록시 사용 “과 ” 을 사용하여 HTTP 프록시 찰스 ‘프록시에서 확인됩니다”| 프록시 설정; Charles를 시작할 때마다이 단계를 수행하지 않으려면 ” 시작시 Mac OS X 프록시 활성화 “를 선택적으로 선택 합니다.
  • 귀하의 경우 자동 프록시 구성 (및 / 또는 자동 프록시 검색은 ) 당신의 시스템 환경 설정에서 설정 | 네트워크의 경우 Charles의 웹 프록시 (HTTP) 및 보안 웹 프록시 (HTTPS)가 적용되지 않도록 선택 취소해야합니다.
  • 회사에 Charles와 독립적 인 프록시 서버가 필요한 경우 Charles에 의해 재정의되어 인터넷에 액세스 할 수 없도록 Charles 내부 설정을 수동으로 복제해야합니다. Charles를 시작하기 전에 프록시 URL과 포트 번호를 기록해 둡니다. 이러한 웹 프록시보안 웹 프록시 설정을 Charles ‘Proxy | 외부 프록시 설정.
  • Enable SSL Proxying “을 선택하고 Charles의 Proxy를 통해 목록에 엔드 포인트를 추가합니다. SSL 프록시 설정.
  • iOS 시뮬레이터에서 찰스 루트 인증서를 설치 찰리의 도움말을 통해”| SSL 프록시 메뉴.
  • 그리고 예, 시뮬레이터를 시작하기 전에 Charles가 설정되고 시작되었는지 확인하십시오.
  • 마지막으로, Apple로부터 더 많은 소식을들을 때까지 개발 중에 ATS를 비활성화하십시오.


답변

Charles 문서에 따르면

iOS 시뮬레이터는 시스템 프록시 설정을 사용해야합니다. 그렇지 않으면 iOS 시뮬레이터를 종료하고 다시 시작하십시오. Xcode 6부터는 iOS 시뮬레이터를 실행하기 전에 Charles가 실행 중이고 Mac OS X 시스템 프록시로 설정되어 있어야합니다.

여기에서 읽으십시오

따라서 시뮬레이터를 종료하고 charles를 연 다음 앱을 다시 실행하십시오. 그 후에 네트워크 통화를 추적 할 수 있습니다.

참고 : Charles를 종료하면 네트워크 호출이 실패합니다. 따라서 시뮬레이터를 종료하고 다시 실행하거나 Charles를 다시 열어야합니다.


답변

이를 수행하는 또 다른 방법 은 장치에서 http://charlesproxy.com/charles.crt 인증서를 검색하는 것입니다.

화면이 표시됩니다.

인증서 프롬프트 설치 화면


답변

iOS 9 업데이트 : Charles를 사용하려면 App Transport Security를 ​​비활성화해야합니다!

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


답변

해당 페이지에서 구성 셸 스크립트를 보지 못했습니다. 나는 다음을 수행했고 그것은 나를 위해 일했습니다.

http://raptureinvenice.com/getting-the-charles-debugging-proxy-to-work-with-ios-and-genymotion/


답변

이것 좀 봐:

Charles v3.9.3부터 도움말 메뉴에 “iOS 시뮬레이터에 Charles CA SSL 인증서 설치”항목이 있습니다.이 항목은 iOS 시뮬레이터에 Charles의 SSL CA 인증서를 자동으로 설치합니다.

또는 NSURLConnection이 모든 SSL 인증서를 허용하도록 코드를 변경할 수 있습니다. Stack Overflow : How to use NSURLConnection to connect with SSL for an untrusted cert? 에 대한 질문과 답변을 참조하십시오
.

다음 링크에서 확인할 수 있습니다. http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/