Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

cchanmi

[iOS] Github Action 도입기 - build & test 과정에서 겪은 error 모음 본문

iOS

[iOS] Github Action 도입기 - build & test 과정에서 겪은 error 모음

cchanmi 2024. 12. 1. 00:50

저는 Github Action을 도입하면서 각종 에러에 대해 4일 가량의 시간이 걸렸었는데요.

생각보다 Github Action 도입 관련 블로그에 에러를 해결했다는 내용들은 정리가 되어 있지 않아서 과정+오류 해결 내용도 같이 정리해 보려고 합니다.

 


 

일단 저희 프로젝트에 적용할 CI는 빌드와 테스트 코드 자동화였습니다.

처음 명령어를 입력했을 때는 code 74 error가 발생했습니다.

 

code 74 error xcodebuild 버전과 현재 프로젝트 xcode 버전이 맞지 않는 문제

이때 당시에 xcode 버전을 16으로 올렸었는데, 그로인해 프로젝트 포멧 버전이 70으로 올라갔었습니다.

제가 올린 xcode 버전과 xcodebuild의 버전과 호환이 되지 않는 문제였습니다.

GithubAction에서는 xcode 버전을 특정할 수 있기 때문에, xcode 버전을 설정해 주어 해결했습니다.

 

    - name: Set Xcode version
      run: sudo xcode-select -switch /Applications/Xcode_16.app
    - name: Build
      run: xcodebuild clean test -project Smeem-iOS/Smeem-iOS.xcodeproj -scheme Smeem-iOS -destination 'platform=iOS Simulator,name=iPhone 13 Mini,OS=17.0'

code 70 error

 

xcodebuild를 'platform=iOS Simulator,name=iPhone 13 Mini,OS=17.0'에 등록해 놓았는데 요청한 기기를 찾을 수 없다는 에러였습니다.

 

이를 해당 명령어를 추가하여 사용가능한 디바이스 목록을 확인하고, 지원 가능한 버전으로 수정해 주었습니다.

해당 명령어를 1회성으로만 사용해도 될듯합니다.

추가된 코드

    - name: List available devices
      run: xcrun simctl list devices

 

변경된 코드 -> 기기 디바이스, 버전 변경

    - name: Build
      run: xcodebuild clean test -project Smeem-iOS/Smeem-iOS.xcodeproj -scheme Smeem-Dev -destination 'platform=iOS Simulator,name=iPhone 14 Pro,OS=17.2'

 

 


code error 65 - 프로젝트 의존성 관련 문제

ComputeTargetDependencyGraph는 프로젝트 의존성 관련된 문제였는데, cocoapods, spm이 올바르게 설치되어 있지 않는 이슈일 수 있다는 사실을 알게 되었고, SPM을 재설치해 보았지만 해결되지는 않았고 직접 의존성을 해결하는 명령어를 통해 해결했습니다.

 

    - name: Resolve Dependencies
      run: xcodebuild -resolvePackageDependencies

code error 66 - 의존성 해결 과정에서 디렉토리에서 프로젝트 파일 찾을 수 없는 문제

 

해당 디렉토리에서 프로젝트 파일을 찾을 수 없다는 에러였습니다.

 

    - name: Resolve Dependencies
      run: xcodebuild -resolvePackageDependencies
      working-directory: ./Smeem-iOS

 

 

밑에 경로를 추가하였지만 그래도 다시 error 65번이 발생했습니다.

이는 TCA 라이브러리를 지우면서 해결이 되었는데 정확한 원인을 알 수가 없네요 ㅠㅠ 아시는 분 있으면 댓글 부탁드려요

 

저는 TCA 라이브러리를 제거할 예정이었기 때문에 지우고 해결이 되었지만 TCA를 설치해야 하시는 분들은 해당 깃허브 내용을 참고해 주세요

https://github.com/pointfreeco/swift-composable-architecture/discussions/2845

 

Bitrise CI fails after upgrading from 0.59.0 to 1.8.2 · pointfreeco swift-composable-architecture · Discussion #2845

Hey guys, not sure if it belongs here, but I would like to start from this one and move further if it's not the issue with TCA. After upgrading from 0.59.0 to 1.8.2 (I also tried to upgrade to lowe...

github.com

 


code error 65 - 프로젝트 의존성 관련 문제

 

현재 저희 프로젝트는 프로젝트에 중요한 정보들을 config 파일에 저장하고, 이를 gitignore로 숨긴 다음에 팀원들과 로컬로 가지고 있는 방법을 사용하고 있습니다. 이때문에 config 파일이 없어서 빌드가 불가능하다는 에러였습니다.

 

    - name: Create Debug.xcconfig
      run: echo "${{ secrets.DEBUG_CONFIG }}" > ./Smeem-iOS/Debug.xcconfig

 

환경 변수를 통해 config 파일의 내용들을 숨겨서 올려 주고, 이를 맞는 파일트리에 설정해 주어 해결했습니다.


 

전체 코드

# This workflow will build a Swift project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift

name: Swift

on:
  push:
    branches: [ "develop" ]
  pull_request:
    branches: [ "develop" ]

jobs:
  build:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v4
    - name: Set Xcode version
      run: sudo xcode-select -switch /Applications/Xcode_16.app
    - name: List available devices
      run: xcrun simctl list devices
    - name: Resolve Dependencies
      run: xcodebuild -resolvePackageDependencies
      working-directory: ./Smeem-iOS
    - name: Create Debug.xcconfig
      run: echo "${{ secrets.DEBUG_CONFIG }}" > ./Smeem-iOS/Debug.xcconfig
    - name: Build
      run: xcodebuild build -project Smeem-iOS/Smeem-iOS.xcodeproj -scheme Smeem-Dev -destination 'platform=iOS Simulator,name=iPhone 14 Pro,OS=17.2'

 

Comments