GitHub Actions로 Xcode 프로젝트를 빌드해 봅니다.

이게 뭐야



GitHub Actions에서 Xcode 프로젝트를 빌드하는 방법의 메모입니다. 원래 GitHub Actions 란 무엇입니까? 라는 분은 아래 사이트를 참조하십시오.

GitHub Actions 정보 - GitHub 고객센터

이용신청



GitHub Actions는 아직 베타 버전이며 사용하려면 아래 URL에서 신청해야 합니다.
현재는 베타가 빠져 있습니다. 아래 URL에서 바로 사용할 수 있습니다.

며칠 기다리면 "사용할 수 있도록 했어요~"라는 내용의 메일이 GitHub에서 도착합니다.

우선 빌드 해 보자.



리포지토리의 톱 페이지에 「Actions」탭이 추가되어 있으므로 「Set up Actions」를 클릭합시다.



시작 페이지가 표시됩니다. 여기에서 샘플 workflow를 이동할 수도 있지만 이번에는 오른쪽 상단의 Set up workflow youself를 클릭합니다.



workflow를 편집하는 화면이 표시되므로 아래의 yml을 입력하십시오.
name: CI

on: [push] # git push をトリガーとする

jobs:
  build:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v1 # ソースコードをcheckout
    - name: Select Xcode version # Xcode 12.4 を使う
      run: sudo xcode-select -s '/Applications/Xcode_12.4.app/Contents/Developer'
    - name: Show Xcode version
      run: xcodebuild -version
    - name: Build # シミュレーター向けにビルド
      run: xcodebuild -sdk iphonesimulator -configuration Debug build 

※사용 가능한 Xcode 버전 일람은 여기

모처럼이므로 상기 내용을 적당한 브랜치에 push 해 풀 리퀘스트를 작성해 봅시다. Checks 탭에서 workflow가 실행 중인지 확인할 수 있습니다.



이제 Xcode 프로젝트를 빌드할 수 있었습니다!

이 요령으로 테스트를 실행하거나 IPA를 내보낼 수도 있습니다.
  • GitHub Actions를 사용하여 Firebase App Distribution에 배포 - Lento con forza
  • xcodebuild 에 대해서는 하기 사이트에서 정중하게 해설되고 있습니다.
  • Xcode에서 빌드를 자동화하기 xcodebuild 명령과 IPA 파일을 만들어 iTunes Connect (Testflight)에 던지는 방법 - 식초 뭉개!

  • CocoaPods 및 Carthage 사용



    GitHub Actions 가상 환경에는 이미 CocoaPods 및 Carthage가 설치되어 있으므로
    - name: CocoaPods
      run: pod install
    
    - name: Carthage
      run: carthage bootstrap --platform iOS --cache-builds
    

    같이 사용할 수 있습니다.
  • GitHub Actions 가상 환경의 소프트웨어 - GitHub 고객센터

  • 2019/11/20 추가: 캐시도 사용할 수 있게 되었습니다
  • actions/cache: Cache dependencies and build outputs in GitHub Actions
  •     - name: Cache CocoaPods files
          uses: actions/cache@preview
          with:
            path: Pods
            key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
            restore-keys: |
              ${{ runner.os }}-pods-
    
        - name: Cache Carthage files
          uses: actions/cache@v1
          with:
            path: Carthage
            key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }}
            restore-keys: |
              ${{ runner.os }}-carthage-
    

    링크


  • Configuring a workflow - GitHub Help
  • 좋은 웹페이지 즐겨찾기