Expo의 OTA 업데이트와 release-channel에 대해 정리해 보았다.


expo에는 OTA 업데이트라는 것이 있다.
$ expo publish

라고 치면, 개발자의 PC안의 코드를 사용해, 유저의 스마트폰안의 어플리를 재기록한다고 하는 기술이다.
즉, 앱의 업데이트를 심사를 통하지 않고 실시할 수 있다.
게다가 업데이트의 반영까지 무려 0분.
꿈의 기술이 표준으로 붙어 있다.

(일반적으로 앱 업데이트는 심사에서 3일 기다리기도 합니다.)

또, 디폴트로 따라 오는, release-channel이라고 하는 기능을 사용하면, channnel 마다, 업데이트를 할 수 있으므로, staginig 환경, 프로덕션 환경을, 타사 라이브러리 없이 실현할 수 있다.

release-channel 사용법


$ expo publish --release-channel <環境名>
$ expo build:android --release-channel <環境名>

처럼 release-channel 뒤에 임의의 문자열을 전달하면


$ expo publish --release-channel 'staging'
$ expo build:android --release-channel 'production'

전달 된 임의의 문자열은 코드에서 다음과 같이 참조 할 수 있습니다.
import { Constants } from 'expo'
const env = Constants.manifest.releaseChannel
console.log(env) // => 'staging' など、

환경 변수를 만들고 싶을 때,
const appName = env === production ? '本番アプリ' : 'ステージングアプリ'

처럼, 좋다.

OTA 업데이트에는 주의해야 할 사항이 있다.



사용자가 앱을 설치하고 처음 열면 expo publish한 버전이 아니라 google play에 올린 버전이 사용자에게 표시된다! !
보기 expo publish가 실패한 것처럼 보입니다.
그러나 사용자가 앱을 한 번 닫고 다음에 열면 OTA 업데이트가 반영된 앱이 표시된다.

왜 이런 일이 일어나는지는 다음의 예를 보시는 것을 알 수 있다.

즉, OTA 업데이트의 수만큼, 유저는 앱을 재기동할 필요가 있다.



예를 들어, 버전 1
$ expo build:android --release-channel production

그런 다음 google play console로 apk를 업데이트합니다.
그런 다음 디자인에 수정을 추가 한 version2
$ expo publish --release-channel production

그런 다음 업데이트합니다.
그런 다음 치명적인 버그를 고치고 version3
$ expo publish --release-channel production

로 업데이트합니다.

이때 google play store에서 처음으로 앱을 설치한 사용자의 거동은 다음과 같다.
~처음 앱 열기~
version1이 표시됩니다.
~ 두 번째로 앱 열기 ~
version2가 표시됩니다.
~ 세 번째로 앱 열기 ~
version3이 표시됩니다.

즉, 사용자는 최신 버전의 앱을 열려면 앱을 설치 한 후 OTA 업데이트 횟수, 앱을 다시 시작해야합니다! ! !

큰 기능 변경은 google play console에 apk 파일을 올리고 경미한 변경은 OTA 업데이트를 사용하는 것처럼 구분하는 것이 가장 좋습니다

OTA 업데이트로 할 수없는 일



아이콘 변경
앱 이름 변경
앱 스플래시 화면 교체
expo sdk 버전 업
등,,,

결론



・OTA 업데이트는 편리하지만, 큰 기능을 추가할 때는, 제대로 APK 파일등을 google play store에 제출하지 않으면 아픈 눈을 보게 된다.

・Expo.updates.reload()라고 하는 메소드가 준비되어 있으므로, 그것을 이용하는 것으로, OTA 업데이트의 타이밍을 제어 할 수 있다.

· apk를 업데이트하고 싶다면 OTA 업데이트가 아니라 솔직하게
expo update:android

를 사용하는 것이 좋은 것 같습니다.
그러나 위의 명령은 매우 다양한 설정이 필요합니다.

expo update 방법(공식 문서)



이 헨테코인 expo publish의 거동은, expo 공식도 문제시하고 있어, twitter로 이 사양의 개선하는 것이 좋은지 앙케이트를 취하고 있었다.
가까운 장래에 이 사양은 어쩌면 바뀔지도 모른다.

좋은 웹페이지 즐겨찾기