안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2022년 12월 14일 수요일

react-native link가 동작을 안해요

 0.6.0 부터 사라졌습니다.


from React-Native 0.60.0 linking packages using react-native link has become redundant

2022년 12월 12일 월요일

React vs React Native

 출처: React vs React Native

React 는 Library 이다. 

React 는 Web개발 용이다.


React Native는 Framework이다.

React Native는 Cross-Platform 개발(앱개발) 용으로 좋다.

Picker has been removed from React Native

 Picker는 React Native에서 지워졌다고 한다.

Picker를 사용하기 위해서는 다른 방법을 찾아야 한다.

npm i package에서 i의 의미는?

 install 약자이다. install 치는 거 보다 I 치는게 훨씬 좋다.

rncwebview was not found in the uimanager ios

 출처: https://stackoverflow.com/questions/61832232/invariant-violation-requirenativecomponent-rncwebview-was-not-found-in-the-u

  1. npm i react-native-webview
  2. cd ios
  3. pod install
  4. (npx) react-native run-ios

mac 에서 ctrl+z로 되돌리기에서 다시 되돌리기

 다시 되돌릴려면 ctrl+y 가 아니라 ctrl+shift+d이다.

헤깔리는군.

React Native Tutorial 중 Router 예제 중 Warning - 오래된 예제로 보임

 출처:https://www.tutorialspoint.com/react_native/react_native_images.htm

Router 예제는 에러를 처리하고 나니 아래 warning이 뜬다.

Deprecation in 'createStackNavigator': 'transitionConfig' is removed in favor of the new animation APIs


 처리하려면 말 그대로 transitionConfig 를 최신으로 업데이트 해야 하는데 tutorial안에서는 해당 code가 안 보인다. 내가 못 보는 것일 가능성이 많긴합니다만

 그래서 일단은 넘어가고 Router보다 Navigation을 많이 사용한다고 하니 다음에 확인 해 보고 최대한 최신 버전을 사용하도록 해봐야겠습니다.

Invariant Violation: requireNativeComponent: "RNSScreen" was not found in the UIManager

출처: https://stackoverflow.com/questions/66921263/invariant-violation-requirenativecomponent-rnsscreen-was-not-found-in-the-ui

몇 개를 더 인스톨해줘야 한다.

아래를 install 한다.

npm install @react-navigation/native


npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view


맥에서 ios 를 개발중이면 아래 코맨트도 해주자.

npx pod-install ios


재시작합시다.

react-native run-ios

2022년 12월 11일 일요일

ViewPropTypes has been removed from React Native

 출처: https://stackoverflow.com/questions/72755476/invariant-violation-viewproptypes-has-been-removed-from-react-native-migrate-t


ViewPropTypes 가 더 이상 React Native에서 지원하지 않아서 발생하는 문제입니다.

출처에 있는 답변대로 몇 가지 설치 해야 되는 부분들은 설치를 하신 다음에 project 의 node_modules 폴더에 들어가서 원인이 되고 있는 xxxx.js 파일을 찾아야 합니다.

 제 경우에는 react-native-router-flux 였습니다. 해당 폴더의 src에 들어가서 문제가 되는 router.js 파일을 열어서 

    import {ViewPropTypes} from 'react-native' 를 찾아서 해당 ViewPropTypes를 삭제한 후

import { ViewPropTypes } from 'deprecated-react-native-prop-types'; 로 바꿔주면 됩니다.

ios Simulator에서 cmd+D 버튼 (디버그 버튼) 동작하지 않을 떄

 Simulator -> I/O -> Input -> Send Keyboard input to Device 체크하면 해결 된다.

안되면

Simulator -> I/O -> Keyboard -> Connect Hardware Keyboard도 체크한다.

React Native Tutorial 예제

 출처: https://www.tutorialspoint.com/react_native/react_native_images.htm

react Native 정말 기초적인 예제들이 있습니다.

실습하기에 좋군요.

2022년 12월 10일 토요일

React-Native Props

 출처: https://www.tutorialspoint.com/react_native/react_native_props.htm

props는 변경 하면 안되는 것들을 묶는 용도로 쓰이는 듯하다. 액션 관리 같은

mac을 위한 javascript 에디터 9가지

 출처: https://alvarotrigo.com/blog/javascript-editors-mac/

 9가지 중 제일 1번인 visual studio code를 설치했다.


에디터 없이는 Js 파일 생성도 어렵다. 사용하기가 매우 불편하다.

mac에서 .js (javascript) 파일 생성 방법

 Spotlight -> Text 입력 -> 텍스트 편집기 오픈 -> 저장 시 html 형식으로 지정 -> .js.html 로저장 -> 해당 파일 가서 .html 지우면 .js 로 만드는 선택옵션 나타남 -> .js 선택


React-Native State

 출처: https://www.tutorialspoint.com/react_native/react_native_state.htm

 state 는 나중에 고칠 수 있고 props는 나중에 고칠 수 없다.


