소셜로그인 기능을 구현하기 위해서 실제 아이폰에서 테스트 해야할 일이 생겼다.
지금껏 테스트는 시뮬레이터를 이용해서만 진행했기에 실제 아이폰을 노트북에 연결했던 과정, 과정중에 겪었던 오류에 대해 적어보려고 한다.
먼저 기기를 맥에 연결했다.
*본인의 경우 노트북과 기기가 직접 연결되어야 인식이 되었다.
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
'junior developer :) > Flutter & Dart' 카테고리의 다른 글
[flutter]flutter app에 image 파일 넣기( + Unable to load asset 오류) (6) | 2023.06.06 |
---|---|
[Dart] dart언어에서 새로 배우게 된 개념 (Enums, Mixins) (6) | 2023.06.05 |
[flutter] sizebox , spacer (with. flutter widget of the week) (6) | 2023.06.01 |
[flutter] .env 파일 추가하기(flutter_dotenv/ Unhandled Exception : Instance of 'FileNotFoundError') (7) | 2023.05.30 |
[flutter] chatGPT api불러오기(with.http 패키지) (6) | 2023.05.29 |