본문 바로가기
반응형

flutter10

Flutter 앱 빌드 때 만난 Unsupported class file major version 어쩌구 저쩌구 에러 오랜만에 Flutter 앱 프로젝트를 새로 빌드할 일이 생겨서 빌드 명령을 입력했는데 전에 보지 못하던 에러가 발생했다. 아래와 같은 오류다. * What went wrong: Could not open settings generic class cache for settings file '/Users/seorenn/developments/myproject/android/settings.gradle' (/Users/seorenn/.gradle/caches/7.2/scripts/foobarsomeidentifier). > BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major v.. 2024. 3. 15.
macOS 터미널에서 안드로이드 에뮬레이터 실행시키기 일반적인 안드로이드 앱 개발자들이야 Android Studio를 쓸 테고 거기서 에뮬레이터를 띄우면 되니 무의미한 주제의 글일 수도 있겠지만, 그게 아니라 Flutter 등 다른 기반으로 안드로이드를 지원하는 경우라면 굳이 무거운 Android Studio를 띄우지 않고 에뮬레이터를 띄우길 원할 수도 있다. 그래서 이번 글의 주제는 터미널에서 셸 커맨드로 안드로이드 에뮬레이터를 띄우는 방법에 관한 것이다. 준비 작업 만약 Android Studio를 막 설치한 상태라면 에뮬레이터를 설치하고 AVD(Android Virtual Device)를 생성해야 한다. 당연하게도 이미 설치되어 있고 AVD도 생성된 상태라면 건너뛰고 바로 다음 항목으로 넘어가도 된다. 우선 에뮬레이터를 설치해 보자. Android S.. 2024. 3. 13.
또다시 나타난 libarclite_iphoneos.a 오류 (Flutter) 회사 업무용 Flutter 프로젝트를 오랜만에 빌드했더니 지난번에 글을 썼던 적이 있었던 libarclite_iphoneos.a 문제가 또다시 나타났다. 대충 축약해서 아래와 같은 동일한 오류다. Error (Xcode): File not found: /Applications/Xcode.app/Contents/ ... /lib/arc/libarclite_iphoneos.a 다시 나타난 이유야 명백하다. Xcode 버전이 업그레이드되는 바람에 이전에 풀어놨던 파일들이 다 사라져 버렸기 때문이다. 그렇다면 원천적으로 이 문제를 해결하지 못하는 한 Xcode가 업그레이드될 때마다 이 문제를 계속 마주치게 될 것이 분명해 보인다. 상당히 귀찮다. 원천적으로 해결할 방법이 없는 것일까? 그나마 최근에는 정보가 생.. 2023. 6. 14.
Flutter 앱 빌드 시 libarclite_iphoneos.a 및 아카이브 실패 문제 회사 Flutter 앱 프로젝트를 iOS 용으로 빌드하던 도중 문제가 발생했다. 이 글 주제의 시작은 아래 오류 메시지로부터 출발한다. Error (Xcode): File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a 빌드하는데 필요한 libarclite_iphoneos.a 파일이 없다는 오류다. Xcode 14.3으로 올린 이후에 이런 문제를 겪었기 때문에 아마도 이 버전의 Xcode 문제라고 생각된다. 위 메시지를 통해 두 가지 문제가 나왔고 이 두 가지 문제 해결의 과정을 정리해 보자. 명확한 해답이라고 하기엔 아직 지식이 부.. 2023. 4. 23.
Flutter에서 Debug 혹은 Release 모드 판단하기 Flutter에서 Debug 모드로 실행 중인지 아니면 Release 모드로 실행 중인지 파악하기 위해서는 우선 foundation 모듈이 필요하다. import 'package:flutter/foundation.dart'; 이후 kReleaseMode 혹은 kDebugMode 심볼을 이용할 수 있으니 용도에 맞게 사용하면 된다. if (kReleaseMode) { // 릴리즈 모드에서 할 일 ... } else if (kDebugMode) { // 디버그 모드에서 할 일 ... } 엄청나게 단순한 내용이지만 개인적인 기억력의 한계로 메모를 남긴다. 2022. 4. 24.
Flutter의 Widget에서 앱 활성화 여부 파악하기 앱이 활성화될 때, 즉 백그라운드 상태에서 포그라운드 상태로 앱이 다시 올라왔을 때 위젯이 이 상태를 직접 파악하는 방법은 기존적으로 제공되지 않습니다. 앱 단위에선 onResume이나 onPause가 제공되는 것과는 다르게 말이죠. 제 경우 iOS 앱에서 백그라운드 태스크 앱이 백그라운드 상태에서 동작하다 포그라운드로 활성화될 때 UI 갱신이 누락되는 현상이 있어서 앱 활성화 여부를 알아낼 수 있어야 했습니다. 이와 관련해 정보를 찾아보던 도중 다행히도 제가 원하는 기능을 제공하는 Widget Bindings Observer라는 것을 발견할 수 있었습니다. 아래 예제는 특정 StatefulWidget에서 WidgetBindingsObserver를 사용해 앱의 상태 변화를 추적하는 코드를 구현한 예제입니.. 2020. 11. 13.
Flutter에서 애플 앱스토어 업로드 시 최소 버전 표기 문제 Flutter를 업그레이드한 이후인지, 아니면 Xcode 12로 업그레이드 이후인지는 명확하지 않지만, 어느 날 fastlane 연동으로 앱스토어 업로드를 진행하는 도중에 아래와 같은 오류 메시지를 만났습니다. ERROR ITMS-90208: "Invalid Bundle. The bundle Runner.app/Frameworks/App.framework does not support the minimum OS Version specified in the Info.plist." 이 문제를 해결해봅시다. 약간 삽질을 하긴 했지만 이 문제의 해결은 생각보다 간단했습니다. 프로젝트와 타겟 그리고 앱 프레임워크의 최소 요구 버전(MinimumOSVersion)을 동일하게 맞춰주니 해결되었습니다. 우선 Xcode.. 2020. 10. 13.
flutter: 당신의 Xcode는 너무 구버전이예요! 이 글은 팁이라기보다는 그저 로그에 가깝습니다. 어느 날 flutter run 커맨드로 개발 중인 프로젝트를 실행시켜 보다 아래와 같은 메시지를 보게 되었습니다. Your Xcode version may be too old for your iOS version. 네. 바로 제목의 그 내용이지요. 스크린샷으로 보면 빨갛게 아주 기분 나쁜(?) 뭔가 해결해야 할 문제로 보입니다. 그런데 문제는 이 메시지의 내용이었습니다. 왜냐하면 제가 당시 사용하던 Xcode는 12 버전으로 정식 릴리즈 된 지 하루 정도 지난, 당시 가장 최신 버전이었기 때문이었죠. 구글은 검색엔진 빼고는 뭔가 나사가 빠진 것 같다는 느낌을 종종 받는데 flutter도 비슷한 느낌을 자주 받습니다. 물론 사람이 만드는 거니 실수는 없을 수.. 2020. 9. 18.
Flutter에서 써드파티 모듈을 수동으로 집어넣기 Flutter는 오픈소스 의존성 시스템을 지원하며 따라서 커뮤니티에서 서드파티 패키지가 활발히 개발되고 있습니다. 그런데 간혹 이런 모듈 패키지들 중 있었으면 하는 기능이 빠져있거나 버그가 있거나 등 여러 이슈가 있을 수 있습니다. 이 경우 소스를 가져와서 직접 수정한 후 빌드해야 하는 경우가 될 수도 있습니다. 그렇다면 소스를 가져와서 어떻게 하면 될지를 간략히 정리해 봅시다. 간략히 정리하는 이유는 정말 간단하기 때문이지요. 😏 우선 원하는 모듈의 소스를 가져옵니다. 보통은 Github에서 가져올 테니 git clone 커맨드를 써서 복제하면 됩니다. 복제되는 위치는 마음대로 놓을 수 있습니다. 그다음으로 pubspec.yaml 파일을 열어서 의존성 목록에 아래와 같은 형식으로 해당 모듈의 소스가 위.. 2020. 6. 9.
Flutter 사용 시 발생하는 미확인 개발자 문제 macOS Catalina에서 Flutter CLI 도구를 이용해 개발 시 겪을 수 있는 문제 중 하나로 미확인 개발자 문제가 있습니다. 이 문제를 해결하는 방법을 간략히 정리하는 글입니다. 문제 flutter 커맨드를 사용할 때, 예를 들어 flutter doctor나 flutter build, 혹은 flutter run 시에 아래와 비슷한 오류가 날 때가 있습니다. "idevice_id" cannot be opened because the developer cannot be verifed. 위 오류에서 idevice_id 대신 ideviceinfo, iproxy 등 여러 이름이 올 수 있습니다. 즉 하나의 명령이 아니라 여러 명령 바이너리가 개발자 사인이 빠진 채로 빌드되어 있어서 macOS에서 경고.. 2020. 2. 18.
728x90
반응형