2014-11-26 3 views
7

Я пытаюсь проверить трафик http (non-SSL) с использованием XCode 6.1 и iOS Simulator 8.1 с использованием Charles и моего сервера apache localhost.Xcode Charles (HTTP Proxy) не фиксирует трафик localhost

У меня есть Чарльз работает правильно, но он только фиксирует трафик, когда я использую свой IP-адрес локальной сети: 192.168.1.X в качестве целевого хоста для запросов в iOS.

Я пробовал другие предложения из статьи Чарлза here, но никто не работает, кроме IP-адреса локальной сети.

«Почему бы просто не использовать IP-адрес локальной сети?», Спросите вы ?. Ну, я бы хотел избежать YASCE (еще одно исключение для контроля источника). Вы видите, мой исходный код имеет это в сетевом разделе:

#if DEBUG 
    var API_HOST = "http://localhost" 
#else 
    var API_HOST = "https://website.com" 
#endif 

Я хотел бы избежать заставляя каждый разработчик в команде постоянно делать специальные соображения, чтобы избежать проверок в их собственном личной IP-адресе каждый раз, когда они совершают к источнику контроля.

Есть ли другой способ, которым я могу убедить симулятор iOS передать http://localhost через Чарльза, или есть лучший способ справиться с настройками среды с командой разработчиков?

ответ

4

Использование localhost.charlesproxy.com вместо localhost. Это настройка на charlesproxy.com DNS, чтобы указать на 127.0.0.1, и всегда будет. И поскольку это не буквально localhost, оно должно обходить жесткую логику ОС для localhost.

Также можно использовать local.charles, но только если Чарльз фактически работает, и вы используете его в качестве своего прокси. Поэтому я предпочитаю решение localhost.charlesproxy.com.

Я также обновлю этот FAQ.

+0

Примечание. Обязательно добавьте 'localhost.charlesproxy.com' в свой фильтр« Включить », если это включено в« Настройки записи ». В противном случае запросы не будут отображаться. > ..< –

+0

Я получаю ошибку на localhost: 3000 напрямую или через любой из этих адресов (local.charles: 3000, localhost.charlesproxy.com:3000), когда запущен charles. Свежая установка charles, OSX 10.11.4. Вместо этого я попытался использовать прокси-сервер SOCKS и такую ​​же ошибку. Снимок экрана с ошибкой для всех трех адресов: https://s3.amazonaws.com/f.cl.ly/items/0b162j1v2A2O3O1X2C3o/Charles_Error_Report.png – Jay

0

Такая же проблема произошла со мной. Использование имени моего компьютера вместо «localhost» решило мою проблему и позволило отобразить его на Charles. Например, имя моего компьютера «sukwon», и я решил его, используя «http://sukwon.local» вместо использования «http://localhost»

+0

К сожалению, это не решает основной проблемы. Если вы работаете в команде с двумя людьми, маловероятно, что у них будет одно и то же имя компьютера. Тогда вы будете постоянно иметь конфликты в вашем файле xcodeproj при использовании репозитория общего кода. –

2

Я нашел приемлемый рабочий обход. Он включает в себя редактирование вашего файла hosts для создания псевдонима для localhost. Каждый разработчик должен будет сделать это на своей машине, но после этого он должен быть плавным.

Run echo '127.0.0.1 local.website.com' >> "/etc/hosts", а затем измените хост-код конфигурации на что-то вроде этого:

#if DEBUG 
    var API_HOST = "http://local.website.com" 
#else 
    var API_HOST = "https://website.com" 
#endif 
1

Я использую мое имя хоста вместо локального хоста. Для того, чтобы получить ваше имя хоста просто введите hostname в терминале, а затем изменить URL для "http://your-host-name"

+0

Это не приемлемое решение для этого вопроса. Он работает, но это не мешает разработчикам иметь специальный код для своих конечных адресов в коде. –

Смежные вопросы