React Native27 Expo WebView에서 localhost 연결 안될 때 해결 방법 (ERR_CONNECTION_REFUSED) 하이브리드 앱을 만들면서React / Vite 로 만든 웹을 Expo WebView로 띄우려고 할 때실기기에서 아래 오류가 발생할 수 있다.net::ERR_CONNECTION_REFUSEDurl: http://localhost:5173이 문제는 구조 때문에 발생하는 정상적인 현상이다.원인과 해결 방법을 정리한다. 문제 원인앱에서 localhost 는 PC가 아니라 폰 자기 자신을 의미한다.http://localhost:5173이 주소는PC에서는 정상Expo Go 앱에서는 폰 내부 주소로 인식됨그래서 서버 연결 실패가 발생한다.해결 방법 1 — PC IP로 접속터미널에서 IP 확인ifconfig또는ipconfigMac 기준en0:inet 192.168.0.87이 경우 PC IP는192.168.0.87Web.. 2026. 3. 11. 맥북 데스트탑에 있는 apk파일을 실제 기기에 설치하는 법 안드로이드로 앱 테스트 할 일이 있었는데 iterm에서 apk 파일을 빌드한 뒤 실제 기기로 설치하는 법이다. 편하게 프로젝트 내 /android/app/build/outputs/release/app-release.apk 파일을 바탕화면으로 옮겨줬고맥의 터미널을 실행해서 아래와 같이 명령어를 입력한다.// 실제 안드로이드 기기는 usb로 연결한 상태다// 기기와 연결되었는지 확인adb devices//아래 처럼 리스트 나오면 연결 성공List of devices attachedR3XXXX device// 바탕화면에 있는 apk 파일 설치adb install ~/Desktop/app-release.apk 2026. 3. 9. ERROR Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that: 이 에러는 폴더블 기기를 접거나 펴면서 화면 크기가 변할 때,안드로이드 시스템이 Activity를 재시작(Recreate)하려고 하면서발생합니다. 이때 expo-router의 루트 내비게이션 설정이중복으로 감지되는 것이 원인입니다. 에러의 주된 원인은 폴더블 기기에서 화면을 펼칠 때 발생하는'Configuration Change'로 인해 Activity가 재시작되면서expo-router의 초기화 로직이 꼬이는 경우입니다. 이를 해결하기 위해 AndroidManifest.xml에서 configChanges옵션을 보강하고, 가로/세로 전환 시 Activity가 재시작되지않도록 설정해야 합니다. 1. android:configChanges에 smallestScreenSize, screenLayout등이 잘 포.. 2026. 2. 25. Expo android app apk 파일 추출하기 테스트 앱을 공유하기 위해 설치 파일이 필요할때 유용한 방법이다. 맥북 기준으로 iterm을 먼저 연다경로를 프로젝트 경로로 이동 시킨다. cd example-appcd android./gradlew assembleRelease 프로젝트 내부의 안드로이드 폴더로 진입하면./gradlew assembleRelease 를 입력한다.이후 빌드 진행하게 된다 (대략 30분정도 걸림ㄷㄷ) 다 된 apk 파일은 android/app/build/outputs/bundle/release/app-release.apk 위 경로에 있어서 빼와서 공유하고 맘대로 하면 된다! 2026. 2. 6. react-native-magic-modal 이중 모달 사용 시 첫번째 모달 닫히지 않는 이슈 / 백핸들러 안되는 이슈 해결 게시글 제목을 어떻게 써야할지도 모르겠는데 어떻게든 내가 삽질하다가 구현 완료된거를 공유하고 싶었다 우선 내가 원했던 플로우는로그인 화면 -> 회원가입 이동 -> 즉시 약관동의 바텀시트 띄움1. 약관 필수 동의 모두 체크 -> 완료 -> 회원가입 진행2. 필수 동의 미체크 -> 완료 -> 필수 체크 안내 알림 모달 띄움 -> 확인 -> 다시 1번 진행 or 뒤로가기 백핸들러 실행 -> 바텀시트 닫히고 로그인 화면 이동3. 필수 동의 미체크로 백드랍 터치 시 바텀시트 닫히지 않게 방어4. 아무것도 동작하지 않고 백핸들러 작동하면 바텀시트 닫히고 로그인 화면 이동 그런데 문제 상황은로그인 화면 -> 회원가입 이동 -> 즉시 약관동의 바텀시트 띄움1. 약관 필수 동의 모두 체크 -> 완료 -> 회원가입 진행2.. 2025. 12. 31. react native 다양한 애니메이션 효과 사이트 https://www.animatereactnative.com/animations AnimateReactNative.com - Premium and Custom React Native animations.AnimateReactNative.com - Premium and Custom React Native animations.www.animatereactnative.com 2025. 12. 29. react native 키패드 있을 때 버튼 함수 바로 실행하는 방법 로그인 화면에서 아이디와 비밀번호 input에 포커스가 되면 키패드가 열리는데키패드가 열린 상태에서 로그인 버튼을 터치하면 키패드가 먼저 닫히는 동작이 돼서 로그인 버튼을 결국 한번 더 눌러야 하는 불편함이 생긴다.이 부분은 ScrollView로 감싸서 ScrollView의 속성인 keyboardShouldPersistTaps="handled"을 추가하면 된다. 그런데 또 문제는 로그인 버튼 밑의 계정찾기와 회원가입 버튼이 있다는 것 .. !원래라면 두 버튼들도 터치 시 바로 화면 이동해도 되는데 이번 프로젝트에서는 특히 회원가입 버튼을 누르면 바로 넘기면 안됐다(는 내맘이긴 함).왜냐하면 회원가입 화면 이동 즉시 약관동의 바텀시트가 뜨기 때문이다.로그인 화면에서 키패드가 안 닫힌 채로 회원가입 이동하면.. 2025. 12. 23. react native 컴포넌트 높이 구하기 캐러셀을 구현하다가 react-native-reanimated-carousel 라이브러리를 쓰게 됐는데이 라이브러리가 컴포넌트의 width, height값을 정적으로 주는 것 같았다.캐러셀 밑에 또 추가한 Pagination 컴포넌트를 두니 캐러셀 내부의 컴포넌트 길이가 길어지면 Pagination이 화면 밑으로 내려가서 가려지는 등의 문제가 생겼다.그래서 캐러셀의 height 값만은 꼭 동적으로 줘야했는데 이때 onLayout 속성을 사용하니 해결됐다. import Carousel, { ICarouselInstance, Pagination } from "react-native-reanimated-carousel";// 스크립트 & 스타일시트 로직 생략 const [carouselHeight, setC.. 2025. 12. 22. eas build는 됐는데 eas submit이 안될 때 eas build로 앱 빌드 파일은 만들었는데 언제 파일 하나하나 다운 받아서 구글 스토어랑 앱 스토어 또 언제 들어가서 언제 파일 업로드 하고 있음 ? 바ㅏㅏㅏㅏㅏㅏ로 eas submit으로 라이브러리 추가 하면 되는데 ? 라고 너무 편하게만 생각했다가 며칠을 submit이 안돼서 일단 수동으로 다운 받고 올림 ㅋㅋㅋㅋㅋㅋ 계속 이렇게 살면 능률 따지는 개발자의 걸맞는 자세가 아니라고 생각돼서 이번에야 말로 해결하고자 함 ! 도대체 왜 안되는걸까 일단 submit 명령어를 치면✖ Something went wrong when submitting your app to Google Play Store.The service account is missing the necessary permissions to.. 2025. 12. 18. expo eas update 안되는 문제 해결 / call to function expoUpdates.checkForUpdateAsync has bee rejected. caused by failed to check for update expo eas로 빌드, 스토어에 제출까진 성공했는데 update가 안되는거....업데이트 내역이 있으면 앱 작동 시 알림이 뜨게 UpdateProvider 만들어서 넣었었는데 자꾸call to function expoUpdates.checkForUpdateAsync has bee rejected. caused by failed to check for update 이 에러가 뜨면서 업데이트 안됐었다. runtime version, build number도 스토어에 등록한 것과 모두 일치했는데도 안됨 ㄷㄷㄷ며칠 고생하다가 회사에서 문제 없이 쓰는 앱의 expo 사이트 들어가서 확인 해보니update 올린 내역에 들어가서 맨 밑에 있는 Deployments 항목이 있었던 것이다. 문제가 있던 프로젝트에는 D.. 2025. 12. 18. eas build 시 build number 수동으로 관리하기 / eas build number 다운그레이드 하기 빌드할때 빌드 넘버를 version 따로 설정한 파일로 수동 관리하려고 했는데 자꾸 자동 업데이트 돼서 번호가 제각각이었다.내가 설정한 빌드 넘버가 15라면 android 는 16, ios는 14 이렇게 ㅋㅋㅋㅋㅋ 휴 .....일단 급한대로 무지성으로 업데이트 했다가 이제는 도저히 회피하면 안될 것 같아서 정리하려 한다. 일단 버전 업데이트 하는 로직이 있는 파일이다. 프로젝트 최상단 루트에 만든다.//version-manager.jsconst fs = require("fs");const argv = process.argv ?? [];const versionInfo = require("./versionInfo");function incrementVersion() { versionInfo.VERSION .. 2025. 12. 8. expo android splash screen icon size issue 똑같은 아이콘 이미지 파일 복붙하는데 왜 한 앱에서만 아이콘이 확대돼서 짤려 보이는걸까? 이거는 정말 모르겠다 ㄷㄷㄷ ios에서는 정상적으로 나오는데 android 스플래쉬 화면 내에 있는 아이콘만 확대돼서 가장자리 부분이 짤리는 이슈가 생겼다. 찾아보니 프로젝트/android/app/src/res/drawable에 따로 스플래쉬 아이콘 파일이 없었는데 추가로 생성해준다.// /android/app/src/res/drawable/splash_icon.xml 이후 프로젝트/android/app/src/res/values/styles.xml 이렇게 고정값으로 아이콘 크기를 지정해주면 스플래쉬 내 아이콘 크기가 짤리지 않고 잘 보인다. 해결 ! 2025. 10. 30. 이전 1 2 3 다음