Добавить
Уведомления

Fullstack Разработка - Занятие 9: Сборка и публикация Android приложения на React Native

ы перейдем от разработки к публикации — соберем наше приложение в готовый билд для Android через Expo и рассмотрим варианты публикации в магазинах приложений Все материалы (код при наличии в занятии, краткое и полное описание (самоучитель / полный курс)): https://github.com/EugenePokh/full_steak_09_react_native_android_build Также канал в Телеграм: https://t.me/full_steak Занятие 9 8. Подготовка билда приложения для ANDROID 8.1. Регистрация https://expo.dev/ 8.2. Команды для консоли из папки проекта Установка EAS CLI npm install -g @expo/eas-cli Логин в Expo account eas login Сборка Android приложения eas build --platform android (в процессе создания билда совсем соглашаемся) Согласование версий - установить: https://nodejs.org/en/download/ v22.21.1 (LTS) Изменить: package.json { "name": "react_native_basic", "version": "1.0.0", "main": "index.js", "private": true, "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "expo": "~52.0.46", "expo-location": "~17.0.0", "expo-status-bar": "~2.0.0", "react": "18.3.1", "react-dom": "18.3.1", "react-native": "^0.76.9", "react-native-web": "~0.19.13", "@react-native-async-storage/async-storage": "^1.23.1", "@react-navigation/native": "^7.0.19", "@react-navigation/native-stack": "^7.3.3", "react-native-chart-kit": "^6.12.0" }, "devDependencies": { "@babel/core": "^7.20.0" } } Удаление: - Папка node_modules - package-lock.json Команды: npm install npm install -g @expo/cli eas build --platform android //создать билд 8.3. Перейти на сайт https://expo.dev/ в раздел overview и выбрать свой проект 8.4. Выбрать последний Build (или необходимый) 8.5. Скачать aab build 8.6. Конвертация aab файла в apk для установки 8.6.1. Создание ключа keytool -genkey -v -keystore "C:\Users\admin\Documents\Coding\Convert\keystore.jks" -alias MyKeyAlias -keyalg RSA -keysize 2048 -validity 10000 -storepass ваш_пароль -keypass ваш_пароль -dname "CN=Имя Фамилия, OU=Отдел, O=Организация, L=Город, ST=Регион, C=RU" (не должно быть русских симоволов, папку где сохранить пароль выберите самостоятельно, все заполнити - что нужно в команде создания ключа) 8.6.2. Скачиваем bundletool: https://github.com/EugenePokh/full_steak_07_react_native_android_build.git 8.6.3. Запускаеим bundletool: java -jar "C:\Users\admin\Documents\Coding\Convert\bundletool-all-1.18.1.jar" build-apks --bundle="C:\Users\admin\Documents\Coding\Convert\application.aab" --output="C:\Users\admin\Documents\Coding\Convert\application.apks" --ks="C:\Users\admin\Documents\Coding\Convert\keystore.jks" --ks-key-alias="MyKeyAlias" --mode=universal Возможно потребуется установить Java: https://www.oracle.com/java/technologies/downloads/ C:\Users\admin\Documents\Coding\Convert\bundletool-all-1.18.1.jar //путь, где находится bundletool C:\Users\admin\Documents\Coding\Convert\application.aab //путь, где находится конвертируемый файл application.aab //название нашего файла с expo C:\Users\admin\Documents\Coding\Convert\application.apks //путь, где будет находиться выходной файл C:\Users\admin\Documents\Coding\Convert\keystore.jks //путь, где находится ключ 8.6.4. Полученный файл application.apks переименовываем в application.zip (правая кнопка мышки на файл - переименовать) 8.6.5. Извлекаем файлы из zip архива 8.6.6. В итоге получим файл universal.apk (данный файл возможно устанавливать на смартфон Android) 8.6.7. Справочно: При публикации приложения потребуется заменить ссылки localhost на IP вашего сервера - без этого не будет работать В нашем приложение потребуется заменить в dashboard.js const API_BASE_URL = 'http://localhost:8000/api'; 8.7. Публикация в магазинах приложений: 8.7.1. Rustore - да (сейчас в России почти все пользуются из-за ограничений Google) https://console.rustore.ru/sign-in (перейти по ссылке и зарегистрироваться) Потребуется статус самозанятого, оформить прямо через ссылки на сайте Rustore 8.7.2. Huawei - да (доступен без иностранных карт и резиденства вне России, возможно получать средства на карту МИР) https://developer.huawei.com/consumer/en/console/service 8.7.3. Google Play - нет (нужно оплатить ~25 USD комиссии, без иностранной карты и резиденства (прописки) не получится верифицироваться, потребуется привлечь около 20 тестеров для публикации первого приложения) Без оплаты Google средств на продвижение, приложение невозможно будет найти через поиск сервиса (только если пройти по ссылке) 8.7.4. Samsung - нет (требуется PayPal и иностранная карта соответственно) 8.7.5. Apple (App Store) - нет (платеж 100 USD в год, без иностранной карты и иностранного резиденства не сможете поучать средства от монетизации - зарегистрироваться и оплатить комиссию получится, а вот получить средства уже нет)

