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

Из этой инструкции вы узнаете, как начать работу с файлом конфигурации приложения White Label App и как предоставить доступ к данным для осуществления поиска авиабилетов и отелей.

Обратите внимание! Прежде чем переходить к действиям, указанным в этой инструкции, ознакомьтесь с техническими требованиями и условиями начала работы с White Label App. Без выполнения этих условий работа с приложением невозможна.

1. Подготовка к работе

Архив с приложением вы можете скачать с GitHub.

После скачивания приложения выполните следующие действия:

  1. Создайте и/или войдите в свой аккаунт на developer.apple.com. Аккаунт должен быть с доступами разработчика.
  2. Xcode:
    • Скачайте и установите программу Xcode;
    • Переместите Xcode в папку “Программы” на компьютере, если он не переместился туда автоматически;
    • Запустите терминал;
    • Выполните команду sudo xcode-select -s /Applications/Xcode.app
    • Xcode готов к работе.
  3. Разархивируйте архив с приложением.
  4. Запустите Терминал:
    • Выполните команду /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" (установка менеджера HomeBrew);
    • Выполните команду brew install fastlane;
    • Введите команду: cd /path/to/travel-app-ios ( “/path/to/travel-app-ios” – путь туда, где находится распакованная папка с проектом);
    • Выполните команду fastlane initialize (установка cocoapods, xcodegen, needle);
    • Выполните команду fastlane setup (эту команду нужно будет повторять каждый раз при внесении каких либо изменений в проект, в том числе при работе с файлом конфигурации, для того, чтобы эти изменения применились к сборке).

Важно! Если появилось окно «Приложение «project_configurator» нельзя открыть, так как не удалось проверить разработчика.», выполните следующие действия:

      1. Перейдите в НастройкиЗащита и безопасность;
      2. Для приложения «project_configurator» выберите Всё равно разрешить;
      3. Повторите (находясь в директории проекта) в терминале команду fastlane setup.
  1. В папке с проектом появится travel-app.xcworkspace — кликните по нему и проект откроется в Xcode.
  2. Войдите в ваш аккаунт разработчика в Xcode с Apple ID (“Xcode” → “Preferences”)

Готово, проект готов к конфигурации.

2. Работа с файлом конфигурации

Файл конфигурации configuration.json находится в папке white-label-app-iOS-main/configuration.json.

Именно с помощью этого файла вы сможете кастомизировать приложение под свой бренд (изменить цвет, настроить стили, добавить логотип и т.д.) и настроить доступ к данным, чтобы пользователи могли искать билеты и отели.

Для редактирования файла configuration.json рекомендуется использовать Xcode, поскольку Xcode всё равно понадобится для сборки проекта. Вы также можете редактировать файл через любой текстовый редактор.

Пример configuration.json

