Xcode 6 (iOS 8) Simülatöründe Charles Proxy nasıl kullanılır?


84

Görünüşe göre iOS Simulator dizini değişmiş. Eskiden içindeydi ~/Library/Application\ Support/iPhone\ Simulator/ve şimdi içeride ~/Library/Developer/CoreSimulator/Devices/.

Yanıtlar:


121

Güncelleme: Charles 3.9.3+ , iOS Simülatörlerinizi yapılandırmak için yerleşik bir işleve sahiptir (yani Charles SSL Sertifikasını yüklemek). Bu, Charles uygulaması içindeki Yardım menüsünde bulunabilir. ( Help > SSL Proxying > Install Charles Root Certificate in iOS Simulators)

Aşağıdakiler Charles 3.9.2 için geçerlidir:

İndir yapılandırma shell script gelen Charles Vekil web . Ardından, komut dosyasını aşağıdakiyle değiştirin ve Mac'inizde çalıştırın:

#/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"

Dikkat edilmesi gereken bazı noktalar:

  • simülatörü başlatmadan önce Charles'ı açmalısınız. Charles'ı kapatırsanız, simülatörü yeniden başlatana kadar ağ istekleri başarısız olur.
  • simülatörde her "İçeriği ve Ayarları Sıfırla ..." yaptığınızda bunu yapmanız gerekecek
  • Xcode 5 için: Charles Proxy'yi Xcode 5 ve öncesinde kurmak istiyorsanız, orijinal betiği değiştirmeniz gerekmez. Charles web sitesinden indirin ve olduğu gibi çalıştırın

4
Simülatörü yeniden başlattıktan sonra çalışır.
avdyushin

9
Yanıtınız, SSL isteği sorununu çözmüş gibi görünüyor. ancak asıl sorun Charles'ın iOS simülatörü 8.0 / Xcode6'dan gelen herhangi bir isteği işlemez olması olabilir. Bunu nasıl düzelteceğinizi biliyor musunuz?
aelam

1
Sanırım komut dosyası buraya taşındı: charlesproxy.com/documentation/faqs/… (ve kaynağı okurken önerdiğiniz şekilde güncellenmiş gibi görünüyor)
Ian Dundas

1
Bunu takip ettim ancak terminalde hata görüyorum - EŞSİZ kısıtlama başarısız oldu: tsettings.sha1
Beta

1
Bilginize- Bu yanıtı, Charles 3.9.3'ü indirme talimatlarını içerecek şekilde güncelledim, sertifika kurulumunu bir komut dosyasına ihtiyaç duymak yerine Yardım menüsünden yapar.
codeperson

35

Charles'ı Xcode 7 / iOS9 simülatörü üzerinden test ettim. Sorun yaşıyorsanız eklemek istediğim birkaç işaret:

  • Charles 'Proxy | altında " Mac OS proxy'sini etkinleştir " ve " HTTP Proxy Kullan " ın işaretli olduğundan emin olun Vekil sunucu Ayarları; Charles'ı her başlattığınızda bu adımı yapmak istemiyorsanız isteğe bağlı olarak " Başlangıçta Mac OS X proxy'yi etkinleştir " seçeneğini işaretleyin.
  • Senin Eğer Otomatik Proxy Yapılandırması (ve / veya Otomatik Proxy bulma ) Sistem Tercihleri'nde ayarlanır | Ağ, Charles'ın Web Proxy'si (HTTP) ve Güvenli Web Proxy'si (HTTPS) etkili olmayacağı için işaretini kaldırmanız gerekir.
  • Şirketiniz Charles'tan bağımsız bir proxy sunucusuna ihtiyaç duyuyorsa, Charles tarafından geçersiz kılınmaları ve internete erişemeyeceğiniz için Charles içindeki ayarları manuel olarak kopyalamanız gerekir. Charles'ı başlatmadan önce proxy URL'sini ve bağlantı noktası numaralarını not edin. Bu Web Proxy ve Güvenli Web Proxy ayarlarını Charles 'Proxy | Harici Proxy Ayarları.
  • " SSL Proxy'yi Etkinleştir " ve uç noktanızı Charles 'Proxy aracılığıyla listeye ekleyin | SSL Proxy Ayarları.
  • " İOS Simülatörü Charles Kök Sertifikası Yükle Charles'ın Yardım aracılığıyla" | SSL Proxying menüsü.
  • Ve evet, simülatörü başlatmadan önce Charles'ın kurulduğundan ve başladığından emin olun.
  • Son olarak, Apple'dan daha fazlasını duyana kadar geliştirme sırasında ATS'yi devre dışı bırakın.

"Son olarak, Apple'dan daha fazlasını duyana kadar geliştirme sırasında ATS'yi devre dışı bırakın." - Yukarıdaki diğer cevaplarda eksik olan nokta açık.
Mark Gibaud

Teşekkürler! Bunu Charles'ın web sitesine koymalılar!
Rudolf J

Charles, 3.11.4 sürümünden itibaren App Transport Security'yi (ATS) desteklemektedir.
Marián Černý

