코드 푸쉬는 MS에서 만든 오픈소스로서 앱을 심사없이도 실시간 업데이트를 가능하게 해주는 모듈입니다.
리엑트 네이티브에서는 네이티브 코드와 설정이 아닌 Javascript단의 코드와 assets(이미지, 폰트 등) 의 요소들을 앱 심사없이 바로 업데이트 할 수 있습니다.
UI 없이 (MS 에져프로젝트 관련 사이트가 있긴 한데 없다고 보시면 됩니다. ) CLI를 통해 관리가 가능하고
대략적인 프로세스는
code-push에 앱 등록
발급된 키를 이용하여 React-native iOS, Android에 Codepush 설정 (네이티브 설정이 필요합니다. )
Staging으로 실시간 릴리즈
확인 후 이상없으면 Production 버전으로 릴리즈
뭐 사용자의 25프로만 적용 이라던지 앱 실행시 강제 업데이트 후 재실행, 다음 앱 실행시 업데이트 등의 추가적인 옵션을 설정 가능합니다.
현재 스토어에 리엑트 네이티브로 제작된 안드로이드 앱에 javascript 소스상의 텍스트를 수정할 부분이 있어 적용을 해 보았는데 실시간으로 업데이트가 되는것을 확인하였습니다. 앱 실행후 백그라운드에서 업데이트 관련 소스들을 다운로드 한 후 재실행되는 과정이 초기 설정에 맞춰져 자동으로 수행됩니다.
특히 iOS는 심사가 최소 이틀 이상 걸리게 되어 있는데 급하게 수정해야하는 버그나 텍스트, 이미지 부분에 적용하기 좋아보입니다.
앱 업데이트는 잘되는데 restart하면 앱이 계속 rollback합니다.
onNextRestart 모드도 처음 restart할 때는 잘 설치된 다음에 다시 restart하면 rollback 됩니다.
해당 이슈가 글은 봤는데 해결방법은 못찾겠네요
앱은 rn은 아니고 react로 개발한걸 cordova로 감싸서 서비스 하고 있습니다.
@crazywook 업데이트 후에 롤백이 되는 것은 업데이트 후 정상 구동이 되었다고 코드푸시에게 알리지 않았거나 실재 업데이트 후 실행에 실패했기 때문입니다. 코드푸시에게 정상으로 구도오디었다고 알리는 것은 설정에 따라 자동으로 알리기도합니다. 다음 함수를 확인해보세요.