Conversation
Summary of ChangesHello, 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! 이 PR은 TestFlight 자동 배포 시 발생하던 문제를 해결하고, App Store 릴리즈 프로세스를 자동화하여 배포 워크플로우의 안정성과 효율성을 높이는 데 중점을 둡니다. 최신 TestFlight 빌드 번호를 기반으로 빌드 번호를 자동으로 관리하고, CI 환경에서의 코드 서명 설정을 개선하여 일관된 배포 경험을 제공합니다. Highlights
Changelog
Ignored Files
Activity
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Code Review
테스트플라이트 자동 배포 실패 문제를 해결하기 위한 변경 사항 잘 보았습니다. App Store Connect에서 최신 빌드 번호를 가져와 1을 더하는 방식으로 빌드 번호를 관리하는 것은 매우 안정적이고 좋은 접근 방식입니다. 이로 인해 CI/CD 파이프라인의 안정성이 크게 향상될 것으로 기대됩니다. 전반적으로 코드의 목적이 명확하고, build_for_store lane에 타임아웃 및 재시도 로직을 추가하고, 코드 사이닝 설정을 자동화하는 등 방어적인 프로그래밍이 잘 적용되었습니다. 몇 가지 Ruby 코드 스타일 컨벤션과 관련된 사소한 개선 사항을 리뷰 댓글로 남겼습니다. 확인 후 반영해주시면 코드의 일관성과 가독성이 더욱 좋아질 것 같습니다.
I am having trouble creating individual review comments. Click here to see my feedback.
fastlane/Fastfile (8-35)
Ruby의 네이밍 컨벤션인 snake_case를 따르도록 변수명을 수정하는 것을 제안합니다. apiKey는 api_key로, versionNumber는 version_number로 변경하면 코드의 가독성과 일관성을 높일 수 있습니다.
private_lane :fetch_latest_testflight_build_number do |options|
require "spaceship"
api_key = options[:api_key]
version_number = options[:version]
Spaceship::ConnectAPI.token = Spaceship::ConnectAPI::Token.create(**api_key)
app = Spaceship::ConnectAPI::App.find(APP_IDENTIFIER)
UI.user_error!("Could not find app for #{APP_IDENTIFIER}") if app.nil?
filter = {
"state" => "PROCESSING,FAILED,COMPLETE",
"cfBundleShortVersionString" => version_number,
"platform" => Spaceship::ConnectAPI::Platform.map("ios")
}
build = Spaceship::ConnectAPI.get_build_uploads(
app_id: app.id,
filter: filter,
sort: "-uploadedDate",
limit: 1
).first
next 0 if build.nil?
next build.cf_build_version.to_i
end
fastlane/Fastfile (57-72)
Ruby 컨벤션에 따라 변수명에 snake_case를 사용하는 것이 좋습니다. versionNumber는 version_number로, latestTestflightBuildNumber는 latest_testflight_build_number로 변경하는 것을 제안합니다. 이렇게 변경하면 코드 전체의 일관성이 향상됩니다.
version_number = get_version_number(
xcodeproj: XCODE_PROJ,
target: TARGET_NAME
)
latest_testflight_build_number = fetch_latest_testflight_build_number(
api_key: api_key,
version: version_number
)
setup_ci if ENV["CI"]
increment_build_number(
xcodeproj: XCODE_PROJ,
build_number: latest_testflight_build_number + 1
)
closed 테스트플라이트 자동 배포가 실패하는 현상을 해결한다 #225
TestFlight: 커밋 태그 기반으로 수정
App Store: Develop -> Main 브랜치 머지 시 + 릴리즈 자동화 (버전은 Xcode에서 수정하는 앱 버전 따라감)