Тестирование приложения для iPhone с ограниченным доступом к сети - PullRequest
7 голосов
/ 05 июня 2009

Существует ли какой-либо способ симуляции ограниченного или отсутствующего подключения 3G / Wifi / EDGE при использовании симулятора iPhone?

Ответы [ 4 ]

11 голосов
/ 05 июня 2009

Вы хотите протестировать изменения скорости? Или доступ к каждой технологии?

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

Это скрипт bash, если вы делаете iPhone dev, вы будете на Mac, так что просто создайте его и запустите в терминале.

#!/bin/bash

# configuration
host="twitter.com"

# usage
if [ "$*" == "" ]; then
    echo "usage: $0 [off|fast|medium|slow]"
    exit
fi

# remove any previous firewall rules
sudo ipfw list 10 > /dev/null 2>&1
if [ $? -eq 0 ]; then
    sudo ipfw delete 10 > /dev/null 2>&1
fi
sudo ipfw list 11 > /dev/null 2>&1
if [ $? -eq 0 ]; then
    sudo ipfw delete 11 > /dev/null 2>&1
fi

# process the command line option
if [ "$1" == "off" ]; then
    # add rules to deny any connections to configured host
    sudo ipfw add 10 deny tcp from $host to me
    sudo ipfw add 11 deny tcp from me to $host
else
    # create a pipe with limited bandwidth
    bandwidth="100Kbit"
    if [ "$1" == "fast" ]; then
        bandwidth="300Kbit"
    elif [ "$1" == "slow" ]; then
        bandwidth="10Kbit"
    fi
    sudo ipfw pipe 1 config bw $bandwidth

    # add rules to use bandwidth limited pipe 
    sudo ipfw add 10 pipe 1 tcp from $host to me
    sudo ipfw add 11 pipe 1 tcp from me to $host
fi
4 голосов
/ 05 июня 2009

Возможно, вы захотите взглянуть на SpeedLimit, Панель настроек для OS X, которая позволяет регулировать пропускную способность и контролировать задержку.

1 голос
/ 28 августа 2009

Если у вас есть iPhone модем, вы можете отключить кабельный модем / ASDL-соединение и направить свой интернет через iPhone. Этот метод работает очень хорошо, если ваш оператор AT & T. Если вы не используете AT & T в качестве своего оператора связи, вам придется попробовать другой способ имитации дерьмового соединения.

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

Поскольку вы работаете на Mac, вы можете использовать Dummynet . Это подключается к ipfw, но также может симулировать потерю пакетов. Вот типичный ipfw с модулем Dummynet:

ipfw add 400 prob 0.05 deny sr-ip 10.0.0.0/8
0 голосов
/ 05 июня 2009

Вы можете проверить сеть, отключив свой аэропорт: -)

Для лучшего контроля, предложение Нейла ipfw - лучший способ.

...