{
  "base_configuration": {
    "identifier": {
      "android": {
        "id": "com.travelapp",

        "versionName" : "1.0.0",
        "versionCode" : 1
      },
      "apple": {
        "id": "superpuper.travel-app",
      "team_id": "ID",

        "version": "1.0.0",

        "build_number": 0
      }
    },
    "display_name": {
      "base": "en",
      "localized": {
        "en": "Travel App EN Git",
        "ru": "Travel App RU Git"
      }
    }
  },
  "constants": {
    "host" : "ios.superpuper.travel-app",
    "api_key" : "test_api_key"
    "policy_url": {
      "base": "en",
      "localized": {
        "en": "https://google.com",
        "ru": "https://www.google.ru"
      }
    },
    "advertising": {
      "appodeal_api_key": "",
      "google_admob_app_id": "",
      "placements": {
        "air_ticket_placement_interstitial": "",
        "air_ticket_placement_banner": "",
        "hotels_placement_interstitial": "",
        "hotels_placement_banner": ""
      }
    },
    "feedback_email": "test@test.com",
  "google_maps_api_key": "token",
    "appstore_id": "",
  "marker": marker,
    "client_device_host": "iphone.apartments"
  },
  "style": {
    "base_color": "#7648C5", // hex значения базового цвета палитры
    "corners_type": "default", //скругления {sharp, default, round}
    "icons_type": "filled" //стиль используемых иконок {filled, tint, line}

    "palette": "lab" // принцип генерации палитры
  },
  "info_screen_config": {
    "items_to_display": [
      "favorites", // раздел избранное
      "about_app", // раздел о приложении
      "rate_app", // раздел оценить приложение
      "share_app" // раздел поделиться приложением
    ],
    "about_app_info": {
      "description": {
        "base": "en",
        "localized": {
          "en": "Application description",
          "ru": "Описание приложения"
        }
      },
      "developer": {
        "base": "en",
        "localized": {
          "en": "CleverPunpkin Ltd.",
          "ru": "OOO CleverPumpkin"
        }
      },
      "partner_url": {
        "base": "en",
        "localized": {
          "en": "https://www.google.com",
          "ru": "https://www.google.ru"
        }
      }
    }
  },
  "white_label_config": {
    "screens_to_display": [
      {
        "type": "flights" //таб авиабилетов
      },
      {
        "type": "hotels" //таб отелей
      },
      {
        "type": "other", //таб другое
        "parameters": {
          "id": "Other1",
          "icon": "ic_default_other",
          "title": {
            "base": "en",
            "localized": {
              "en": "Other",
              "ru": "Другое"
            }
          },
          "url": {
            "base": "en",
            "localized": {
              "en": "https://www.google.com",
              "ru": "https://www.google.ru"
            }
          }
        }
      },
      {
        "type": "other", //таб другое 2
        "parameters": {
          "id": "Other2",
          "icon": "ic_default_other",
          "title": {
            "base": "en",
            "localized": {
              "en": "Other 2",
              "ru": "Другое 2"
            }
          },
          "url": {
            "base": "en",
            "localized": {
              "en": "https://www.google.com",
              "ru": "https://www.google.ru"
            }
          }
        }
      }
    ]
  }
}

Важно! После внесения любых изменений в configuration.json:

  1. Сохраните изменения в файле;
  2. Выполните в терминале команду fastlane setup;
    После ввода в терминал команды может появится такое окно, в таком случае выберите «Read From Disk».
  3. Пересоберите и запустите сборку ▶.

3. ID приложения

Добавьте в файл конфигурации id приложения (бандл идентификатор) и team_id. Этот шаг является обязательным, т.к. без id и team_id приложение не получиться собрать.

…     
"identifier": {
    ...
      "apple": {
        "id": "super.travel-app",
        "team_id": "ID"
      }
    },
… 

Удалите блок android{} из identifier{}, поскольку в нем находятся параметры для Android приложения. 

4. Доступ к данным 

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

Для этого найдите следующий фрагмент кода в файле конфигурации:

...   
"constants": { 
    "api_key" : "test_api_key",
    ...
    "marker": marker,
    "client_device_host": "iphone.apartments"
  },
...
  1. В поле api_key укажите ваш API токен. Его можно найти на странице White Label App в личном кабинете Travelpayouts:
  2. В поле marker укажите ваш партнёрский маркер. Его также можно скопировать на  странице White Label App в личном кабинете Travelpayouts:
  3. В поле client_device_host укажите ваш хост. Он составляется следующим образом: “[platform].[app]”, где
      • platform – платформа (ios)
      • app – id вашего приложения, которое вы передавали в identifier.apple.id
        Пример: "ios.superpuper.travel-app"

Далее сохраните изменения в файле, выполните в терминале команду fastlane setup и пересоберите и запустите сборку.

Следующие шаги

Как только вы укажете bundle и team id, а также обеспечите доступ к данным, ваше приложение готово для публикации в App Store. 

Однако, для придания ему уникальности и повышения шансов на успешное прохождение ревью, мы рекомендуем кастомизировать ваше приложение. 

Например, вы можете изменить:

  • Название;
  • Цвета и палитру приложения; 
  • Стиль иконок;
  • Заголовки экранов поиска;
  • Подписи к полям ввода и др.

Мы собрали информацию про все доступные настройки в статье Настройка и кастомизация White Label App для iOS.