[Flutter] Flutter에 아이폰을 연결해주기

2023. 2. 28. 00:28Developers 공간 [Shorts]/Frontend

728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew, 
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter

- Module Bundler  : React, Webpack, Parcel

B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS

C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight

 


1. What? (현상)

_cameras = await availableCameras();

controller = CameraController(_cameras.first, ResolutionPreset.max);

controller.initialize().then((_) {
      if (!mounted) {
        return;
      }
      setState(() {});
    }).catchError((Object e) {
      if (e is CameraException) {
        switch (e.code) {
          case 'CameraAccessDenied':
          // Handle access errors here.
            break;
          default:
          // Handle other errors here.
            break;
        }
      }
    });
LateInitializationError: Field 'controller' has not been initialized.

위와 같이 iMAC의 안드로이드 스튜디오(Android Studio)의 Emulator에 카메라 기능을 확인해보려고 하면

 

emulator가 개발컴퓨터의 카메라를 인식하지 못합니다. emulator는 인식하는 방법이 없다고 합니다.

 

따라서 iMAC에 개인 아이폰을 연결해 테스트하고 싶습니다.

 


2. Why? (원인)

  • PC와 스마트폰에 셋팅을 해주어야 합니다.

3. How? (해결책)

  • 1-1. PC 셋팅 - Xcode 계정 설정
    • 아래 명령어를 통해 Xcode를 실행하고, Runner > Signing & Capabilities > Add Account... 를 해 계정을 추가합니다.
open ios/Runner.xcworkspace

[Xcode 계정 설정 순서]

  • 1-2. PC 셋팅 - Xcode 지원버전 : 위에 그림에 "unsupported OS version" 이라고 뜨는 문제를 해결해보고자 합니다. (혹은 flutter doctor -v 명령어를 실행시 아래 Error 와 같은 에러메시지가 납니다.)
    • 원인은 Xcode에서 현재 내 아이폰의 iOS버전까지 지원을 해주지 못하기 때문입니다. 방법은 두가지가 있습니다.
    • 방법1. App Store에서 Xcode를 업그레이드 하기. (이후에 아래 명령어 실행해야)
      • sudo xcodebuild -license
      • flutter doctor -v
    • 방법2. 아래의 링크에서 아래위치에 iOS 디바이스 Support 버전을 직접 폴더로 다운받아 옮겨 줍니다.
! Error: Failed to prepare device for development.
This operation can fail if the version of the OS on the device is incompatible with the installed version of Xcode.
You may also need to restart your mac and device in order to correctly detect compatibility. (code 806)

  • 2-1. 스마트폰 셋팅 - 개발자 모드 켜기 : 연결을 하고 flutter doctor -v를 하면 아래 에러가 납니다.
! Error: To use Your iPhone for development, enable Developer Mode in Settings → Privacy & Security. (code 6)

 

[개발자 모드 켜기]

 

  • 2-2. 스마트폰 셋팅 -  busy 에러 : 연결을 하고 flutter doctor -v를 하면 가끔 아래와 같은 에러가 나는데, 이는 두가지 방법으로 해결 가능합니다.
    • 방법1. 아래 그림과 같이 Xcode > Window > Devices and Simulators > 왼쪽 아래 + 버튼을 눌러 추가합니다.
    • 방법2. 사실 이건 핸드폰 연결을 뺏다 끼면 거의다 해결된다.
! Error: OOO is busy: Fetching debug symbols for OOO. Xcode will continue when OOO is finished. (code -10)

 

[busy 에러 화면 해결방법1]

  • 2-3. 스마트폰 셋팅 - 신뢰하지 않는 개발자 문제 : 위와 같이 셋팅 한 후에 "flutter run" 명령어를 통해 실행하면 아래와 같이 신뢰하지 않는 개발자 문제가 생깁니다.
    • 아래 그림과 같은 순서로 동의해줍니다.
    • 일반 > VPN 및 기기 관리 > Apple Development > 신뢰

[신뢰하지 않는 개발자 해결방법]


  • 3-1. 결과 - 검사 : 아래 명령어를 실행시 아래와 같은 결과가 나와야 정상입니다.
    • flutter doctor -v 

[검사 결과]

  • 3-2. 결과 - debug 모드로 실행하기
    • 방법1. 직접 emulator를 선택해 실행하기
    • 방법2. flutter run
    • 방법3. flutter run -d Device_ID
  • 3-3. release 모드로 실행하기 : debug모드로 실행하면 아래와 같이 연결을 해제하고 나서 실행이 안됩니다. 이럴 때는 release모드로 실행해주면 좋습니다.
    • flutter run --release

[debug 모드로 실행시 끄고나면 다시 켜지지 않는다.]


 

728x90
반응형