플러터로 개발하면서 안드로이드쪽은 그리 문제된 적이 없는데 IOS쪽은 종종 문제가 생기곤 했다.
IOS 빌드 에러가 한두가지는 아니지만 그 중 속 썩였던 에러가 있었다.
하나는
Xcode's output:
ld: framework not found Flutter clang: error: linker command failed with exit code 1 (use -v to see invocation) note: Using new build systemnote: Planning buildnote: Constructing build description
하나는
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_FlutterMethodChannel", referenced from: objc-class-ref in FLTPackageInfoPlugin.o "_FlutterMethodNotImplemented", referenced from: -[FLTPackageInfoPlugin handleMethodCall:result:] in FLTPackageInfoPlugin.o
물론 위 에러가 해결 방법은 상황에 따라 다를 수 있다.
대부분 자료를 찾아보면 아래처럼 클린 후 빌드하는 것으로 해결을 한다.
flutter clean
flutter run
그런데 나는 이것으로 해결되지 않았고
flutter pub cache repair라던지,
Runner.xcworkspace를 실행하여 XCode에서 빌드하는 방법 등 거의 3일간을 삽질한 것 같다.
물론 위의 방법으로 해결되는 것이 가장 좋다.
최후의 방법은 플러터 프로젝트에 있는 Build 폴더를 삭제하고, ios 폴더 자체도 삭제를 한다.
(단, ios폴더에 미리 세팅해놓은 코드나 Info.plist, PodFile 파일 등은 백업해놓도록 한다.)
모두 삭제를 했다면 아래 명령을 실행한다.
flutter create .
이는 현재 상태에서 누락되어있는 파일들을 새로 만들어준다. 즉, ios폴더가 새로 만들어진다.
그럼 이전에 세팅했던 Info.plist , PodFile등을 상황에 맞게 세팅한 후 다시 빌드를 해주면 된다.
생각보다 매우 간단하지만, ios 빌드에서 애를 먹고 있다면 굳이 다른 것을 찾을 필요없이
깔끔하게 다시 시작하는게 최고인 것 같다.
무언가 빌드하면서 꼬이기 시작하면서 알 수 없는 에러들을 뱉어내는데 이 때는 flutter clean만으로도
완전히 클린이 되지 않으므로 위와 같은 방법을 써야만 할 것이다.
'프로그래밍 > Flutter(플러터)' 카테고리의 다른 글
[Flutter] 리스트뷰(ListView) 스크롤시 사진 등 재로딩되는 현상 해결 방법 (0) | 2021.04.24 |
---|---|
Error ITMS-90717: “Invalid App Store Icon” (0) | 2021.01.24 |
Flutter(플러터)의 Dart 객체에서 몽고DB의 _id 필드 대응하기 (0) | 2020.11.21 |
Flutter(플러터)에서 SVG(벡터이미지) 표시하기 (4) | 2020.04.09 |
firebase_admob과 image_picker 패키지 충돌 해결 방법 (0) | 2020.03.24 |