InfoGrab DocsInfoGrab Docs

튜토리얼: GitLab Mobile DevOps로 iOS 앱 빌드하기

요약

이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명한 후 앱 스토어에 배포하는 파이프라인을 생성합니다. 이 튜토리얼을 시작하기 전에 다음을 준비합니다: GitLab 호스팅 러너를 사용하거나, 빌드 환경을 완전히 제어하려면 셀프 매니지드 러너를 설정합니다.

이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명한 후 앱 스토어에 배포하는 파이프라인을 생성합니다.

모바일 DevOps를 설정하려면:

  1. 빌드 환경 설정
  2. fastlane으로 코드 서명 구성
  3. Apple Store 통합과 fastlane으로 앱 배포 설정

시작하기 전에#

이 튜토리얼을 시작하기 전에 다음을 준비합니다:

  • CI/CD 파이프라인에 접근할 수 있는 GitLab 계정
  • GitLab 리포지터리에 있는 모바일 앱 코드
  • Apple Developer 계정
  • 로컬에 설치된 fastlane

빌드 환경 설정#

GitLab 호스팅 러너를 사용하거나, 빌드 환경을 완전히 제어하려면 셀프 매니지드 러너를 설정합니다.

  1. 리포지터리 루트에 .gitlab-ci.yml 파일을 생성합니다.

  2. macOS GitLab 호스팅 러너(베타)에서 job을 실행하려면 지원되는 macOS 이미지를 추가합니다:

    test:
      image: macos-14-xcode-15
      stage: test
      script:
        - fastlane test
      tags:
        - saas-macos-medium-m1
    

fastlane으로 코드 서명 구성#

iOS 코드 서명을 설정하려면 fastlane을 사용해 서명된 인증서를 GitLab에 업로드합니다:

  1. fastlane을 초기화합니다:

    fastlane init
    
  2. 설정이 포함된 Matchfile을 생성합니다:

    fastlane match init
    
  3. Apple Developer 포털에서 인증서와 프로필을 생성하고 해당 파일을 GitLab에 업로드합니다:

    PRIVATE_TOKEN=YOUR-TOKEN bundle exec fastlane match development
    
  4. 선택 사항. 프로젝트의 서명 인증서와 프로비저닝 프로필을 이미 생성한 경우, 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 배포를 생성하려면:

  1. App Store Connect API용 API 키를 생성합니다. Apple App Store Connect 포털에서 프로젝트용 새 개인 키를 생성합니다.
  2. Apple App Store Connect 통합을 활성화합니다:
    1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
    2. Settings > Integrations를 선택합니다.
    3. Apple App Store Connect를 선택합니다.
    4. Enable integration에서 Active 체크박스를 선택합니다.
    5. Apple App Store Connect 설정 정보를 입력합니다:
      • Issuer ID: Apple App Store Connect 발급자 ID입니다.
      • Key ID: 생성한 개인 키의 키 ID입니다.
      • Private key: 생성한 개인 키입니다. 이 키는 한 번만 다운로드할 수 있습니다.
      • Protected branches and tags only: 활성화하면 보호된 브랜치와 태그에서만 변수를 설정합니다.
    6. Save changes를 선택합니다.
  3. 파이프라인과 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 그룹에서 확인할 수 있습니다.

튜토리얼: GitLab Mobile DevOps로 iOS 앱 빌드하기

GitLab v19.5
원문 보기

요약

이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명한 후 앱 스토어에 배포하는 파이프라인을 생성합니다. 이 튜토리얼을 시작하기 전에 다음을 준비합니다: GitLab 호스팅 러너를 사용하거나, 빌드 환경을 완전히 제어하려면 셀프 매니지드 러너를 설정합니다.

이 튜토리얼에서는 GitLab CI/CD를 사용하여 iOS 모바일 앱을 빌드하고, 자격 증명으로 서명한 후 앱 스토어에 배포하는 파이프라인을 생성합니다.

모바일 DevOps를 설정하려면:

  1. 빌드 환경 설정
  2. fastlane으로 코드 서명 구성
  3. Apple Store 통합과 fastlane으로 앱 배포 설정

시작하기 전에#

이 튜토리얼을 시작하기 전에 다음을 준비합니다:

  • CI/CD 파이프라인에 접근할 수 있는 GitLab 계정
  • GitLab 리포지터리에 있는 모바일 앱 코드
  • Apple Developer 계정
  • 로컬에 설치된 fastlane

빌드 환경 설정#

GitLab 호스팅 러너를 사용하거나, 빌드 환경을 완전히 제어하려면 셀프 매니지드 러너를 설정합니다.

  1. 리포지터리 루트에 .gitlab-ci.yml 파일을 생성합니다.

  2. macOS GitLab 호스팅 러너(베타)에서 job을 실행하려면 지원되는 macOS 이미지를 추가합니다:

    test:
      image: macos-14-xcode-15
      stage: test
      script:
        - fastlane test
      tags:
        - saas-macos-medium-m1
    

fastlane으로 코드 서명 구성#

iOS 코드 서명을 설정하려면 fastlane을 사용해 서명된 인증서를 GitLab에 업로드합니다:

  1. fastlane을 초기화합니다:

    fastlane init
    
  2. 설정이 포함된 Matchfile을 생성합니다:

    fastlane match init
    
  3. Apple Developer 포털에서 인증서와 프로필을 생성하고 해당 파일을 GitLab에 업로드합니다:

    PRIVATE_TOKEN=YOUR-TOKEN bundle exec fastlane match development
    
  4. 선택 사항. 프로젝트의 서명 인증서와 프로비저닝 프로필을 이미 생성한 경우, 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 배포를 생성하려면:

  1. App Store Connect API용 API 키를 생성합니다. Apple App Store Connect 포털에서 프로젝트용 새 개인 키를 생성합니다.
  2. Apple App Store Connect 통합을 활성화합니다:
    1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
    2. Settings > Integrations를 선택합니다.
    3. Apple App Store Connect를 선택합니다.
    4. Enable integration에서 Active 체크박스를 선택합니다.
    5. Apple App Store Connect 설정 정보를 입력합니다:
      • Issuer ID: Apple App Store Connect 발급자 ID입니다.
      • Key ID: 생성한 개인 키의 키 ID입니다.
      • Private key: 생성한 개인 키입니다. 이 키는 한 번만 다운로드할 수 있습니다.
      • Protected branches and tags only: 활성화하면 보호된 브랜치와 태그에서만 변수를 설정합니다.
    6. Save changes를 선택합니다.
  3. 파이프라인과 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 그룹에서 확인할 수 있습니다.