2009-07-03 18 views
14

Apple vuole che io dia scuse amichevoli all'utente se non riesco a trovare una connessione Internet. Usando la demo Reachability, questo è stato abbastanza facile. Voglio fare un ulteriore passo avanti e monitorare una perdita di connessione. La demo ha questa funzionalità, ma non riesco a capire come spegnere la mia connessione per verificare se funziona.Test di connettività IPhone: come faccio a forzare la connessione?

Come procedere per simulare una perdita (o una perdita effettiva) di una connessione?

risposta

18

Se si sta sviluppando in iPhone Simulator, è sufficiente disconnettere il computer da Internet. Se il tuo computer non ha accesso alla rete, nemmeno l'iPhone Simulator.

Per verificare sul dispositivo, è possibile effettuare le seguenti operazioni:

In primo luogo, l'installazione di un router WiFi che è possibile utilizzare per il test.

È possibile attivare la modalità aereo sul telefono, quindi riattivare il WiFi. Ciò impedirà alla connessione 3G di fornire l'accesso ai dati.

Avvia la tua applicazione. Ora puoi semplicemente disconnettere il tuo router WiFi per simulare una perdita di connettività.

+14

o provare una gabbia di faraday? http://en.wikipedia.org/wiki/Faraday_cage – russau

+1

Normalmente indosso un cappello di latta, quindi la gabbia è una progressione naturale. heh Grazie Joey, volevo testare il dispositivo. Saluti. –

+2

Puoi mettere il tuo telefono nel microonde per simulare una perdita di connessione reale ... Ricordati solo di non accendere il microonde! – Sam

13

È possibile utilizzare SpeedLimit preference pane per simulare la latenza di rete sotto il simulatore. Ed ecco un command line version costruito in cima al comando ipfw.

Il vantaggio rispetto allo strappo del cavo o all'uccisione del WiFi è che è possibile specificare la velocità quando si colpiscono host specifici in modo che possano essere utilizzati per i test senza uccidere i normali servizi di rete.

+0

Grazie, la cosa SpeedLimit è super utile. –

4

Per i test nel simulatore faccio un ottimo uso di Little Snitch. È un'applicazione molto utile per scrivere regole su cosa può comunicare con il mondo esterno e per quanto tempo.

Ti informerà inoltre se un'applicazione desidera accedere a Internet al volo e puoi temporaneamente limitare l'accesso per quell'ora, quella sessione o per sempre.

Come per il test sul dispositivo, accedo al mio router wireless e disabilito temporaneamente la rete o attivare la restrizione tramite ID MAC per la durata del test.

2

Forse questo riquadro delle preferenze è utile anche per te: SpeedLimit.prefPane non può perdere la connessione, ma puoi rallentarlo in base all'host e alla porta che stai cercando di raggiungere.

4

Utilizzare È possibile controllare tutte le richieste HTTP/S inviate dall'app e le risposte ricevute, la connessione dell'acceleratore per simulare qualsiasi velocità di rete. Crea un profilo di accelerazione personalizzato chiamato "Disconnected" con Bandwidth = 0, per simulare le disconnessioni di rete.

+0

La larghezza di banda 0 non è una disconnessione per quanto riguarda la raggiungibilità. Se lo utilizzi come proxy per il tuo dispositivo, il dispositivo continuerà a pensare che abbia una buona connessione alla rete wifi, quindi la raggiungibilità non restituirà un errore. 0 larghezza di banda è ancora uno strumento utile per testare le bancarelle di rete. – CornPuff

12

Si potrebbe installare di Apple Network link Conditioner

su Yosemite:

rete di collegamento del condizionatore può essere trovato nella sezione "Hardware IO Strumenti per Xcode" pacchetto. Questo può essere scaricato da Apple Developer Downloads page. Al termine del download, aprire DMG e fare doppio clic su "Network Link Condition.prefPane" per installare (source).

Con questo pannello delle preferenze è possibile creare un profilo con velocità di 0 kbps.

Network Link Conditioner

su versioni precedenti di OSX:

Mountain Lion/Mavericks: Xcode > Open Developer Tool > More Developer Tools
Lion: /Developer/Applications/Utilities/Network Link Conditioner

+4

Nota: A partire da Xcode 4.3 (o 4.2?) Questi devono essere installati separatamente dal sito Web di Apple: in Xcode, vai a "Xcode/Open Developer Tools/Altri strumenti di sviluppo ...". Questo ti porterà alla sezione download. Il condizionatore di collegamento può essere trovato in "Hardware IO Tools for Xcode". – Stefan

+0

Buono ma anche se si crea un profilo con valori 0, non simula la situazione di "nessuna connessione" ... – gemini

0

Ricerca di simile esigenza cioè la simulazione di una connessione di rete Wi-Fi con perdita di dati su un dispositivo vero e proprio, io ho capito come farlo :) Ho collegato il mio MacBook Pro su ethernet e ho condiviso la mia connessione Wi-Fi al dispositivo. Utilizzando il condizionatore di collegamento di rete di Apple, Prefpane consente di riprodurre la qualità della connessione. Molto utile per simulare 3G, Edge e altri baud rate.

Passaggio successivo: trovare e acquistare un adattatore wifi USB funzionante su MAC OS X per consentire a tutti noi (team di sviluppatori) di testare senza collegare ogni computer a Ethernet.

Spero che questo aiuti alcuni di voi.

Problemi correlati