Skip to content

[Setting] fastlane + github action 세팅 #12

[Setting] fastlane + github action 세팅

[Setting] fastlane + github action 세팅 #12

Workflow file for this run

name: iOS Release CI
# 세팅 완료될때까지 임시로 develop에서 진행
on:
push:
branches:
- develop
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
# 1. Xcode 버전 명시적 설정
- name: Select Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '26.2'
# 2. SPM 매크로 지문 검증 우회 (빌드 안정성 확보)
- name: Disable Macro Validation
run: |
defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES
# 3. SPM 의존성 사전 해결
- name: Resolve SPM Dependencies
run: xcodebuild -resolvePackageDependencies -project ./Neki-iOS.xcodeproj -scheme Neki-iOS
# 4. Match 인증서 저장소 접근을 위한 SSH 세팅
- name: Install SSH key for Match
uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.MATCH_SSH_KEY }}
# 5. Ruby 및 Fastlane 세팅 (Gemfile 활용)
- name: Setup Ruby and Install Gems
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true
# 6. Fastlane 배포 실행
- name: Run Fastlane Release
run: bundle exec fastlane release
env:
APP_IDENTIFIER: ${{ secrets.APP_IDENTIFIER }}
APPLE_ID: ${{ secrets.APPLE_ID }}
TEAM_ID: ${{ secrets.TEAM_ID }}
FASTLANE_ITC_TEAM_ID: ${{ secrets.FASTLANE_ITC_TEAM_ID }}
ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
ASC_KEY_CONTENT: ${{ secrets.ASC_KEY_CONTENT }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}