플레이키보드 iOS팀이 수동 배포의 반복 비용(420회 빌드 × 30분 = 210시간 낭비)을 줄이기 위해 fastlane과 CircleCI를 도입한 과정을 다룬다. 인증서 관리부터 TestFlight 업로드까지 전 단계를 자동화했다.
핵심 포인트- 수동 배포 420회 기준 약 210시간 낭비 → CI/CD 도입의 직접적 동기다.
- fastlane으로 빌드·서명·TestFlight 업로드·Slack 알림을 단일 lane으로 자동화한다.
- Match를 별도 GitHub 저장소에 연결해 인증서를 팀 전체가 중앙 관리한다.
- CircleCI의 develop 브랜치 push 이벤트를 트리거로 fastlane lane을 자동 실행한다.
- 앱스토어 커넥트 API 키를 base64로 인코딩해 이중 인증 없이 자동 배포 가능하게 했다.
상세 정리- 문제 인식: iOS 빌드를 수동으로 처리하며 420회 빌드에서 회당 30분씩 총 210시간이 단순 반복 작업에 소비됐다.
- 도구 선택: fastlane(빌드·사이닝·업로드 자동화)과 CircleCI(원격 트리거)의 조합으로 결정했다.
- fastlane 설치: `brew install fastlane`, `gem install bundler`, `fastlane init`으로 프로젝트 초기화.
- 보안 처리: 애플 계정, Match 비밀번호, API 키를 `.env`에 저장하고 `.gitignore`에 추가해 외부 노출을 차단했다.
- 앱스토어 커넥트 API: 이중 인증 우회를 위해 API 키를 생성 후 base64 인코딩해 환경변수로 관리한다.
- Match 코드 사이닝: 인증서를 전용 GitHub 저장소에 저장하고 `sync_code_signing` 액션으로 팀원 누구나 동일 인증서를 사용하게 했다.
- Fastfile 구성: CocoaPods 설치 → 빌드 번호 자동 증가 → 빌드 및 TestFlight 업로드 → Slack 알림 순서로 lane을 구성했다.
- CircleCI 연동: SSH 키와 환경변수를 등록하고 `.circleci/config.yml`에서 develop 브랜치 push를 트리거로 fastlane lane을 실행한다.
- 성과: 자동화로 반복 작업 피로도를 줄이고 절약된 시간을 제품 개선에 투자할 수 있게 됐다. 향후 테스트 자동화 확장 기반도 마련됐다.
왜 읽나iOS 팀이 fastlane+CircleCI로 수동 배포를 자동화하는 단계별 설정을 실제 경험 기반으로 설명하므로, CI/CD 도입을 처음 고려하는 iOS 개발자에게 실전 레퍼런스가 된다.