unterminated string constant

 string constant가 끝나지 않았다는 이야기이다.


내 경우에는 '알머ㅣㄹㅇㄴㄹ이ㅏㅓㄹ미 

                  ㄹ아ㅓㅣㅁㄴ이ㅏ릴'

이런 식으로 2줄로 적으니깐 나타난다.


''+

''

같이 두줄을연결해주라는데 예시에는  '


'

식으로 쓰는데 이상하다.

2022년 12월 9일 금요일

React Native 간단한 예제

 출처: https://reactnative.dev/docs/tutorial

 역시 공식 홈페이지에서 나온만큼 그대로 복사 붙여넣기로 잘 동작한다.


error installing hermes-engine

 출처: https://github.com/facebook/react-native/issues/31505


1 - sudo gem install cocoapods-clean
2 - pod deintegrate
3 - pod clean ( this is no longer available )
4 - pod install


unable to open configuration settings file

 출처: https://lxxyeon.tistory.com/189


폴더에 가서 

pod deintegrate pod install

unable to find utility "simctl", not a developer tool or in PATH

 출처: https://stackoverflow.com/questions/29108172/how-do-i-fix-the-xcrun-unable-to-find-simctl-error


xcode -> Settings->Location에서 Command LIne Tools 를 눌러서 비번입력하면 들어간다.

2022년 12월 8일 목요일

Multiple Podfiles were found

 출처: https://stackoverflow.com/questions/73979612/multiple-podfiles-were-found-for-cocoapods-core-so-which-one-can-i-delete/74090722#74090722


 따라 해보고 있는데 파일을 찾을 수가 없다.. 진행이 어렵다..

중요한 에러는 아니였던듯.. 다른 에러를 고치고 나니 warning 으로 바뀌면서 해결이 됐다.

mac에 cocoapods 설정

출처: https://guides.cocoapods.org/using/getting-started.html

 출처에 나오는 대로 세팅하면 된다고 한다

2022년 12월 7일 수요일

bundle install 에서 could not locate Gemfile 에러

 gem file 이 있는 폴더에서 실행해야 한다.

React-Native 환경설정

 출처: https://reactnative.dev/docs/next/environment-setup


brew install node
brew install watchman

React-Native 설치하기

 출처: https://reactnative.dev/

npx react-native init MyTestApp

mac에 brew(Homebrew) 설치

 https://brew.sh/

에 나와 있는 설치 방법을 복사해서 붙여 넣으면 된다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Your Ruby version is 2.6.10, but your Gemfile specified 2.7.5

 출처: https://stackoverflow.com/questions/74189532/your-ruby-version-is-2-6-8-but-your-gemfile-specified-2-7-5

 루비 버전이 낮아서 발생하는 문제

아래와 같이 설치하면 된다.

$ brew update
$ brew install ruby-build
$ brew install rbenv

$ rbenv install 2.7.5
$ rbenv global 2.7.5

설치 후 아래와 같이 글로벌 Ruby 세팅을 rbeny에 넣어줘야한다.

After that, you need to export some configurations to define rbenv as default global ruby:


echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc


근데 echo로 넣는 게 문제인지 install에 2.7.5라고 지정해서 넣는 게 문제인지 다른 댓글에는 
문제라고 하기도 한다. 어지럽다.

일단 설치 후에 터미너을 껐다 켜서 재부팅 시켜줘라는 이야기도 있다.

mac에 react-native 설치 시 cocoapods를 gem vs homebrew 무엇으로 할 것인가?

출처:https://stackoverflow.com/questions/65570441/react-native-should-i-install-cocoapods-with-gem-or-homebrew

gem으로 하면 기존에 mac에 설치되어 있는 ruby와 충돌이 있어서 난감하니

brew로 하는 게 좀 더 클린하게 된다고 한다.

node.js 설치파일

https://nodejs.org/ko/


LTS 는 안정적인 버전, 현재버전은 최신버전

2022년 12월 5일 월요일

Invalid update: invalid number of rows in section 0

tableview에 지울경우 Object를 remove하지 않으면 발생한다.

출처: https://stackoverflow.com/questions/21870680/invalid-update-invalid-number-of-rows-in-section-0

2022년 12월 3일 토요일

unable to dequeue a cell with identifier reuseIdentifier

 tableView를 오버라이드 한 파일 만들때 주석으로 만들어주는 함수에 보면 

let cell = tableView.dequeuereusableCell(withIdentifier : "~~~~"가 있는데


~~~~ 자리에 내가 설정한 cell의 identifier를 넣어주지 않았기 때문에 발생


https://stackoverflow.com/questions/29282447/unable-to-dequeue-a-cell-with-identifier-cell-must-register-a-nib-or-a-class-f


출처: https://euna501.tistory.com/entry/unable-to-dequeue-a-cell-with-identifier-reuseIdentifier