1
Otomatik Proxy Yapılandırmasının işaretini kaldırmak için +1 . Şirket ağ ortamında bir .pac dosyam var ve bu nedenle simülatörün trafiği Charles'ta görünmeyebilir.
iplus26

Charles 'Proxy | Proxy Ayarları "altında" Mac OS proxy'sini etkinleştir "ve" HTTP Proxy Kullan "ın işaretlendiğinden emin olun . Bu bana yardımcı olur. Teşekkürler!
S. Matsepura

17

Charles belgelerine göre

İOS Simulator, sistem proxy ayarlarını kullanmalıdır. Başlamazsa, lütfen iOS Simulator'dan çıkıp yeniden başlatmayı deneyin. Xcode 6'dan itibaren, siz iOS Simulator'u çalıştırmadan önce Charles'ın Mac OS X sistem proxy'si olarak çalışıyor olması ve ayarlanması önemli görünmektedir.

Burayı oku

Simülatörünüzden çıkın, Charles'ı açın ve ardından uygulamayı tekrar çalıştırın. Bundan sonra ağ aramalarınızı takip edebilirsiniz.

NOT: Charles'tan çıkarsanız ağ çağrılarınız başarısız olacaktır. Bu yüzden ya simülatörden çıkmanız ve tekrar çalıştırmanız ya da Charles'ı tekrar açmanız gerekecek.


1
Bir "otomatik yapılandırma" proxy URL kümeniz varsa, Charles Proxy'nin çalışmayacağını buldum. Otomatik yapılandırma URL'sinin manuel proxy ayarlarını geçersiz kıldığı görülüyor. Otomatik yapılandırma URL'sinin kaldırılması ve manuel ayarların (benim durumumda kimlik bilgileriyle birlikte) belirtilmesi, Charles'ın ayarları yeniden yapılandırmasına izin verdi ve çalıştı .. iOS Simulator'u (7.1) yeniden başlatmadan bile.
Sean Aitken

12

Bunu yapmanın başka bir yolu da http://charlesproxy.com/charles.crt sertifikasına göz atmaktır. , cihazdaki .

size ekranı sunacak:

sertifika istemi ekranı


Bu yöntemi denedim, ancak yerel sunucuyu çalıştırırken güvenli siteyi de yükleyemedim. Bu konuyla nasıl başa çıkılacağına ışık tutan var mı?
Ganesh Pandhere

1
Sertifikada bir sorun olup olmadığını görmek için Safari'yi kullanarak göz atmayı deneyin. Bunu yapmak için web sitenizin kilit sembolüne tıklayın. Safari sertifikası iletişim penceresi . Kendinden imzalı bir sertifika kullandığınızdan ve istemci sertifikasını makinenize yüklemeniz gerektiğinden şüpheleniyorum. Bu, Safari aracılığıyla ve Güven -> 'her zaman izin ver' seçilerek sağlanabilir.
user1307434

SSL El Sıkışma hatalarından kurtulmak için bunu yapmak zorunda kaldım.
Will Larche



2

Şuna bir bak:

Charles v3.9.3'ten itibaren, Yardım menüsünde, Charles'ın SSL CA sertifikasını iOS Simülatörlerine otomatik olarak yükleyecek olan "iOS Simülatörlerine Charles CA SSL Sertifikası Yükle" adlı bir öğe vardır.

Alternatif olarak, NSURLConnection'ın herhangi bir SSL sertifikasını kabul etmesi için kodunuzu değiştirebilirsiniz. Lütfen Stack Overflow'daki soruya ve cevaba bakın: Güvenilmeyen bir sertifika için SSL ile bağlanmak için NSURLConnection nasıl kullanılır?

Bu bağlantıdan kontrol edebilirsiniz: http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/


2

CharlesProxy'nin (3.11) Xcode 7 / iOS 9 simülatörleri ile mevcut sürümünde 'iOS simülatörlerinde Install Charles Root Certificate' çalışmaz.

Bunun yerine, 'Charles Kök Sertifikasını Bir Mobil Cihaza veya Uzak Tarayıcıya Kur ...' seçeneğini kullanın. Bu size sertifika için bir url verecektir.

Bu url'yi simülatörde Safari'de açarsanız, size sertifikayı yükleme seçeneği sunulur.

Yine de uygulama taşıma güvenliğini devre dışı bırakmanız gerekir. Sertifikayı yüklediğinizde bunun neden gerekli olduğunu anlamıyorum; Sanırım CharlesProxy yeterince büyük anahtarlar / imzalar kullanmıyor.


Hiçbir şey değilse, sertifika kendi kendine imzalanır ve kesinlikle Apple'ın ATS gerekliliklerine uymaz. İlk adım, Charles'ın sertifikasının onaylanmış bir Sertifika Otoritesi tarafından imzalanmasıdır, ancak lojistik bir yana, paraya mal olacak. Alanın ayrıca halka açık olması gerekir. Vb Vb. Mümkün olsa bile kolay olmayacak.
Hampden123

