튜토리얼: GitLab Mobile DevOps로 iOS 앱 빌드하기
GitLab v19.5요약
이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명한 후 앱 스토어에 배포하는 파이프라인을 생성합니다. 이 튜토리얼을 시작하기 전에 다음을 준비합니다: GitLab 호스팅 러너를 사용하거나, 빌드 환경을 완전히 제어하려면 셀프 매니지드 러너를 설정합니다.
이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명한 후 앱 스토어에 배포하는 파이프라인을 생성합니다.
모바일 DevOps를 설정하려면:
시작하기 전에#
이 튜토리얼을 시작하기 전에 다음을 준비합니다:
- CI/CD 파이프라인에 접근할 수 있는 GitLab 계정
- GitLab 리포지터리에 있는 모바일 앱 코드
- Apple Developer 계정
- 로컬에 설치된
fastlane
빌드 환경 설정#
GitLab 호스팅 러너를 사용하거나, 빌드 환경을 완전히 제어하려면 셀프 매니지드 러너를 설정합니다.
-
리포지터리 루트에
.gitlab-ci.yml파일을 생성합니다. -
macOS GitLab 호스팅 러너(베타)에서 job을 실행하려면 지원되는 macOS 이미지를 추가합니다:
test: image: macos-14-xcode-15 stage: test script: - fastlane test tags: - saas-macos-medium-m1
fastlane으로 코드 서명 구성#
iOS 코드 서명을 설정하려면 fastlane을 사용해 서명된 인증서를 GitLab에 업로드합니다:
-
fastlane을 초기화합니다:
fastlane init -
설정이 포함된
Matchfile을 생성합니다:fastlane match init -
Apple Developer 포털에서 인증서와 프로필을 생성하고 해당 파일을 GitLab에 업로드합니다:
PRIVATE_TOKEN=YOUR-TOKEN bundle exec fastlane match development -
선택 사항. 프로젝트의 서명 인증서와 프로비저닝 프로필을 이미 생성한 경우,
fastlane match import를 사용해 기존 파일을 GitLab에 불러옵니다:PRIVATE_TOKEN=YOUR-TOKEN bundle exec fastlane match import
파일 경로를 입력하라는 메시지가 표시됩니다. 해당 정보를 입력하면 파일이 업로드되고 프로젝트의 CI/CD 설정에서 확인할 수 있습니다.
가져오기 중 git_url을 묻는 메시지가 표시되면 비워 두고 enter를 눌러도 됩니다.
다음은 이 설정을 반영한 fastlane/Fastfile 및 .gitlab-ci.yml 예시 파일입니다:
-
fastlane/Fastfile:default_platform(:ios) platform :ios do desc "Build and sign the application for development" lane :build do setup_ci match(type: 'development', readonly: is_ci) build_app( project: "ios demo.xcodeproj", scheme: "ios demo", configuration: "Debug", export_method: "development" ) end end -
.gitlab-ci.yml:build_ios: image: macos-12-xcode-14 stage: build script: - fastlane build tags: - saas-macos-medium-m1
Apple Store 통합과 fastlane으로 앱 배포 설정#
서명된 빌드는 Mobile DevOps Distribution 통합을 사용해 Apple App Store에 업로드할 수 있습니다.
사전 요구 사항:
- Apple Developer Program에 등록된 Apple ID가 있어야 합니다.
- Apple App Store Connect 포털에서 프로젝트용 새 개인 키를 생성해야 합니다.
Apple Store 통합과 fastlane으로 iOS 배포를 생성하려면:
- App Store Connect API용 API 키를 생성합니다. Apple App Store Connect 포털에서 프로젝트용 새 개인 키를 생성합니다.
- Apple App Store Connect 통합을 활성화합니다:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Settings > Integrations를 선택합니다.
- Apple App Store Connect를 선택합니다.
- Enable integration에서 Active 체크박스를 선택합니다.
- Apple App Store Connect 설정 정보를 입력합니다:
- Issuer ID: Apple App Store Connect 발급자 ID입니다.
- Key ID: 생성한 개인 키의 키 ID입니다.
- Private key: 생성한 개인 키입니다. 이 키는 한 번만 다운로드할 수 있습니다.
- Protected branches and tags only: 활성화하면 보호된 브랜치와 태그에서만 변수를 설정합니다.
- Save changes를 선택합니다.
- 파이프라인과 fastlane 설정에 릴리스 단계를 추가합니다.
다음은 fastlane/Fastfile 예시입니다:
default_platform(:ios)
platform :ios do
desc "Build and sign the application for distribution, upload to TestFlight"
lane :beta do
setup_ci
match(type: 'appstore', readonly: is_ci)
app_store_connect_api_key
increment_build_number(
build_number: latest_testflight_build_number(initial_build_number: 1) + 1,
xcodeproj: "ios demo.xcodeproj"
)
build_app(
project: "ios demo.xcodeproj",
scheme: "ios demo",
configuration: "Release",
export_method: "app-store"
)
upload_to_testflight
end
end
다음은 .gitlab-ci.yml 예시입니다:
beta_ios:
image: macos-12-xcode-14
stage: beta
script:
- fastlane beta
이제 앱이 자동 빌드, 서명, 배포를 위해 설정되었습니다. 머지 리퀘스트를 생성해 첫 파이프라인을 트리거해 보세요.
샘플 프로젝트#
모바일 앱을 빌드, 서명, 릴리스하도록 파이프라인이 구성된 샘플 Mobile DevOps 프로젝트를 다음 플랫폼에서 확인할 수 있습니다:
- Android
- Flutter
- iOS
모든 프로젝트는 Mobile DevOps Demo Projects 그룹에서 확인할 수 있습니다.