튜토리얼: GitLab Mobile DevOps로 iOS 앱 빌드
이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명하고, 앱 스토어에 배포하는 파이프라인을 만들 것입니다. Mobile DevOps를 설정하려면: 이 튜토리얼을 시작하기 전에 다음이 있는지 확인하세요:
이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명하고, 앱 스토어에 배포하는 파이프라인을 만들 것입니다.
Mobile DevOps를 설정하려면:
시작하기 전에#
이 튜토리얼을 시작하기 전에 다음이 있는지 확인하세요:
- CI/CD 파이프라인에 액세스할 수 있는 GitLab 계정
- GitLab 리포지터리에 있는 모바일 앱 코드
- Apple Developer 계정
- 로컬에 설치된
fastlane
빌드 환경 설정#
빌드 환경을 완전히 제어하려면 GitLab 호스팅 러너를 사용하거나 self-managed 러너를 설정하세요.
-
리포지터리 루트에
.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 배포 통합을 사용하여 서명된 빌드를 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 통합을 활성화합니다:
- 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 통합을 선택합니다.
- Apple App Store Connect를 선택합니다.
- 통합 활성화 아래에서 활성 체크박스를 선택합니다.
- Apple App Store Connect 구성 정보를 제공합니다:
- 발급자 ID: Apple App Store Connect 발급자 ID.
- 키 ID: 생성된 개인 키의 키 ID.
- 개인 키: 생성된 개인 키. 이 키는 한 번만 다운로드할 수 있습니다.
- 보호된 브랜치 및 태그만: 보호된 브랜치 및 태그에만 변수를 설정하도록 활성화합니다.
- 변경 사항 저장을 선택합니다.
- 파이프라인 및 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 데모 프로젝트 그룹에서 모든 프로젝트를 봅니다.