@ Hampden123 Bildiğim kadarıyla, Apple'ın Uygulama Taşıma Güvenliği mekanizması, güvenilir bir sertifika olarak iOS cihazına doğru bir şekilde yüklendiği sürece kendinden imzalı bir sertifikaya izin veriyor - bu yüzden charlesproxy'nin ATS'nin farklı bir nedenle devre dışı bırakılmasına ihtiyaç duyduğuna inanıyorum. Yine de bunu kontrol etmek için şu anda Apple ATS belgelerine erişemiyorum.
JosephH

Siz (veya herhangi biri) ATS'yi devre dışı bırakmadan bir iOS 9 cihazına kendi kendine imzalanan sertifika sunmayı başardıysanız, lütfen bunu nasıl yaptığınızı bana bildirin. TIA!
Hampden123

1

Simülatörü Charles başladıktan sonra (yeniden) başlatmak benim için düzeltdi.


1

Xcode 9 betanın simülatörlerinde güvenilmeyen bağlantılarla mücadele edenler için:

Kurulum komut dosyasının çalışıp çalışmadığını bilmiyorum, ancak charles sertifikasını fiziksel cihazda olduğu gibi Safari aracılığıyla yükleyebilirsiniz.

Gerekli olan son adım (tabii ki sertifikayı komut dosyası veya Safari aracılığıyla yükledikten sonra): Simluator'un ayarlarına gidin -> genel -> hakkında -> Sertifika güven ayarları -> Charles Proxy Özel Kök ... -> etkinleştir 💥


1

İOS simülatörü için adımlar.

  • Charles'ı yükleyin - indirin
  • Charles Menüsü -> Proxy -> Mac Proxy'yi Etkinleştir
  • Charles Menüsü -> Araçlar -> Proxy -> Proxy Ayarları -> MacOS -> Tüm onay kutularını işaretleyin
  • Charles Sertifikasını iOS simülatörlerine yükleyin
  • Charles Menüsü -> Yardım -> SSL Proxy Oluşturma -> Charles Ceritificate'ı iOS Simülatörlerine Yükleyin
  • İOS Simülatörlerinde Charles Sertifikasını etkinleştirin
  • iOS Simülatörleri Ayarları -> Genel -> Hakkında -> Sertifika Güven Ayarları ->
  • Trafik görünmüyorsa, simülatörden önce Charles'ı çalıştırın

İPhone / iPad için adımlar.

  • Masaüstü Charles uygulamasını açın (Mac / Windows)
  • Goto Charles Menüsü -> Yardım -> SSL Proxy Verme -> Charles Ceritificate'ı bir Mobil cihaza veya Uzak tarayıcıya yükleyin -> Seç -> aşağıdaki adımlarla birlikte açılır pencere görünür `

    Cihazınızı 192.168.0.100:8888'de HTTP Proxy'si olarak Charles'ı kullanacak şekilde yapılandırın , ardından sertifikayı indirip yüklemek için chls.pro/ssl adresine göz atın .

  • İPhone ayarlarına gidin -> Wifi -> seçili wifi'ye tıklayın -> Http proxy -> Proxy yapılandır -> Manuel'i seçin -> Sunucuya 192.168.0.100 olarak ve bağlantı noktasını 8888 olarak ver -> Kaydet

  • İPhone tarayıcısına git -> chls.pro/ssl yükle -> Aşağıdaki açılır pencereyi gösterecek ''

    Web sitesi bir konfigürasyon profili indirmeye çalışıyor. Buna izin vermek ister misin? Yoksay düğmesi ve İzin Ver düğmesi

  • Tıklayın izin ver > Bu profili indirecektir - Düğme

  • İPhone Ayarlarına Git -> Genel -> Profiller -> İndirilen Profil -> Charles Proxy profilini seçin -> Yükle
  • İPhone Ayarları -> Genel -> Hakkında -> Sertifika Güven Ayarları -> Etkinleştir - Charles Proxy CA sertifikası
  • Artık iPhone uygulaması çağrılarını masaüstü Charles uygulamasında takip edebiliriz

1
iOS Simülatörleri Ayarlar -> Genel -> Hakkında -> Sertifika Güven Ayarları -> İhtiyacım olanı Açın teşekkürler!
atalayasa

0

Bana göre işe yarayan buydu.

Cihazda yaptığımızın aynısını yaptım.

  1. Safari'yi açın ve chls.pro/ssl'ye göz atın
  2. Sertifikayı kabul edin ve yükleyin
  3. Ayarlar / Hakkında / Güven sertifikalarına gidin ve charles sertifikasına güvenin.

XCUI otomasyon testi 3'ü döndürebildiğinden, bunu 3 simülatör örneğinde yapmam gerekiyor.


0

Safari'ye (simülatör) gittikten ve URL'yi ziyaret ettikten sonra benim için çalışıyor:

chls.pro/ssl 

İOS simülatörlerine Charles kök sertifikası yüklemem gerekmeden önce (Charles: help / SSLproxying)

Saygılarımızla

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.