본문 바로가기
junior developer :)/Flutter & Dart

[flutter]xcode 이용하여 실제 IOS 기기에 build 하기

by ㅁ윤슬ㅁ 2023. 6. 2.
728x90
반응형

소셜로그인 기능을 구현하기 위해서 실제 아이폰에서 테스트 해야할 일이 생겼다.

지금껏 테스트는 시뮬레이터를 이용해서만 진행했기에 실제 아이폰을 노트북에 연결했던 과정, 과정중에 겪었던 오류에 대해 적어보려고 한다.

먼저 기기를 맥에 연결했다.
*본인의 경우 노트북과 기기가 직접 연결되어야 인식이 되었다.

flutter doctor -v

위 명령어를 이용해서 기기와 연결되어 있는 디바이스가 어떤 것이 있는지 확인할 수 있다.

기기가 연결 된 것이 확인 되었다면,

1. apple developer에서 계정을 등록해준다.
https://developer.apple.com/

2. 아이폰 개발자 모드 활성화
아이폰에서 설정 -> 개인정보 보호 및 보안 -> 개발자 도구 -> 개발자 모드 on

3. xcode에 Runner -> Signing & Capabilities -> team -> Add Account 정보 등록
* add account 등록 시 apple ID로 로그인 하면 됨
** Bundle Identifier의 값을 유니크하게 설정할 것(Runner -> General -> Bundle Identifier)
[패키지 경로].[패키지명].[앱 이름]

처음엔 apple developer 에 계정을 등록하는 과정을 생략한 뒤 진행했는데, 자꾸 오류가 나서 보니

이 오류 문구를 보니 등록하라고 하는게 있었던.....

등록을 완료 하면 위 사진 과 같이 뜬다.

4. xcode 우측 상단에 있는 실행 버튼이나, flutter run -d 디바이스아이디 (flutter docter -v 조회해서 나오는 ID)명령어를 입력한 하면 실 기기에서 빌드할 수 있다.

이 과정에서 처음 구동하게 되면 "신뢰하지 않는 개발자"라는 팝업이 뜨게 되는데, 
iphone에서 설정->일반-> 프로파일 및 기기관리에서 해당 개발자 신뢰 설정을 해주면 해결할 수 있다.


등록을 열심히 하던 도중 갑자기 runner가 없어졌다

Pods 파일만 남아있는 상태가 되었는데..

pods 폴더 지웠다가 다시 install 하고, cocoaPods를 재 설치 해보고,, 난리 부렸는데도 해결이 되지 않았다.

cocoaPods : swift 및 objective-C 개발에서 사용되는 패키지 의존성 관리 도구.
쉽게 말해서 앱 개발에 필요한 오픈 라이브러리와 프레임워크를 쉽게 관리할 수 있는 도구이다.

해결책 -> flutter clean으로 캐시를 삭제해주니 정상적으로 돌아왔다.

flutter 빌드할 때 캐시가 남아있어서 생기는 오류였기 때문에 flutter clean 명령어로 해결이 가능했는데, 이 오류가 생기는 이유로는 3가지가 있다.
1. 이전에 빌드한 코드와 현재 코드 간에 일치하지 않는 경우 (코드 변경사항이 적용되지 않아서 오류 발생할 수 있음)
2. 라이브러리나 패키지를 업데이트하거나 변경한 경우 이전에 캐시된 종속성이 빌드에 사용되어 오류가 발생할 수 있음
3. 빌드 설정을 변경한 경우, 이전 캐시된 빌드 설정이 여전히 사용되는 경우에 오류가 발생할 수 있음

그 이후로도 핸드폰 버전과 맞지 않는 xcode 버전 문제로 인한 오류, iphone is busy 오류를 겪었고 xcode 버전 업데이트를 위한 mac 업데이트, applewatch 끄기의 방법을 거쳐 build에 성공했다 !

 

되게 간단할 것 같았는데 캐시 오류, 업데이트 등으로 꽤나 오랜 시간이 걸렸던 이번 작업...
확실히 APP은 버전이 중요하구나 라는 것을 깨달았다.


참고

https://docs.flutter.dev/get-started/install/macos#deploy-to-ios-devices

728x90
반응형