Моделюйте режим літака в iPhone Simulator


Відповіді:


114

Вимкніть мережеве з'єднання на Mac.


14
настільки очевидно, що я брикався. але в той же час, безумовно, вони могли б прийняти краще рішення!
benlumley

37
Це важче, ніж це звучить, хоча наша команда попросила Apple про подібну функціональність. Проблема полягає в тому, що програми, запущені в тренажері, - це справді програми Mac. IPhone Simulator не імітує iPhone; це просто середовище для додатків Mac, щоб зв’язатись і виглядати як iPhone. Тож вам потрібен спосіб на системному рівні обмежити програму спілкування з мережею. Unix цього не забезпечує; йому майже напевно потрібна підтримка ядра, щоб отримати його. Ви можете зробити це легше для NSURLConnection та його споріднених, але це може бути більш заплутаним, якщо деякі дзвінки працюють, а деякі не.
Роб Нап’є

13
Це не імітує режим літака ... так як симулятор GPS все ще функціонує, але не повертає значення.
Янн

18
Просто відключення мережевого з’єднання за певних обставин не настільки корисне. Наприклад, коли ви протестуєте доступність та доступ до Інтернету - іноді вам дійсно потрібен режим літака. Симулятор не має робочого мережевого з'єднання насправді не той самий. Крім того, на деяких робочих місцях є комп'ютери, які мають справжні проблеми з аутентифікацією, які означають, що вбити мережеве з'єднання не завжди є варіантом (так як все йде за допомогою мереж).
окулус

9
Я згоден з окулусом. Під час роботи в офісі відключення мережі для всієї машини сильно шкодить спілкуванню в робочому середовищі. Є багато ситуацій, коли це не прийнятне рішення.
Крейко

59

Можна встановити кондиціонер мережі Network Apple

На Йосеміті:

Кондиціонер для мережевих посилань можна знайти в пакеті «Апаратні засоби вводу-виводу для Xcode». Це можна завантажити зі сторінки завантажень для розробників Apple . Після закінчення завантаження відкрийте DMG та двічі клацніть «Network Link Condition.prefPane», щоб встановити ( джерело ).

За допомогою цієї панелі налаштувань ви можете створити профіль зі швидкістю 0 кбіт / с.

Кондиціонер для мережевих посилань

На старих версіях OSX:

Гірський лев / Маверики: Xcode > Open Developer Tool > More Developer Tools
Лев:/Developer/Applications/Utilities/Network Link Conditioner


11
Доступність не бачить жодних змін при використанні кондиціонера Network Link. Насправді, коли я встановив його на 0 кбіт / с і 100% втрати пакету, він все ще повідомляє про все як про доступне і доступне через wifi. Це не спрацьовує для тестування режиму «Літак».
Е. Фрейтас

1
Ви впевнені, що великий перемикач ліворуч перемкнули на "ВКЛ."
Тіме

Тут однакова проблема, кондиціонер для підключення до 0kbps вгору / вниз та 100% втрати пакету вгору / вниз не допомагає. Симулятор iOS через деякий час вимикається. 0kbps приймається як пропускна здатність MAX.
Дизайн Адріана

17

Ви також можете використовувати Little Snitch для темп. заблокувати підключення до Інтернету для цього додатка.


тому це означає, що ви можете редагувати файли хостів, щоб досягти того ж, дякую за ідею.
panchicore

-1

Простіший злом: зробіть функцію перевірки з'єднання

import NetInfo from '@react-native-community/netinfo';

export const ckeckIsConnected = async () => {
  const isConnected = NetInfo.fetch().then((state) => {
    return state.isConnected;
  });
  return isConnected;
};

Обирайте дані лише за наявності зв’язку. Щоб імітувати відсутність з'єднання, просто поверніться false до цієї функції незалежно від реального з'єднання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.