Skip to content

[#225] 테스트플라이트 자동 배포가 실패하는 현상을 해결한다#233

Merged
opficdev merged 14 commits intodevelopfrom
fix/#225-fastlane
Mar 10, 2026
Merged

[#225] 테스트플라이트 자동 배포가 실패하는 현상을 해결한다#233
opficdev merged 14 commits intodevelopfrom
fix/#225-fastlane

Conversation

@opficdev
Copy link
Copy Markdown
Owner

@opficdev opficdev self-assigned this Mar 10, 2026
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 풀 리퀘스트는 TestFlight 자동 배포가 실패하는 문제를 해결하기 위해 Fastlane 설정을 전반적으로 개선합니다. 빌드 번호 관리 로직을 강화하고, CI 환경에서의 코드 서명 프로세스를 안정화하며, 빌드 명령에 추가 인자를 포함하여 빌드 실패 가능성을 줄였습니다. 이를 통해 TestFlight를 통한 앱 배포의 신뢰성과 효율성이 향상될 것입니다.

Highlights

  • Fastlane 설정 개선: Fastfile에 XCODE_PROJ, APP_IDENTIFIER, TARGET_NAME 상수를 추가하여 설정의 유연성을 높였습니다.
  • 빌드 번호 관리 강화: TestFlight의 최신 빌드 번호를 가져와 자동으로 빌드 번호를 증가시키는 로직을 build_for_store 레인에 추가했습니다.
  • CI 환경 코드 서명 개선: CI 환경에서 match를 통해 개발 및 앱스토어 프로비저닝 프로파일을 관리하고, update_code_signing_settings를 사용하여 코드 서명 설정을 업데이트하도록 개선했습니다.
  • TestFlight 배포 레인 재구성: beta 레인의 이름을 deploy_testflight로 변경하고, build_for_store만 실행하는 testflight_build_only 레인을 새로 추가했습니다.
  • 빌드 안정성 향상: build_app 액션에 -skipPackagePluginValidation 인자를 추가하여 빌드 안정성을 높였습니다.
Changelog
  • .gitignore
    • fastlane/README.md 파일을 무시 목록에 추가했습니다.
  • fastlane/Fastfile
    • XCODE_PROJ, APP_IDENTIFIER, TARGET_NAME 상수를 정의했습니다.
    • build_for_store 레인에 FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT 및 FASTLANE_XCODEBUILD_SETTINGS_RETRIES 환경 변수 확인 로직을 추가했습니다.
    • get_version_number와 app_store_build_number를 사용하여 빌드 번호를 동적으로 관리하도록 변경했습니다.
    • match 액션을 통해 development 프로비저닝 프로파일을 추가했습니다.
    • CI 환경에서 update_code_signing_settings를 사용하여 코드 서명 설정을 업데이트하는 로직을 추가했습니다.
    • build_app 액션에 xcargs: "-skipPackagePluginValidation"을 추가했습니다.
    • beta 레인의 이름을 deploy_testflight로 변경했습니다.
    • build_for_store 레인만 호출하는 testflight_build_only 레인을 새로 추가했습니다.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/build.yml
    • .github/workflows/release.yml
    • .github/workflows/testflight.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@opficdev opficdev merged commit 82044ce into develop Mar 10, 2026
1 check failed
@opficdev opficdev deleted the fix/#225-fastlane branch March 10, 2026 01:17
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

안녕하세요. 테스트플라이트 자동 배포 실패 문제를 해결하기 위한 PR을 리뷰했습니다. Fastlane 설정을 개선하여 배포 프로세스의 안정성과 유지보수성을 높인 점이 인상적입니다.
주요 변경 사항은 다음과 같습니다:

  • Fastfile에서 프로젝트 경로, 앱 식별자 등을 상수로 분리하여 재사용성을 높였습니다.
  • TestFlight의 최신 빌드 번호를 가져와 1을 더하는 방식으로 빌드 번호를 동적으로 관리하도록 변경하여, GITHUB_RUN_NUMBER 사용 시 발생할 수 있는 문제를 해결했습니다.
  • CI 환경에서 코드 서명을 명시적으로 처리하고, 빌드 타임아웃 및 재시도 설정을 추가하여 빌드 실패 가능성을 줄였습니다.
  • beta lane의 이름을 deploy_testflight로 변경하여 역할을 더 명확하게 했습니다.

전반적으로 배포 자동화 스크립트를 훨씬 더 견고하게 만드는 훌륭한 개선입니다. 코드 가독성과 효율성을 높일 수 있는 몇 가지 제안을 리뷰 코멘트로 남겼습니다. 확인 부탁드립니다.

I am having trouble creating individual review comments. Click here to see my feedback.

fastlane/Fastfile (18-24)

medium

환경 변수 기본값을 설정하는 이 부분을 Ruby의 ||= 연산자를 사용하여 더 간결하게 개선할 수 있습니다. 코드를 더 짧고 명확하게 만들 수 있습니다.

예를 들어, 다음과 같이 변경할 수 있습니다.

ENV["FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT"] ||= "30"
ENV["FASTLANE_XCODEBUILD_SETTINGS_RETRIES"] ||= "5"

이렇게 하면 if 블록 없이 기본값을 할당할 수 있어 가독성이 향상됩니다.

fastlane/Fastfile (47-57)

medium

match 액션을 두 번 호출하고 있습니다. type 파라미터는 배열을 받을 수 있으므로, 한 번의 호출로 합칠 수 있습니다. 이렇게 하면 코드가 더 간결해지고 효율적입니다.

다음과 같이 수정하는 것을 제안합니다.

match(
  api_key: api_key,
  type: ["development", "appstore"],
  readonly: ENV["CI"] == "true"
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant