логотип PurpleSchool
логотип PurpleSchool

Настройка React Native для работы с iOS

Автор

Олег Марков

Введение

В наше время разработка мобильных приложений все чаще ведется с помощью кроссплатформенных фреймворков, и React Native занимает уверенное место среди лидеров этого направления. Однако если вы только начинаете работать с React Native и хотите создавать приложения для iOS, нужно правильно настроить рабочее окружение. Особенностей здесь гораздо больше, чем при запуске приложения под Android — кто-то сталкивается с ошибками, кто-то не может запустить эмулятор, а кто-то теряется в шагах настройки среды. Давайте развернуто разберём, что необходимо для комфортной работы над проектами React Native для iOS.

Требования к среде разработки

Перед тем как приступить к настройке React Native под iOS, убедитесь, что ваш компьютер соответствует системным и программным требованиям Apple:

  • Операционная система: MacOS 11 или новее (желательно последняя доступная версия)
  • ОЗУ: от 8 ГБ и больше
  • Процессор: Apple Silicon (M1, M2) или Intel (желательно новее 2017 года)
  • Доступ к интернету: потребуется для скачивания библиотек и пакетов

Установка Xcode

Xcode — это официальный инструмент разработки iOS-приложений от Apple. Только на macOS вы сможете корректно собирать и запускать приложения на симуляторе iPhone или реальном устройстве.

Настройка React Native для работы с iOS предполагает установку Xcode, настройку симулятора и решение возможных проблем с сертификатами и профилями обеспечения. Правильная настройка позволит вам разрабатывать и запускать React Native приложения на iOS устройствах без каких-либо проблем. Если вы хотите детально разобраться в настройке React Native для iOS и избежать распространенных ошибок — приходите на наш большой курс React Native и Expo Router. На курсе 184 уроков и 11 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.

Как установить Xcode

  1. Откройте App Store на Mac.
  2. Найдите “Xcode”.
  3. Нажмите “Загрузить” и дождитесь окончания установки (может занять до 20 ГБ на диске).

Настройка Xcode

  • Откройте Xcode один раз после установки. Это позволит системе завершить настройку инструментов и примет лицензионное соглашение.
  • Перейдите в раздел Preferences > Locations и убедитесь, что Command Line Tools выбраны.

Установка Homebrew

Homebrew — популярный менеджер пакетов для MacOS, который сильно облегчает жизнь при установке вспомогательных утилит и библиотек.

Для установки Homebrew выполните в терминале:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Скачиваем и запускаем инсталлятор Homebrew

Проверьте установку:

brew --version
# Должен вывести номер версии

Подготовка Node.js, Watchman и Yarn

Node.js — обязательный компонент для работы React Native, а Watchman нужен для отслеживания изменений в исходниках (особенно при работе с большим проектом).

Установите Node.js, Watchman и Yarn через Homebrew:

brew install node
# Устанавливаем Node.js

brew install watchman
# Устанавливаем Watchman

brew install yarn
# Устанавливаем Yarn (альтернативный менеджер пакетов, используется во многих RN-проектах)

Проверьте их версии:

node --version
yarn --version
watchman --version

Каждая из команд должна выводить актуальную версию установленного инструмента.

Установка CocoaPods

CocoaPods — это менеджер зависимостей для проектов на iOS, и он обязательно потребуется для сборки React Native и сторонних библиотек.

Выполните команду:

sudo gem install cocoapods
# Устанавливаем CocoaPods через RubyGems

Проверьте установку:

pod --version

Если вы впервые запускаете pod, бывает полезно выполнить:

pod setup
# Это подгрузит начальные спецификации публичных подов

Создание и запуск проекта React Native

Теперь, когда основные инструменты установлены, давайте перейдем к созданию первого проекта и запуску его на iOS-симуляторе.

Шаг 1: Создайте новый проект React Native

React Native CLI всегда предлагает более гибкую настройку по сравнению с Expo, поэтому будем использовать его.

npx react-native init MyTestProject
# Эта команда создаст директорию MyTestProject с набором файлов и папок

Шаг 2: Установка зависимостей iOS

Перейдите в директорию ios и выполните установку зависимостей через CocoaPods:

cd MyTestProject/ios
pod install
# Этот шаг скачает и настроит все зависимости для iOS

Шаг 3: Запуск приложения на iOS Simulator

Вернитесь в корень проекта и выполните команду:

cd ..
npx react-native run-ios
# Запускаем проект на iOS-симуляторе

Если хотите указать конкретную модель устройства, используйте флаг --simulator, например:

npx react-native run-ios --simulator="iPhone 14"
# Запускаем на симуляторе iPhone 14

Что делать, если симулятор не запускается?

Проверьте открытие симулятора вручную:

open -a Simulator
# Открываем программу Simulator из Xcode

Если есть ошибки — внимательно читайте логи, чаще всего проблема в том, что Xcode не завершил настройку или pod install выполнен с ошибками.

Запуск приложения на реальном устройстве

Для запуска приложения на физическом iPhone потребуется учетная запись разработчика Apple (бесплатного статуса достаточно для личных тестов).

Действия:

  1. Подключите устройство через USB.
  2. В папке проекта откройте MyTestProject/ios/MyTestProject.xcworkspace в Xcode.
  3. В Xcode выберите свое подключенное устройство как Target.
  4. В настройках Xcode – Targets – Signing & Capabilities – выберите свой Apple ID (или добавьте его).
  5. Нажмите Cmd + R или кнопку Run — приложение соберётся и загрузится на iPhone.

Советы по устранению проблем с сертификатами

Если Xcode сообщает о проблемах с сертификатами, добавьте свой Apple ID в Xcode (“Preferences > Accounts”) и выберите его для сборки. Если появится сообщение о необходимости доверять разработчику, откройте на iPhone: Настройки > Основные > Управление устройством и доверяйте профилю.

Файлы и структура проекта iOS

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

  • MyTestProject.xcworkspace — откройте этот файл для работы с CocoaPods
  • MyTestProject.xcodeproj — классический Xcode-проект (использовать, только если не используете CocoaPods)
  • Info.plist — основной файл настроек приложения iOS (имя, идентификатор пакета, версия и т.д.)
  • Podfile — настройки зависимостей CocoaPods

Интеграция сторонних библиотек

Большинство библиотек React Native (например, react-native-image-picker, react-native-maps и др.) требуют связи с проектом iOS через CocoaPods.

Допустим, вы хотите установить камеру:

yarn add react-native-camera
cd ios
pod install
# Устанавливаем зависимость в iOS

Обратите внимание: иногда потребуется ручное изменение Info.plist (например, добавление разрешения на работу камеры):

<key>NSCameraUsageDescription</key>
<string>Это приложение требует доступ к камере для корректной работы</string>

Внесите эти изменения через Xcode или любой текстовый редактор.

Работа с настройками и разрешениями iOS

Многие функциональности приложения требуют явного разрешения пользователя (камера, галерея, GPS, push-уведомления).

Откройте Info.plist и добавьте нужные ключи, например:

<key>NSPhotoLibraryUsageDescription</key>
<string>Разрешите доступ к фото для выбора изображения</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Разрешите определять вашу геопозицию для предоставления сервисов поблизости</string>

Без этих шагов библиотека может "не видеть" разрешений, и некоторые функциональности будут работать некорректно.

Сборка и выгрузка приложения

Для тестирования или публикации приложения используйте Xcode:

  • Откройте MyTestProject.xcworkspace
  • В верхнем меню Product → Build (Cmd+B) — проверить процесс сборки
  • Для выгрузки на устройство или TestFlight — см. Xcode Organizer (Product → Archive)

Рабочие фишки и трюки для React Native + iOS

Быстрая перезагрузка приложения

В React Native есть удобные инструменты:

  • Fast Refresh — быстрый перезапуск приложения при изменениях кода
  • Нажмите Cmd + D в симуляторе (или Shake Gesture на устройстве) для открытия меню разработчика

Использование Flipper

Flipper — популярный инструмент для отладки RN-приложений на iOS. По умолчанию поддержка активна, проверьте зависимости в Podfile, чтобы убедиться, что Flipper включён.

Общие ошибки и их решения

1. Ошибка "Command Line Tools not found"

Проверьте раздел Xcode > Preferences > Locations — иногда нужно явно выбрать версию Xcode.

2. Проблемы с CocoaPods (напр. Legacy build system)

Старайтесь применять Always use the latest version of CocoaPods. При ошибках попробуйте:

sudo gem install cocoapods
cd ios
pod deintegrate
pod install

3. Библиотеки прикрепляются, но не работают

Проверьте Info.plist, наличие всех разрешений, а также не забывайте запускать pod install после добавления новой библиотеки.

4. Ошибка архитектуры при запуске на M1/M2

Добавьте архитектуру x86_64 к симуляторам в Podfile для поддержки Apple Silicon. Пример (подробнее читайте в официальной документации React Native):

