Олег Марков
Настройка 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
- Откройте App Store на Mac.
- Найдите “Xcode”.
- Нажмите “Загрузить” и дождитесь окончания установки (может занять до 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 (бесплатного статуса достаточно для личных тестов).
Действия:
- Подключите устройство через USB.
- В папке проекта откройте MyTestProject/ios/MyTestProject.xcworkspace в Xcode.
- В Xcode выберите свое подключенное устройство как Target.
- В настройках Xcode – Targets – Signing & Capabilities – выберите свой Apple ID (или добавьте его).
- Нажмите 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:
- Добавьте библиотеку:
yarn add @react-native-community/push-notification-ios
- Выполните
cd ios && pod install
- Включите Capabilities > Push Notifications в Xcode, настройте App ID и разрешения.
- Настройте обработку уведомлений в JS-коде и Info.plist.
Эти действия позволят настроить прием и обработку push-уведомлений на вашем устройстве.
Постройте личный план изучения React-native до уровня Middle — бесплатно!
React-native — часть карты развития Mobile
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Бесплатные лекции
Все гайды по React-native
Лучшие курсы по теме

React Native и Expo Router
Антон Ларичев
Основы JavaScript
Антон Ларичев