작성
·
96
0
안녕하세요 제로쵸님
리액트 네이티브로 이번에 처음으로 앱을 개발해서 출시를 했습니다.
그런데 도저히 해결이 안되는 문제가 있어서 질문을 남깁니다!
import * as Application from "expo-application";
export const getUserAppVersion = () => {
return Application.nativeApplicationVersion ?? null;
};
안드로이드에서 앱버전을 가져오는 곳에서 에러가 생기고 있는데...
개발 과정에선 expo go 앱의 버전이 뜸 (정상)
프로덕션 배포 IOS의 경우 앱의 버전이 정상적으로 뜸 (정상)
내부 앱공유로 배포한 안드로이드의 경우 앱의 버전이 정상적으로 뜸 (정상)
프로덕션 배포 안드로이드의 경우 앱 버전이 안뜸 (문제)
참고로 버전은 아래와 같습니다.
"react-native": "0.76.7"
"expo": "~52.0.31"
혹시 이런 이슈의 원인이 짐작가시나요? ㅜㅜ 빌드까지 해서 테스팅 했을 때도 문제가 없었는데 프로덕션 배포 후에 정상적으로 작동을 안하니 어떻게 디버깅을 해야할지도 너무 난감하더군요...
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. suh.kiseok.new님 질문에 대한 해결 방안을 탐색해 보겠습니다.
안드로이드에서의 프로덕션 배포 시 앱 버전을 못 불러오는 문제는 종종 발생하는 이슈입니다. 이는 여러 가지 원인으로 인해 발생할 수 있으며, 대표적인 가능성과 해결책은 다음과 같습니다:
Proguard 설정 확인: 프로덕션 빌드에서 Proguard에 의해 코드가 최적화되면서 expo-application
모듈이 올바르게 동작하지 않을 수 있습니다. Proguard 설정 파일 (보통 proguard-rules.pro
)에서 관련 클래스를 보호하는 규칙을 추가해야 할 수 있습니다. 예를 들어, keep
명령어를 사용해 특정 클래스를 보존할 수 있습니다.
앱 권한 설정: 앱 버전을 읽어오기 위해 필요한 추가적인 권한이 설정되지 않았을 수도 있습니다. 필요하다면 안드로이드 매니페스트 파일을 통해 필요한 권한을 명시적으로 설정해 보세요.
빌드 버전 충돌: 안드로이드의 build.gradle 파일에서 버전 코드와 버전 이름이 제대로 설정되어 있는지 확인합니다. 만약 같은 버전 이름으로 빌드가 두 번 이상 배포되면 충돌이 발생할 수 있습니다.
관련해 참고할 수 있는 질문의 사례들입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
혹시 제 질문에서 부족한 정보가 있다면(안드로이드 매니페스트 파일 등) 알려주시면 전부 첨부하거나 코드블럭에 넣어두겠습니다!