Позвольте мне начать с того, что это статья для тех, кто никогда не пытался реализовать код Push или просто хочу узнать больше об этом. Я слышал о Code Push Services много раз раньше, и это одна из самых больших функций EXPO, но я никогда не пытался получить один на React-Native init приложение
. Я расскажу о своей мотивации для внедрения кода-толкания и то, что я нашел интересным и полезным по пути.
Почему код нажимается хорошо?
Я не фанат производственных ошибок. Если ошибка каким-то образом удается попасть в производство (и она делает), вы находитесь под давлением, чтобы исправить его и развернуть обновление Begfix на устройствах как можно скорее. Часть развертывания — это хлопот, поскольку вам необходимо создать версию iOS, версию Android, найдите и доступа к учетным записям разработчика, убедитесь, что номера версий верны, дождитесь просмотра обзора приложений из магазинов и т. Д. И это поглощение времени. Чтобы облегчить развертывание части, обслуживание под названием Code Push заходит. Это облачная служба от Microsoft Visual Studio App Center , что действует как центральный репозиторий, где разработчики могут публиковать определенные обновления. Эти обновления затем запрашиваются приложениями с помощью Client Code Push SDK. Другими словами, вы создаете JavaScript Bundle, который публикуется в Code Pusher Service, и вы настраиваете приложение клиента для загрузки сборки JavaScript из Code Push Consosity Condits.
Как настроить код push
Завести аккаунт
Чтобы начать с кода Push, вам нужно создать учетную запись на Visual Studio App Center . Наряду с Code Push, App Center App Visual Studio предлагает создание бинарных сборных приложений (APK, AAB, IPA), аварии и использование аналитики, тестирование приложения на реальных устройствах и управление распределением. Вы увидите все эти функции на панели инструментов App Center, когда вы создаете приложение в App Center. Кодовой толчок бесплатный для неограниченного количества сборки и устройств.
Создать приложение
Когда вы добавляете новое приложение в App Center, рекомендуется создать новое приложение для каждой платформы, одно приложение для Android, одно приложение для iOS. При создании нового приложения вам будет задано имя вашего нового приложения, типа выпуска, ОС и платформы. ОС — это Android или iOS, а платформа реагирует на родной, а тип выпуска предназначен только для метки, я назвал добычу шахты. После того, как вы создали приложение, в боковой панели, перейдите к распространению> Code Push, там у вас будет список всех выпусков кода, которые вы создали.
Настройка клиента SDK.
Прежде чем создать выпуск для Code Push, давайте реализуем код Push SDK в наше нативное приложение React Nate. Пакет, необходимый для кода Push в реакции нативных приложений React — Nature-Code-Push Отказ Прежде чем начать реализацию кода Push SDK, Проверьте соответствующую версию Code Push , в зависимости от вашей реактивной нативной версии. Моя версия оригинального родного составляет 0,62,2. Так что я буду использовать React-Native-code-push@v6.2
Отказ После установки пакета NPM необходимо установить нативный модуль, так что следуйте за Настройка IOS и настройки Android Отказ Для Android процесс похож на другие, добавляя некоторые строки на Android/settings.gradle
, Android/App/build.gradle
, MainaPlapulation.java
и strings.xml
Отказ В MainaPlapulation.java
Самое важное изменение
/// MainApplication.java ... @Override protected String getJSBundleFile() { return CodePush.getJSBundleFile(); } ...
Эти строки говорят, что пучок JS не предоставляется локальным связке JS, который находится в приложении Binare, но из кода нажимается. В strings.xml
Самое главное — CodePushDeploymentkey . Вы можете получить его с помощью Code Push CLI, но также вы можете найти его в приложении приложений приложений App Center, в разделе Code Push Section, щелкните значок параметров, который находится рядом с выбором развертывания. Это ключ, который идентифицирует развертывание, и с этим ключевым приложением знает, из какого развертывания для поиска обновлений. По умолчанию есть два развертывания, постановка и производство. Это позволяет вам иметь тестирование, постановку, производство и другие версии приложения, чтобы вы могли отправить код нажатия только для определенного развертывания приложения. Руководство для кода Push имеет целый раздел для управления Несколько развертываний Отказ Для пытаясь целей, мой совет, что вы не определяете CodePushDeploymentkey внутри strings.xml
, но в Android/App/build.gradle
под buildtypes раздел. По умолчанию есть два типа сборки: Отладка {} и Выпуск {} и вы можете определить CodePushDeploymentkey как Resvalue «string», «CodePushDeploymentkey», «<< Ваша кодеповреждение >>« »
, для каждого типа сборки. Мой buildtypes Похоже на это.
// android/app/build.gradle buildTypes { debug { signingConfig signingConfigs.debug resValue "string", "CodePushDeploymentKey", '""' } release { signingConfig signingConfigs.debug minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" resValue "string", "CodePushDeploymentKey", '"<< CodePushDeploymentKey >>"' } }
Вы можете увидеть, что для отладки я оставил CodePushDeploymentkey Пусто так, чтобы я не получаю никакого взаимодействия с кодом push в режиме Debug/Development. Кроме того, если у вас есть другой тип сборки, здесь вы можете добавить ключ развертывания для этого типа сборки. Хорошее, что нужно знать, это то, что развертывание может быть определено сценарием, с Опции CodePush Отказ Для части IOS вам нужно добавить несколько строк в Appdelegenge.m
. И измените откуда приложение получает выпуск JS Bundle. Мой SourceUrlforbridge Метод выглядит так.
// AppDelegate.m (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { #if DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; #else return [CodePush bundleURL]; // this is important line #endif }
Ключ развертывания идет к info.plist. Чтобы сделать различные типы сборки нацелены на различные развертывания, в соответствии с настройками сборки необходимо добавить пользовательскую настройку, называемую CodePush_key
Отказ Для отладки я оставил его пустым, а для выпуска я добавил клавишу развертывания производства. С этим, внутри info.plist
Настройте это CodePushDeploymentkey смотрит на настройку, определенные в настройках сборки.
// info.plist ...CodePushDeploymentKey $(CODEPUSH_KEY) ...
Есть часть для Конфигурация доменов исключения HTTP Для приложений iOS и настройки подписания кода для Android и Иос , но для попытки вне целей я не настроил его, но это определенно что-то посмотреть вверх и настроить.
Теперь мы отправляемся в JavaScript часть установки. Первое, что мы делаем, это то, что мы охватываем нашу запись приложения к Code Push Push Component Component (HOC) и добавить параметры нажатия кода
import codePush from "react-native-code-push"; let codePushOptions = { checkFrequency: codePush.CheckFrequency.ON_APP_RESUME, updateDialog: { appendReleaseDescription: true } }; class MyApp extends Component { .. .. } export default codePush(codePushOptions)(MyApp);
Вы можете проверить список Кодовые опухолки
здесь Отказ Опция . Updatedialog: {AppendReleaseScription: True}
означает, что пользователь получает диалог обновления, когда обновление доступно.
И это все необходимые установки. Есть много вариантов и вещей, которые нужно заняться на каждом этапе настройки до сих пор, но эта настройка до сих пор достаточно хороша, чтобы вы начали.
Вы можете найти много ценную информацию о РЕАКТИРОВАННЫЙ КЛИЕНТ КЛИЕНТНЫЙ ГИДАНСКИЙ СДК
Выпуская обновления Code Push
Выпущенные обновления выполняются только через терминал, а для доступа к App Center The Terminal вам нужно установить App Center CLI Отказ Для получения более подробной информации о App Center CLI и как настроить его проверять Руководство Отпустить обновление текущего кода ты бежишь
AppCenter CodePush Release-raction-a <Ваше имя пользователя>/<имя вашего приложения> -D <ваше развертывание>
Это создаст новое реагирование на родильный пакет и загрузите его к толкаю кода. В следующий раз вы запустите версию выпуска приложения, вы получите подсказку, что обновление доступно.
Существует возможность приложений CLI CLI для передачи токена в качестве аргумента, поэтому вы можете опубликовать новые сборки без входа в App Center. Это очень полезно для DevOps, когда вы хотите автоматически опубликовать обновление, когда Git Push на производственную ветку.
Руководство магазинов
Несмотря на то, что это «абстрактный» способ применения обновлений между устройствами, Android не имеет конкретного ориентира для этого, но Apple делает (как обычно). Вы можете найти больше информации в Хранить соответствие руководства
Пример приложения
Я создал простое приложение TODO с реализованным кодом, вы можете проверить это здесь на github.com/masimo93/todocp Отказ Это простое приложение, которое имеет навигацию, Redux для государственного управления и асинхронизации.
Оригинал: «https://dev.to/lloyds-digital/implementing-code-push-in-react-native-applications-25nj»