Иконка канала durakonn
1 подписчик
12+
3 просмотра
2 месяца назад
12+
3 просмотра
2 месяца назад

ы перейдем от разработки к публикации — соберем наше приложение в готовый билд для Android через Expo и рассмотрим варианты публикации в магазинах приложений Все материалы (код при наличии в занятии, краткое и полное описание (самоучитель / полный курс)): https://github.com/EugenePokh/full_steak_09_react_native_android_build Также канал в Телеграм: https://t.me/full_steak Занятие 9 8. Подготовка билда приложения для ANDROID 8.1. Регистрация https://expo.dev/ 8.2. Команды для консоли из папки проекта Установка EAS CLI npm install -g @expo/eas-cli Логин в Expo account eas login Сборка Android приложения eas build --platform android (в процессе создания билда совсем соглашаемся) Согласование версий - установить: https://nodejs.org/en/download/ v22.21.1 (LTS) Изменить: package.json { "name": "react_native_basic", "version": "1.0.0", "main": "index.js", "private": true, "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "expo": "~52.0.46", "expo-location": "~17.0.0", "expo-status-bar": "~2.0.0", "react": "18.3.1", "react-dom": "18.3.1", "react-native": "^0.76.9", "react-native-web": "~0.19.13", "@react-native-async-storage/async-storage": "^1.23.1", "@react-navigation/native": "^7.0.19", "@react-navigation/native-stack": "^7.3.3", "react-native-chart-kit": "^6.12.0" }, "devDependencies": { "@babel/core": "^7.20.0" } } Удаление: - Папка node_modules - package-lock.json Команды: npm install npm install -g @expo/cli eas build --platform android //создать билд 8.3. Перейти на сайт https://expo.dev/ в раздел overview и выбрать свой проект 8.4. Выбрать последний Build (или необходимый) 8.5. Скачать aab build 8.6. Конвертация aab файла в apk для установки 8.6.1. Создание ключа keytool -genkey -v -keystore "C:\Users\admin\Documents\Coding\Convert\keystore.jks" -alias MyKeyAlias -keyalg RSA -keysize 2048 -validity 10000 -storepass ваш_пароль -keypass ваш_пароль -dname "CN=Имя Фамилия, OU=Отдел, O=Организация, L=Город, ST=Регион, C=RU" (не должно быть русских симоволов, папку где сохранить пароль выберите самостоятельно, все заполнити - что нужно в команде создания ключа) 8.6.2. Скачиваем bundletool: https://github.com/EugenePokh/full_steak_07_react_native_android_build.git 8.6.3. Запускаеим bundletool: java -jar "C:\Users\admin\Documents\Coding\Convert\bundletool-all-1.18.1.jar" build-apks --bundle="C:\Users\admin\Documents\Coding\Convert\application.aab" --output="C:\Users\admin\Documents\Coding\Convert\application.apks" --ks="C:\Users\admin\Documents\Coding\Convert\keystore.jks" --ks-key-alias="MyKeyAlias" --mode=universal Возможно потребуется установить Java: https://www.oracle.com/java/technologies/downloads/ C:\Users\admin\Documents\Coding\Convert\bundletool-all-1.18.1.jar //путь, где находится bundletool C:\Users\admin\Documents\Coding\Convert\application.aab //путь, где находится конвертируемый файл application.aab //название нашего файла с expo C:\Users\admin\Documents\Coding\Convert\application.apks //путь, где будет находиться выходной файл C:\Users\admin\Documents\Coding\Convert\keystore.jks //путь, где находится ключ 8.6.4. Полученный файл application.apks переименовываем в application.zip (правая кнопка мышки на файл - переименовать) 8.6.5. Извлекаем файлы из zip архива 8.6.6. В итоге получим файл universal.apk (данный файл возможно устанавливать на смартфон Android) 8.6.7. Справочно: При публикации приложения потребуется заменить ссылки localhost на IP вашего сервера - без этого не будет работать В нашем приложение потребуется заменить в dashboard.js const API_BASE_URL = 'http://localhost:8000/api'; 8.7. Публикация в магазинах приложений: 8.7.1. Rustore - да (сейчас в России почти все пользуются из-за ограничений Google) https://console.rustore.ru/sign-in (перейти по ссылке и зарегистрироваться) Потребуется статус самозанятого, оформить прямо через ссылки на сайте Rustore 8.7.2. Huawei - да (доступен без иностранных карт и резиденства вне России, возможно получать средства на карту МИР) https://developer.huawei.com/consumer/en/console/service 8.7.3. Google Play - нет (нужно оплатить ~25 USD комиссии, без иностранной карты и резиденства (прописки) не получится верифицироваться, потребуется привлечь около 20 тестеров для публикации первого приложения) Без оплаты Google средств на продвижение, приложение невозможно будет найти через поиск сервиса (только если пройти по ссылке) 8.7.4. Samsung - нет (требуется PayPal и иностранная карта соответственно) 8.7.5. Apple (App Store) - нет (платеж 100 USD в год, без иностранной карты и иностранного резиденства не сможете поучать средства от монетизации - зарегистрироваться и оплатить комиссию получится, а вот получить средства уже нет)

, чтобы оставлять комментарии