-
Android, React Native 2023‧05‧14
RN - INSTALL_FAILED_UPDATE_INCOMPATIBLE 오류
com.android.ddmlib.InstallException: INSTALL_FAILED_UPDATE_INCOMPATIBLE: Existing package 패키지 이름 signatures do not match newer version; ignoring! 기기로 번들링 작업시 기기에 설치된 앱 버전 문제 때문에 그러함 이럴 때는 앱에 설치되어 있던 앱을 지우고 새로 번들링 하면 됨
-
React Native 2023‧02‧28
안드로이드 빌드 오류 Task :app:signReleaseBundle FAILED w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions
리액트 네이티브 빌드 중 제목과 같이 Task :app:signReleaseBundle FAILEDw: Detected multiple Kotlin daemon sessions at build/kotlin/sessions 이렇게 오류가 발생하였다. 프로젝트 폴더의 /android/build.gradle 파일을 열어서 classpath가 괄호로 묶여서 사용하는 경우는 classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") 이렇게 넣어도 된다. 실제 적용한 코드를 캡쳐한 모습은 아래와 같다.
-
React Native 2023‧02‧28
안드로이드 빌드 오류 - MainApplication.java:60: error: cannot find symbol ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
리액트 네이티브로 구성한 프로젝트 빌드를 하던 중 오류가 발생하였다. 원인이라는 getReactNativeHost().getReactInstanceManager()); 부분을 찾아 검색하였고 0.61.5 에서 0.63.3. 으로 리액트 네이티브가 업데이트 되면서 빠졌다고 MainApplication.java 파일에 아래 코드를 추가해보라고 한다. https://stackoverflow.com/questions/65837062/react-native-android-cannot-find-symbol-class-reactinstancemanager 결과는 실패다. 비슷한 원인들을 찾다보니 이런 링크가 있었다. https://github.com/facebook/react-native/issues/36060 위 내용들을 참고 삼아 수정한 방법은 기존에 프로젝트 폴더안에 android/app/src/release/java/com/프로젝트 이름/ReactNativeFlipper.java 를 복사가 아닌 다른 폴더로 […]
-
React Native 2023‧02‧27
리액트 네이티브 - 웹뷰에 유저 에이전트 수정하기 (iOS, Android)
리액트 네이티브에서 웹뷰를 쓰려면 https://www.npmjs.com/package/react-native-webview 를 이용해서 웹뷰를 이용하게 되는데 하이브리드앱 만들 때 user agent 를 변경해서 같은 웹페이지를 열었더라도 일반 브라우저에서 열었을 때랑 하이브리드 앱에서 열었을 때랑 다르게 작동시켜야 할 때가 있다. 이럴 때 user agent 를 변경하는 방법을 찾아보던 중 https://stackoverflow.com/questions/36590207/set-user-agent-with-webview-with-react-native 를 보게 되어 사용했다. 하지만 iOS 경우 배포하려 xcode에서 Product - Archive […]
-
React Native 2023‧02‧24
리액트 네이티브 커스텀 폰트 적용하기 (iOS, Android)
커스텀 폰트는 otf 파일이든 ttf 파일이든 상관없다.otf로 넣었다가 파일 지우고 ttf로 다시 넣으려고 할 경우 빌드 실패하면서 The following build commands failed: CpResourc ~~~~ 이런식으로 오류가 뜨기도 한다. 또는 unrecognized font family '폰트명' 이런식으로 제대로 적용되지 않은 경우도 있다. 위 경우를 다 겪고 나서 하나하나 다시 살펴보고 과정을 담아봤다. iOS 1. 프로젝트 폴더에 assets/fonts 폴더 […]
-
iOS, React Native 2023‧01‧20
개발 앱 실행 시 음악 앱의 재생 중단되는 현상 대응 (AVAudioSessionCategoryAmbient)
에어팟을 안끼고 폰빌드 했을 때는 발생하지 않았는데 에어팟을 끼고 빌드한 앱을 실행하니 재생 중이던 음악이 꺼졌다. 개발 중인 앱에 중간에 카운트 다운시 비프음을 넣으려고 react-native-sound 패키지를 설치했더니 이런 이슈가 발생하였다.꼭 저 패키지가 아니더라도 음원을 사용한다면 AVAudioSession 을 구성해야 개발한 앱을 실행할 때 다른 앱에서 재생 중인 음악이 중단되지 않는다. 나는 리액트 네이티브 프로젝트이므로 파일명과 구성은 […]
-
Android, React Native 2023‧01‧19
안드로이드 빌드 앱 실행 시 '찾을 수 없는 앱' 이라 하고 작동 안하는 경우
Android 8 로 테스트 하는 중 발견한 이슈로 AndroidManifest.xml에서 <activity> 중에 android:exported="true" 가 없거나 값이 "false"로 되어 있는 경우로 예제는 아래와 같다. 위 코드와 같이 Intent-filter 에 "android.intent.category.LAUNCHER" 가 있으면 android:exported="true" 으로 설정해 주어야 한다. 갤럭시 s7부터 구형 모델 테스트 하는데 발견되었다.Android 12 (API 31) 부터 생긴 이슈로 관련 내용은 이 곳을 참고 하면 된다. […]
-
Android, React Native 2023‧01‧18
리액트 네이티브 DB 선택 고민할 때 sqlite 쓰지 마세요. (API 30 오류 및 임시 해결방법 포함)
리액트 네이티브의 로컬 DB를 무엇으로 구성할까 고민하고 많이 찾아봤었다. 파이어베이스 부터 시작해서 realms 까지도 생각했지만 현 상황에서 sqlite에 대한 정보들이 가장 쉽고 빠르게 진행할 수 있었다. 하지만 국내에 공유된 sqlite (패키지 : andpor의 react-native-sqlite-storage)는 안드로이드 API 30에서 심각한 오류가 발생한다. 바로 Open database failed 로 DB가 아예 연결이 안된다. 하지만 패키지의 업데이트는 오래전부터 멈췄다. sqlite로 […]
-
Android, React Native 2023‧01‧16
React Native 앱 이름 한글로 설정하다 안드로이드 Api 33 (OS 13) 에서 강제 종료 현상
폰 빌드 했을 때 이상이 없었고 앱 출시했는데 다른 기기에서 오류 발생해서 디버깅을 시작했다. 에뮬레이터를 Api 33으로 인스톨하고 실행해봤더니 앱이 강제 종료되었다.깃을 역추적한 결과 바로 다국어 설정하던 strings.xml에서 오류났다. 내가 블로그 검색해서 얻어낸 다국어 방법은 ./android/app/src/main/res/values/strings.xml 경로에 기본으로 사용할 이름 또 ./android/app/src/main/res/ 폴더안에 values-ko 폴더 만들어서 strings.xml 파일을 생성한 뒤 이거 였다. 구형 OS 버전의 […]