https://padosum.dev/React-Native-folder-and-file-structure
Swift 및 Objective-C 코코아 프로젝트의 종속성 관리자
cocoaPod 사용법_간단
https://zeddios.tistory.com/25
라는 에러가 떴다.
sudo rm Podfile.lock
sudo rm -r [프로젝트명].xcworkspace
sudo rm -r Pods
pod install
//출처: https://shoveller.tistory.com/4
아래처럼 설치 셋팅하니 되었다.
아마 이전엔 npm install react-native-ble-plx 하고 pod update를 안해준게 아닌가 하는 생각이 든다.
1) Target 'smartMattApp' has copy command from '/Users/david/Desktop/code/smartMattApp/ios/smartMattApp' to '/Users/david/Library/Developer/Xcode/DerivedData/smartMattApp-badqbroephxjrzdctpaxelrzzwod/Build/Products/Debug-iphonesimulator/smartMattApp.app/smartMattApp'
2) Target 'smartMattApp' has link command with output '/Users/david/Library/Developer/Xcode/DerivedData/smartMattApp-badqbroephxjrzdctpaxelrzzwod/Build/Products/Debug-iphonesimulator/smartMattApp.app/smartMattApp'
여러개의 커맨드가 생산한다는 뜻으로
https://stackoverflow.com/questions/50718018/xcode-10-error-multiple-commands-produce
위에 가보면 중복된 파일명, 즉 내 경우는 에러 메시지 마지막에 smartMattApp을 삭제해주면 된다. 중복되니까.
• Check that you link at least one permission handler in your Podfile.
• Uninstall this app, delete your Xcode DerivedData folder and rebuild it.
• If you use use_frameworks!
, follow the workaround guide in the project README.
퍼미션 핸들러가 감지 안되었다는 에러.
아마 앞의 에러 땜에 ios 폴더 안에 pod 관련 파일들을 다 날리고 reinstall 해줬기에
react-native-permission 라이브러리 사용을 위해 ios에서 설정해주는 게 초기화 돼서 에러 뜨는듯.
!] No podspec found for ``Permission-BluetoothPeripheral`` in ``../node_modules/react-native-permissions/ios/BluetoothPeripheral.podspe
그래서 위에 공식문서에 나온대로 pod를 넣어주고 pod install을 해주면 detect가 되므로 에러가 해결된다.
이제 ios 부분에 큰 에러는 다 잡고 기존에 Windows os에서 잘 진행해왔던 안드로이드 쪽을 맥
에서 갈아타려고 git pull 해서 프로젝트 이전 후 되겠지 하고 안드로이드 실행 react-native run-android
해봤다
겨우 ios 어느정도 잡았는데.. 와 신난다 xx
어쨋거나 이유는 알아야 하니, 에러 메시지 긁어서 구글링.
구글링 답은 접근권한 문제라 한다.
chmod 755 android/gradlew
실행하면 됨. ios pod쪽인가 거기선 root로 실행했다고 지x 안드로이드 쪽은 root 권한 안줬다고 지x
이게 하이브리드 프레임워크에 묘미인가? 지랄인가 모르겠지만..
출처 : https://right-hot.tistory.com/entry/React-Native-Error-spawn-gradlew-EACCES
물론 내가 맥을 첨 써보고 하니 pod 개념을 아직 모르고, 리눅스도 유닉스계열도 안써보니 chmod 즉 권한을 잘 몰라서 헤맨것도 있는데 맥북 옮기고 3일동안 기존 프로젝트 런을 위한 에러만 잡은듯.. ㄷㄷ
pod랑 권한 공부해야지
pod install
실행시 ios/Podfile에 pod들을 install함. Podfile에 추가, 수정, 삭제시에도 사용. Podfile.lock에 리스트된 팟들엘 대해선 지정된 버전만 다운. 리스트 되지 않은 팟들은 Podfile에 명시된 조건으로 다운.
다운로드 받을 pod를 결정하는 것은 Podfile.lock 또는 Podfile.
Podfile.lock이 있으면 .lock파일 내에서 명시된 pod와 그 버전을..
없으면 Podfile에서 pod와 명쇠던 버전을 받고, Podfile.lock에 버전을 명시함.
Podfile.lock을 참조하지 않고 가진 pods들의 최신버전으로 업데이트 시켜줌.
install은 .lock에 지정된 version만 install.
update는 lock 무시하고 걍 모든 pod 라이브러리의 최신 version으로 update함.
대체로 Podfile에 pod 기록 하고 pod install 만 해줘도 될듯.
기본 레퍼런스 :
https://onelife2live.tistory.com/30
추가 고급 : http://monibu1548.github.io/2018/04/16/cocoapods-prompt/
pod install vs pod update :
https://eso0609.tistory.com/96