Многие разработчики считают Apple Developer Program обязательным входным билетом в разработку под iOS. Из-за этого они регистрируются раньше, чем это действительно нужно, или вовсе отказываются от попыток создавать приложения для iOS.
Вы можете создать приложение Expo и бесплатно запустить его на собственном iPhone, а зарегистрироваться уже тогда, когда будете готовы им поделиться. В этой статье путь от $0 до $99 разбит на три уровня: что требуется на каждом из них, что они открывают и каковы их ограничения. В конце вы будете точно знать, стоит ли регистрироваться в первый день или лучше сначала создать приложение, а оформить подписку при публикации в App Store.
Видеоверсия
Краткий ответ
Уровень 1: Expo Go на любом компьютере и iPhone
Все, что вам нужно, — это iPhone и компьютер. Подойдут Windows, Linux и macOS. Установите Expo Go из App Store, а затем создайте и запустите проект:
Отсканируйте QR-код с помощью камеры iPhone, и приложение откроется в Expo Go. Каждый раз, когда вы сохраняете файл, функция Fast Refresh обновляет приложение на вашем телефоне.
На этом уровне вам не потребуется никакой аккаунт Apple. Expo Go — это приложение, которое компания Expo собирает, подписывает и публикует в App Store, поэтому ваш iPhone воспринимает его как любое другое приложение.
Обратная сторона заключается в том, что Expo Go поставляется с фиксированным набором нативного кода. Ваш JavaScript может меняться, но нативные библиотеки остаются теми же, что уже встроены в Expo Go. Этот набор охватывает большую часть SDK Expo, включая expo-camera, expo-maps и @expo/ui, а также популярные сторонние библиотеки вроде react-native-reanimated. Некоторые функции требуют собственного нативного кода и недоступны в Expo Go:
- Виджеты на экране «Домой» и Live Activities с помощью expo-widgets.
- Siri и Команды (Shortcuts) с помощью expo-app-intents.
- Любая библиотека с нативным кодом, которой нет в Expo Go, а также любой написанный вами самостоятельно нативный код.
Для этого вам понадобится сборка для разработки (development build).
Уровень 2: сборка для разработки на вашем Mac
Сборка для разработки (development build) — это ваша собственная версия Expo Go. В ней есть инструменты expo-dev-client, знакомые вам по Expo Go. Разница в том, что нативный код внутри нее принадлежит вам: это любые нативные библиотеки, любые нативные настройки и ваши собственные нативные модули. Функция Fast Refresh при этом сохраняется. Мы рекомендуем сборку для разработки для любого приложения, которое вы планируете выпустить в магазинах приложений.
Если у вас есть Mac, вы можете создать ее и установить на свой iPhone бесплатно. Подключите iPhone и выполните:
Xcode компилирует приложение на вашем Mac, подписывает его и устанавливает на телефон. Для подписания нужен аккаунт Apple, но не платный. Войдите в Xcode с помощью бесплатного аккаунта Apple, и он предоставит вам команду подписания под названием Personal Team.
При первом запуске интерфейс командной строки (CLI) может остановиться до начала сборки:
Это означает, что на вашем Mac еще нет сертификата для подписи кода. Ссылка Learn more открывает краткое руководство по настройке, которое поможет вам войти в Xcode с помощью вашего аккаунта Apple. Выполните это один раз, а затем повторите команду.
Ограничения бесплатной подписи
Apple устанавливает следующие ограничения для бесплатной учетной записи Personal Team:
- Срок действия приложения истекает через 7 дней. Бесплатные профили подготовки (provisioning profiles) от Apple перестают действовать через 7 дней после создания. После этого приложение перестает открываться, и сборку приходится запускать заново.
- Не более 3 приложений на устройство. Вы можете установить до 3 таких приложений на каждый iPhone.
- Только ваши собственные устройства. Вы можете зарегистрировать до 3 устройств и не можете никому другому отправить эту сборку.
- Отсутствие платных возможностей. Удаленные пуш-уведомления, встроенные покупки, Вход с Apple (Sign in with Apple), NFC, iCloud, Apple Pay и связанные домены требуют наличия платного членства даже на этапе разработки. Вы можете добавить библиотеку и написать код, но Xcode не сможет подписать сборку, запрашивающую эти возможности с бесплатным аккаунтом.
Некоторые возможности все же работают с бесплатным аккаунтом (согласно таблице возможностей Apple), включая App Groups, Background Modes, HealthKit, HomeKit, Keychain Sharing и Maps. Пакет expo-widgets использует App Groups для обмена данными между вашим приложением и его виджетом.
Локальные уведомления, которые ваше приложение планирует на самом устройстве, не требуют функции пуш-уведомлений. Она нужна только для удаленных уведомлений, отправляемых с вашего сервера.
Нет Mac? Для облачных сборок нужна платная программа
Вы по-прежнему можете создавать приложения для iOS из Windows или Linux. Expo Build компилирует их на Mac в облаке:
Чтобы установить такую сборку на iPhone, Expo Build должна подписать ее, а для облачного подписания требуется платная программа.
Для чего нужны сертификат и профиль подготовки
Каждое приложение для iOS, запускаемое на устройстве, подписано двумя вещами:
- Сертификат указывает, кто собрал приложение.
- Профиль подготовки определяет, где приложение может запускаться: какому оно принадлежит идентификатору, какие iPhone могут его устанавливать, какие возможности оно может использовать и когда истекает срок его действия.
Ваш iPhone проверяет оба элемента перед открытием приложения. Когда срок действия профиля истекает, приложение перестает открываться, пока вы не установите новую сборку.
Тип подписи определяет, кто может установить ваше приложение. Бесплатный аккаунт Apple дает право только на разработочную подпись (development signing). Для подписи типа Ad hoc и App Store используется сертификат распространения (distribution certificate), который доступен только участникам платной программы Apple Developer Program.
На вашем Mac Xcode создает разработочную подпись для вашей бесплатной Personal Team. В облаке Expo Build подписывает сборки для устройств с помощью сертификата распространения и профиля подготовки Ad hoc. Таким образом, без Mac для сборки под разработку на реальном iPhone требуется платная программа.
С любого компьютера можно бесплатно собирать приложения для симулятора iOS. Сборки для симулятора не подписываются под конкретное устройство, поэтому Expo Build может создать такую сборку без аккаунта разработчика Apple. Вам все равно понадобится среда для ее запуска — в настоящее время это обычно Mac с установленным Xcode.
Что дает подписка за $99 в год
Программа Apple Developer Program стоит $99 в год. Она включает в себя пять основных возможностей.
1. Делитесь приложением с другими людьми
Бесплатная подпись ограничивается только вашими собственными устройствами. С членством в программе у вас появляется два способа передать сборку другому человеку:
- TestFlight. TestFlight — это приложение Apple для бета-тестирования. Вы можете пригласить до 10 000 внешних тестеров или поделиться публичной ссылкой.
- Внутреннее распространение через Expo Build. Тестировщики устанавливают сборку по ссылке. При этом используется подготовка Ad hoc, поэтому каждый iPhone необходимо предварительно зарегистрировать (команда eas device:create), а для нового устройства потребуется новая сборка. Apple разрешает использовать этот метод максимум для 100 iPhone в год.
2. Облачное подписание
Expo Build может создавать и управлять вашими учетными данными iOS и подписывать сборки для устройств. Для этого требуется членство в программе, как описано в разделе «Нет Mac?» выше.
3. Удаленные пуш-уведомления
Уведомления, отправляемые с вашего бэкенда, проходят через службу Apple Push Notification service, для которой необходим платный аккаунт. Локальные уведомления работают и без него.
4. Встроенные покупки и другие возможности Apple
К ним относятся платные функции из списка ограничений бесплатной подписи, такие как встроенные покупки, Вход с Apple и NFC. Бесплатный аккаунт не может подписать сборку, запрашивающую эти функции. Членство необходимо не только для публикации, но и для их тестирования на устройстве.
5. App Store
Для публикации в App Store требуется членство в программе. Когда ваше приложение начнет приносить доход, обратите внимание на программу Apple App Store Small Business Program. Вы имеете на нее право, если заработали до $1 млн выручки за предыдущий календарный год или только начинаете работу в App Store. В этом случае комиссия Apple с платных приложений и встроенных покупок снижается с 30% до 15%. Чтобы получить ее, необходимо подать заявку.
Платный аккаунт также изменяет срок действия ваших собственных сборок. Профили разработчика от платной команды действительны до одного года вместо 7 дней, поэтому вам больше не придется пересобирать приложение каждую неделю.
Когда стоит платить?
Оплатите в первый день, если вашему приложению требуется что-то из следующего:
- Удаленные пуш-уведомления, так как вы хотите протестировать их в процессе разработки.
- Встроенные покупки по той же причине.
- Настоящий iPhone, но у вас нет Mac. Облачная подпись — это ваш единственный способ установить приложение на устройство.
Все остальные могут сначала бесплатно собрать все приложение целиком и зарегистрироваться, когда придет время передать его кому-то другому.
А как насчет Android?
Разработка под Android полностью бесплатна вплоть до публикации. Вы можете собирать, устанавливать и делиться сборками, никому не платя. Аккаунт Google Play Console требует единоразового платежа в размере $25, когда вы будете готовы выйти в Play Store.
С чего начать
- Начните с уровня 1 сегодня. Запустите npx create-expo-app@latest и откройте проект в Expo Go.
- Переходите на кастомную сборку для разработки (development build), когда вам понадобится нативный код. Прочтите раздел «Введение в сборки для разработки» (Introduction to development builds), а затем следуйте инструкциям в «Локальной разработке приложений» (Local app development), чтобы запустить приложение на своем iPhone.
- Зарегистрируйтесь, когда будете готовы поделиться результатом. Присоединяйтесь к программе Apple Developer Program, а затем настройте внутреннее распространение или TestFlight.
Часто задаваемые вопросы
Нужен ли мне аккаунт Apple Developer для использования Expo? Нет. Вы можете разрабатывать в Expo Go вообще без аккаунта Apple. Платная программа Apple Developer Program нужна для того, чтобы делиться приложением или публиковать его, подписывать сборки в облаке или использовать такие функции, как удаленные пуш-уведомления.
Могу ли я бесплатно запустить приложение Expo на своем iPhone? Да. Expo Go запускает ваш проект на любом iPhone бесплатно. С помощью Mac и бесплатного аккаунта Apple вы также можете установить сборку для разработки с помощью команды npx expo run:ios --device.
Сколько времени действует бесплатная сборка для iOS? 7 дней. Бесплатные профили подготовки (provisioning profiles) от Apple истекают через 7 дней после создания, и таким образом на каждое устройство можно установить до 3 приложений. Профили разработчика от платной команды действуют до года.
Могу ли я собрать приложение для iOS с помощью Expo без Mac? Да. Expo Build компилирует приложения для iOS в облаке из Windows или Linux. Чтобы установить эту сборку на iPhone, вам понадобится платная программа Apple Developer Program, так как облачная подпись использует сертификат распространения.
Могу ли я протестировать пуш-уведомления без платного аккаунта? Локальные уведомления — да. Для удаленных уведомлений, отправляемых с вашего сервера, требуется платная программа Apple Developer Program.
Сколько стоит публикация приложения Expo? Для iOS — $99 в год за программу Apple Developer Program. Для Android — единоразово $25 за аккаунт в Google Play Console.
Полезные ссылки
- Expo Go: https://expo.dev/go
- Введение в сборки для разработки: https://docs.expo.dev/develop/development-builds/introduction/
- Локальная разработка приложений: https://docs.expo.dev/guides/local-app-development/
- Настройка подписи Xcode:
- Expo Build: https://docs.expo.dev/build/introduction/
- Внутреннее распространение: https://docs.expo.dev/build/internal-distribution/
- Сборка для симуляторов iOS: https://docs.expo.dev/build-reference/simulators/
- Apple: сравнение бесплатного и платного членства: https://developer.apple.com/support/compare-memberships/
- Apple: поддерживаемые возможности: https://developer.apple.com/help/account/reference/supported-capabilities-ios/
- Apple Developer Program:
- TestFlight: https://developer.apple.com/testflight/
- Программа поддержки малого бизнеса в App Store: https://developer.apple.com/app-store/small-business-program/












