새로운 맥에서 ios 실기기 빌드하는데 해당 에러가 뜨면서 앱이 하얀화면에서 멈춰있었다.

 

[VERBOSE-2:FlutterObservatoryPublisher.mm(101)] Failed to register observatory port with mDNS with error -65555.
[VERBOSE-2:FlutterObservatoryPublisher.mm(103)] On iOS 14+, local network broadcast in apps need to be declared in the app's Info.plist. Debug and profile Flutter apps and modules host VM services on the local network to support debugging features such as hot reload and DevTools. To make your Flutter app or module attachable and debuggable, add a '_dartobservatory._tcp' value to the 'NSBonjourServices' key in your Info.plist for the Debug/Profile configurations. For more information, see https://flutter.dev/docs/development/add-to-app/ios/project-setup#local-network-privacy-permissions
Connecting to the VM Service is taking longer than expected...
Still attempting to connect to the VM Service...
If you do NOT see the Flutter application running, it might have crashed. The device logs (e.g. from adb or XCode) might have more details.
If you do see the Flutter application running on the device, try re-running with --host-vmservice-port to use a specific port known to be available.

로그는 이정도

 

해결방법은 "시스템 환경설정" 에서

 

 

 

 

그리고 다시 빌드를 하면 잘 된다

Xcode's output:
↳
Writing result bundle at path:
/var/folders/mw/s87p0r9j4cnbnl0pbskz815h0000gp/T/flutter_tools.NCX2rj/flutter_ios_build_temp_dirpXAxz0/temporary_xcresult_bundle
: Error: Member not found: 'UnicodeChar'.
../…/src/structs.g.dart:661


int get UnicodeChar => Char.UnicodeChar;
^^^^^^^^^^^
: Error: Setter not found: 'UnicodeChar'.
../…/src/structs.g.dart:662
set UnicodeChar(int value) => Char.UnicodeChar = value;
^^^^^^^^^^^
: Error: Member not found: 'AsciiChar'.
../…/src/structs.g.dart:664
int get AsciiChar => Char.AsciiChar;
^^^^^^^^^
: Error: Setter not found: 'AsciiChar'.
../…/src/structs.g.dart:665
set AsciiChar(int value) => Char.AsciiChar = value;
^^^^^^^^^
Failed to package /Users/mik_a/Desktop/dev/app.
Command PhaseScriptExecution failed with a nonzero exit code
note: Using new build system
note: Planning
note: Build preparation complete
note: Building targets in dependency order
Result bundle written to path:
/var/folders/mw/s87p0r9j4cnbnl0pbskz815h0000gp/T/flutter_tools.NCX2rj/flutter_ios_build_temp_dirpXAxz0/temporary_xcresult_bundle

 

Flutter 3.0 업데이트 후 iOS 빌드를 하려고 하니 나온 에러.

해결법

 

flutter pub upgrade --major-versions // 현재 프로젝트의 패키지 버전을 최신버전으로 업그레이드
flutter clean
rm pubspec.lock // pubspec.lock 파일 삭제
flutter pub get

 

개발하다보면 값을 확인하기위해 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 폴더에서 작업중이었어서 루트폴더에서도

되는진 확인 안해봤다.

 

해결~

+ Recent posts