post_install do |installer|
  react_native_post_install(installer)
  # Используйте патч для поддержки Apple Silicon, если требуется
  installer.pods_project.build_configurations.each do |config|
    config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
  end
end

5. Ошибка Multiple Pod files found

Удалите лишние Podfile.lock, выполнив в папке ios:

rm Podfile.lock
pod install

Заключение

Настройка React Native для iOS — процесс, который состоит из множества этапов: установка Xcode, Node.js, Watchman, Yarn, CocoaPods, настройка разрешений, интеграция сторонних библиотек, и даже запуск на реальном устройстве. Вы видели, что многие действия опираются на базовые инструменты Apple и требуют осознания устройства файлов и зависимостей проекта. Надеюсь, теперь рабочий процесс будет выглядеть гораздо более понятно и прозрачно, а большинство частых “подводных камней” уже не застанут вас врасплох.

Настройка iOS - это важный, но не единственный этап разработки React Native приложений. Для создания полноценного приложения необходимо освоить множество других технологий и подходов, включая работу с UI, данными и нативными функциями. Курс React Native и Expo Router поможет вам в этом. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир React Native прямо сегодня.

Частозадаваемые технические вопросы по теме

1. Как сбросить кэш React Native для iOS, если проект начинает "чудить"?

Ответ:
Выполните следующие команды в терминале (находясь в корне проекта):

watchman watch-del-all
npm start -- --reset-cache
cd ios && xcodebuild clean
cd .. && rm -rf node_modules && yarn install
cd ios && pod install

Это очистит кэш watchman, RN и пересоберёт проект с нуля.

2. Почему на iOS эмуляторе нет интернета, хотя Wi-Fi на Mac работает?

Ответ:
Зайдите в настройки Network Simulator, проверьте параметры Proxy/Firewall macOS. Иногда помогает перезапуск симулятора (Cmd+Q), либо удаление и повторная установка самого Simulator через Xcode > Preferences.

3. Как обновить версию React Native без потери кастомных изменений в iOS-проекте?

Ответ:
Используйте утилиту react-native-git-upgrade или сервис rn-diff-purge, чтобы наглядно увидеть разницу файлов и вручную перенести ваши важные правки.

4. Возникает ошибка "No bundle URL present" после запуска на устройстве

Ответ:
Так бывает, если приложение ищет JS bundle через Metro-сервер, а соединение с Mac недоступно (например, разные сети или вообще нет сервера). Соберите production bundle с помощью:

npx react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ios/main.jsbundle --assets-dest ios

и убедитесь, что Info.plist корректно ссылается на main.jsbundle.

5. Как добавить push-уведомления в React Native для iOS?

Ответ:
Используйте библиотеку react-native-push-notification или @react-native-community/push-notification-ios:

  1. Добавьте библиотеку: yarn add @react-native-community/push-notification-ios
  2. Выполните cd ios && pod install
  3. Включите Capabilities > Push Notifications в Xcode, настройте App ID и разрешения.
  4. Настройте обработку уведомлений в JS-коде и Info.plist.

Эти действия позволят настроить прием и обработку push-уведомлений на вашем устройстве.

Стрелочка влевоУстановка и настройка React Native SDKПошаговая инструкция по установке React NativeСтрелочка вправо

Постройте личный план изучения React-native до уровня Middle — бесплатно!

React-native — часть карты развития Mobile

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по React-native

Работа со ScrollView в React NativeРабота с видео в React NativeКак реализовать аудиоплеер на React NativeНастройка и использование input и textinput в React NativeИнтеграция видео плеера в приложение на React NativeИспользование выпадающих списков в React NativeСоздание и настройка native module на React NativeКак создать модальные окна в React NativeРабота с изображениями в React NativeОтображение списков данных в React NativeГайд по файловой системе в React NativeИнтеграция камеры в приложение на React NativeСоздание интерактивных кнопок в React Native
Как использовать векторные иконки в React Native5 популярных библиотек UI компонентов React NativeСоздание и использование tabs в React NativeРуководство по стилизации компонентов в React NativeОптимизация переходов между экранами в React NativeАдаптация safe area context на React NativeОбзор библиотек для навигации в React NativeСоздание сложных анимаций (reanimated) на React NativeИспользование библиотеки стилей Paper в React NativeРуководство по navigation в React NativeОптимизация отображения списков в React NativeКак реализовать linking на React NativeГайд по UI-китам для React NativeГде искать elements для приложения на React NativeРабота с цветами в React Native
Открыть базу знаний

Лучшие курсы по теме

изображение курса

React Native и Expo Router

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Основы JavaScript

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий