개발하다보면 값을 확인하기위해 print 로 확인하는 경우가 많다.

그런데 Avoid 'print' calls in production code. 가 뜨면서 사용을 권장하지 않는다. 이유가 뭘까

 

일단 이 경고가 뜨는건 flutter 2.3.0 이후로 추가된 flutter_lints 패키지의 영향이다.

간단하게, flutter 에서 권장하는 문법으로 코딩하게 조언해주는 패키지다 

 

pubspec.yaml

pubspec.yaml 파일에 가보면 이렇게 패키지가 등록되어있을텐데 삭제하면 이 경고는 더 이상 뜨지 않는다.

 

경고를 해주는 이유는

print() 는 release 모드로 빌드해도 logcat 등에 그대로 출력된다.

만약 사용자에게 숨겨야하거나 민감한 내용을 print 를 삭제하지 않아서 로그에 그대로 나오게 된다면 문제가 생길수도 있다.

 

그래서 대신 debugPrint() 혹은 log() 를 권장한다. ( log를 더 권장하던데 하나의 글에서 본거라 확실치 않아서 나중에 더 찾아볼 예정)

 

다만... log는 developer 를 import 해줘야하고 debugPrint 는 길어서 그런가.. 잘 안쓰게된다.

상황에 맞게 잘 쓰도록하자

ios 빌드를 해야하는 일이 있어서 xcode 에서 빌드를 하는데..

Parse Issue, Module not found 에러가 떴다..

Runner.xcworkspace 로 xcode 를 열어야한다

 

알고보니 flutter/ios 폴더의 Runner.xcodeproj 파일로 프로젝트를 열었는데 Runner.xcworkspace 로 프로젝트를 열어야 했다.

 

아무튼 이렇게 빌드랑 시뮬레이터에서 실행까진 완료했는데

 

archive 하려니깐 또 위의 에러가 뜨더라.. 쩝.

 

해결하긴 했는데 뭐가 문젠진 모르겠다.

 

1. flutter clean

2. flutter pub get

3. cd ios

4. pod install

 

clean 으로 빌드 파일 등을 싹 지우고 pod install 로 새로 설치해주니 archive 가 되긴 되더라.

아마 앱패키지명이랑 버전등 이것저것 바꾸다가 좀 꼬인게 아닌가 싶다.

flutter 에서 fcm 을 추가하기 위해 firebase core 와 firebase messaging 을 추가하고 빌드하려니 에러 발생.

--------------

firebase_core: Using Firebase SDK version '8.10.0' defined in 'firebase_core'
firebase_messaging: Using Firebase SDK version '8.10.0' defined in 'firebase_core'
[!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly":
  In Podfile:
    firebase_core (from `.symlinks/plugins/firebase_core/ios`) was resolved to 1.11.0, which depends on
      Firebase/CoreOnly (= 8.10.0)

None of your spec sources contain a spec satisfying the dependency: `Firebase/CoreOnly (= 8.10.0)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

-----------------------

 

대략 이런 에러.. 이게 M1 프로세스에서 주로 발생하는 에러인듯하다.

 

뭐 이것저것 많이 해봤다

ios/Podfile.lock 파일을 지우고 pod update 하세요~ 등등

해결이 안되더라.. pod update 부터가 막혀버려서.

 

그러다 찾은 해결법

sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

이렇게 하니 바로 설치가 되었다. pod install 명령은 ios 폴더에 들어가서 해야할지도..? ios 폴더에서 작업중이었어서 루트폴더에서도

되는진 확인 안해봤다.

 

해결~

어떤 기능에 대한 코드를 아주 많이 작성하는 경우도 있다.

이런 느낌으로?

 

이게 줄이 길어질수록 한눈에 딱딱 보기가 조금 어려워진다

예전에 유니티할땐 #region ~~ 으로 묶을수가 있었는데 flutter[dart] 에서는 그런기능이 없나? 찾아봤다

 

https://marketplace.visualstudio.com/items?itemName=maptz.regionfolder 

 

#region folding for VS Code - Visual Studio Marketplace

Extension for Visual Studio Code - Provides folding for text wrapped with #region comments in VS Code.

marketplace.visualstudio.com

 

vscode의 이 extension을 쓰면 되더라.

사용법은 간단하다

vscode 에서 해당 extension 을 설치하고 코드에 #region, #endregion 만 입력해주면 끝

 

 

//#region 과 설명을 적고

//#endregion 으로 어디까지 묶을것인가 적는다

 

그다음 #region 왼쪽의 화살표를 누르면

 

이렇게 #region ~ #endregion 까지 접힌다. 굿.

nginx로 웹서버를 하나 열었더니 권한 에러가 뜬다

 

"/root/master/index.html" is forbidden (13: Permission denied),

 

해당 index.html 의 권한을 먼저 보고 

 

ls -l

 

root 사용자로 돼있다.

 

이후 nginx 설정 파일을 수정하자

 

nano /etc/nginx/nginx.conf

 

첫줄의 user 를 root 로 바꿔주니 해결됐다.

 

이것저것 찾아보니 방법이 많던데

나는 이걸로 해결돼서 일단 올려놓음

'Dev' 카테고리의 다른 글

Nginx 에서 Socket.io 세팅하기  (20) 2023.02.11
[Nginx] 에러 로그 실시간 확인 하기  (51) 2021.11.23
Fail2ban 설치  (47) 2021.06.07
[Raspbian] 라즈베리 파이 VNC 접속하기  (14) 2021.03.17
[Linux] ssh server 자동 실행  (19) 2021.02.16

+ Recent posts