Протестируйте разработку своего приложения наиболее удобным способом

Когда мы разрабатываем приложение для iOS, у нас есть как минимум одна схема. Многие начинающие или промежуточные разработчики не знают, что мы можем добавить некоторые специальные команды для создания пользовательской среды для тестирования приложения.

Позвольте мне рассказать вам, как использовать различные схемы приложений для iOS или Mac в XCode, чтобы быстрее протестировать приложение.

У меня есть приложение для iOS под названием Word Search, которое я разработал давно, в 2013 году, и до сих пор часто обновляю приложение новыми функциями. В этом приложении есть некоторые функции, которые необходимо протестировать. Например:

  1. Рекламировать
  2. Подсказки
  3. Головоломка, которую нужно решить

Проблема в том, что когда я хочу протестировать приложение без показа рекламы, в файле config мне нужно вручную определить константу, которая отключает или включает рекламу.

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

Этот подход подвержен ошибкам, если вы по ошибке публикуете приложение с отключенной рекламой или отключенной игрой.

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

Решение:

Схема Xcode

1. Что такое схема Xcode

Согласно Apple:

«Схема Xcode определяет набор целей для сборки, конфигурацию для использования при построении и набор тестов для выполнения».

На картинке выше вы видите схему. Для вашего приложения имя схемы по умолчанию будет другим. Если щелкнуть имя схемы, откроется меню для редактирования или создания новой схемы.

2. Как воспользоваться преимуществами этой схемы

Для этой игры Поиск слов у меня всего четыре схемы. Название схем говорит о том, что я хочу протестировать. Вы также можете отредактировать любые схемы и создать новую схему, щелкнув Новая схема… в этом меню.

3. Как создать новую схему

Сначала щелкните команду «Новая схема…» в меню. Вы должны выбрать имя своего проекта Xcode во всплывающем окне, и вы можете установить имя. Нажатие «ОК» создаст новую схему.

4. Как управлять схемами

Если вы щелкните команду «Управление схемами…» в меню схемы, вы увидите всплывающее окно, подобное экрану ниже. Здесь вы можете создать, отредактировать или удалить любую схему.

5. Как настроить схемы

Если вы выберете схему и нажмете Edit, вы увидите окно, подобное приведенному ниже экрану. Вот мой случай; в этой схеме я хочу передать две переменные среды.

  1. hint_button_end_game = true и
  2. ads_disabled = true

Вы можете передавать аргументы только в разделах «Выполнить», «Тест» и «Профиль». Я хочу протестировать свое приложение по этой схеме, и эти две переменные должны быть true.

Теперь в реальном коде у меня есть функция для захвата этих переменных среды. Я разработал большинство своих приложений на языке Obj-C, а часть - на языке программирования Swift. Итак, вот код Obj-C для захвата переменной среды.

Похожий код, который мы можем написать на языке программирования Swift, выглядит следующим образом:

Таким образом, в коде, используя словарь ProcessInfo.processInfo.environment, мы можем проверить, передается ли какая-либо настраиваемая переменная среды или нет, и на основе этого приложение будет вести себя во время теста.

У меня также есть сценарий оболочки, и я использую инструмент Fastlane; Я развертываю свое приложение, чтобы не было шансов развернуть неправильную схему. Если вы хотите изучить Fastlane для автоматизации развертывания, ознакомьтесь с моей следующей статьей.



Заключение

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

👨🏼‍💻 Если вам понравился этот пост, вы можете оставить до пятидесяти 👏👏👏 аплодисментов. Если у вас есть вопросы или мнения, дайте мне знать в комментариях.