상세 컨텐츠

본문 제목

react-native codepush 적용중에 2가지 문제점이 발생

개발기록

by 까먹기전에 2023. 7. 22. 21:51

본문

반응형

현재 코드푸시를 적용해둔 상태인데 2가지의 문제가 발생했다.

 

첫번째로는 다운로드 실패건, 두번째로는 다운로드와 인스톨 횟수가 일치하지 않는다는것이다.

 

다운로드 실패 

지금까지 다운로드 실패가 2건이 존재했다. dev, staging 각 1번 

안드로이드 폰에서 2번 발생했는데 정확한 오류명은 앱센터에 남기지 못했다(왜!!!!)

            update.download((progress: DownloadProgress) => {
                    setDownloadProgress(progress)
                }).then((localPackage) => {
                    localPackage.install(installType).then(() => {
                        setCodepushState('UPTODATE')
                        setCodePushUpdateState('COMPLETE');
                    }).catch((error) => {
                        setCodePushUpdateState('INSTALL_ERROR');
                    });
                }).catch((error) => {
                    setCodePushUpdateState('DOWNLOAD_ERROR');
                })

(catch에 error를 적극적으로 사용하라고!!)

 

사실 다운로드 오류에 대해 생각을 하지 못했고 어떤 프로세스로 받을지에 대한 고민만 했다.

 

리모트서버에 앱버전 관리 api로 먼저 기기의 버전과 비교를 하고, 필수설치인지 옵션설치인지 검사했고

 

옵션설치이면 백그라운드로 다운로드만 받고 다음 앱실행시 설치, 필수설치일땐 스플래쉬를 hide한 후에 다운로드화면으로 전환, 다운로드가 완료되면 즉시설치를 진행했다.

 

에러메시지를 앱센터 이력에 추가했었고 에러가 날때까지 계속 코드푸시를 올리고있는데 거짓말처럼 문제가 발생하지 않는다... ㅎ....ㅎ.....

 

깃헙이슈에 대화들을 보면 오후 2~4시경에 다운로드 실패가 빈번하다는데 (한국인 댓글도 있었던걸로 기억함)

 

외쿠긴형들 사는나라 시간대랑 코리아랑은 다르긴한데.... 저 위에 사진 오류도 3시경이긴하다..

 

다운로드, 설치 횟수 불일치

안드로이드에서는 없었는데 아이폰에서 다운로드에 횟수는 올라가지않고 인스톨만 1이 올라갔다.

 

이거때문에 담당자에게 열심히 파파고로 번역기를 돌려서 메일을 보냈다.

 

담당자에게 5분만에 답변이 빠르게 왔었다 7~8번왔다갓다했는데, 요약하자면

앱센터에 api이력들을 har파일로 추출해서 보내주었고 소스코드와 이것저것 애기했는데 개발담당자와 애기하고 결과가 나오면 다시 연락주겠다고 했다.

 

근데 나의 의심으로는 다운로드 -> 즉시설치

 

이 구조인데 다운로드후에 앱센터에 다운로드 완료 api가 내부적으로 날라가다가 즉시설치땜에 앱이 리로드 되면서 api가 취소가 되서 그런게 아닐까...? 라는 의심이 된다.

 

이말을 하긴했는데 담당자가 "No it should not be the case!" 라고 하는데 다운로드 완료 api는 내가 날리는게 아니자나효 ㅠㅠ

 

이런 의심을 하게된 이유는 처음에는 필수설치라도 설치타입을 "ON_NEXT_START" 로 잡아놓고

 

다운로드가 완료되었을때 codepush.restartApp()으로 재시작을 한 후에 notify~~App(함수명 까먹음) 으로 준비완료 알림을 보냈을때는 다운로드와 설치 횟수가 정상적으로 올라갔다.

 

그런데 즉시설치로 했을때 아이폰에서만 이런 문제가 발생하고 있었다.

 

그래서 이전 방식으로 돌리니 다시 다운로드 횟수도 잘 올라간다 ㅎㅎ...

 

담당자는 뭐 아니라고 하니 일단은 답변올때까지 이전 소스로 변경후에 추후에 답변에 맞게 보완을 해야겠다

관련글 더보기