iOS, Android 중에서 나는 iOS 배포를 담당하게 되었다. 패키징, 배포하는 시도 자체를 처음 해 보는 거라서 열심히 서치해봤다.
슬프게도 혼자 시도했던 결과는 실패...!
'flutter_inappwebview'와 관련된 오류가 발생했더랬지.
내가 잘하지 못했던 것도 있었고, OS랑 플러터 버전과도 관련있는 것 같았다.
팀장님에게 배운 뒤, 혼자 시도해보고 기록한 과정을 다시 정리해보았다.
패키징이란, Flutter로 개발된 애플리케이션을 iOS, Android 플랫폼에서 실행 가능한 형식으로 패키징하는 과정을 말한다.

Testflight란, Apple이 제공하는 앱 테스트 플랫폼으로, 개발자들이 iOS, iPadOS, watchOS, tvOS, macOS 앱을 테스트하거나 외부 사용자들에게 배포할 수 있도록 도와주는 도구이다.
TestFlight는 주로 베타 버전의 앱을 배포하는 데 사용되며, 앱이 출시되기 전에 버그를 찾거나 피드백을 받을 수 있는 중요한 단계라고 할 수 있다.
① 터미널 창에서 flutter clean 입력
$ flutter clean
그렇다면, flutter clean을 하는 이유는 뭘까?
즉, 빌드 환경을 깨끗하게 유지하는 데 있다고 볼 수 있다.
② 터미널 창에서 flutter pub get 입력
$ flutter pub get
기껏 lutter clean을 해 놓고, 왜 다시 flutter pub get을 하는걸까? flutter clean 후 삭제된 의존성 파일들을 다시 가져오기 위함이다.
flutter clean을 실행하면 코드에 빨간줄이 엄청 뜨는데 이런저런 파일들이 삭제됐기 때문이다. 검색해보니 빌드 캐시, 프로젝트의 임시 파일들, pubspec.lock 파일을 포함한 의존성 관련 파일들이 삭제될 수 있다고 한다.
③ 터미널 창에 아래와 같은 명령어 입력
$ cd (경로)
$ rm -rf Pods
$ rm -rf Podfile.lock
$ pod install
이러한 과정을 거치는 이유는 뭘까? iOS 프로젝트에서 CocoaPods 관련 문제를 해결하거나 Pods 설정을 초기화하고 새롭게 설정하기 위함이다.
flutter clean과 flutter pub get 과정을 거친 이후에도 여전히 iOS 빌드에서 문제가 발생할 수 있다. 이러한 명령어들을 통해서 CocoaPods의 종속성과 캐시를 정리하고 새롭게 재설치하는 과정을 거친다.
④ Xcode로 Runner.xcworkspace 열기
Xcode → ios → Runner.xcworkspace → Runner
⑤ 필요한 사항 체크 및 명시
⑥ Product → clean Build Folder
⑦ Product → Build
⑧ Product → Archive(아카이빙: 서버에 올리는 과정)
⑨ Distribute App → AppStore Connect