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! 이 Pull Request는 TestFlight 자동 배포 실패 문제를 해결하기 위해 Fastlane 설정을 개선합니다. 주요 변경 사항은 빌드 번호 관리 로직을 고도화하고, CI 환경에서의 코드 사이닝 안정성을 강화하며, Fastlane 레인 구성을 명확하게 재정비하는 것입니다. 이를 통해 TestFlight 배포 프로세스의 견고함과 신뢰성을 향상시키는 것을 목표로 합니다. Highlights
Changelog
Ignored Files
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
이번 PR은 TestFlight 자동 배포 실패 문제를 해결하기 위해 Fastlane 설정을 수정했습니다. Fastfile에 TestFlight에서 최신 빌드 번호를 가져오는 로직을 추가하고, 이를 사용하여 빌드 번호를 증가시키도록 변경되었습니다. 또한, CI 환경에서의 코드 서명 설정과 빌드 옵션이 수정되었습니다. 리뷰에서는 Ruby 코드 스타일 컨벤션에 따라 변수명을 수정하는 것을 제안했습니다.
I am having trouble creating individual review comments. Click here to see my feedback.
fastlane/Fastfile (8-35)
Ruby에서는 변수명으로 스네이크 케이스(snake_case)를 사용하는 것이 일반적인 컨벤션입니다. apiKey와 versionNumber를 api_key와 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 (46-110)
Ruby에서는 변수명으로 스네이크 케이스(snake_case)를 사용하는 것이 일반적인 컨벤션입니다. versionNumber, latestTestflightBuildNumber, provisioningProfileSpecifier와 같은 변수명을 스네이크 케이스로 변경하여 코드 스타일의 일관성을 높이는 것을 제안합니다.
private_lane :build_for_store do
if ENV["FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT"].to_s.strip.empty?
ENV["FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT"] = "30"
end
if ENV["FASTLANE_XCODEBUILD_SETTINGS_RETRIES"].to_s.strip.empty?
ENV["FASTLANE_XCODEBUILD_SETTINGS_RETRIES"] = "5"
end
api_key = asc_api_key
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
)
match(
api_key: api_key,
type: "development",
readonly: ENV["CI"] == "true"
)
match(
api_key: api_key,
type: "appstore",
readonly: ENV["CI"] == "true"
)
if ENV["CI"] == "true"
provisioning_profile_specifier = lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING][APP_IDENTIFIER].to_s
UI.user_error!("Missing App Store provisioning profile mapping for #{APP_IDENTIFIER}") if provisioning_profile_specifier.empty?
update_code_signing_settings(
use_automatic_signing: false,
path: XCODE_PROJ,
sdk: "iphoneos*",
team_id: ENV["APP_STORE_TEAM_ID"],
targets: [TARGET_NAME],
build_configurations: ["Release"],
code_sign_identity: "Apple Distribution",
profile_name: provisioning_profile_specifier
)
end
build_app(
project: XCODE_PROJ,
scheme: TARGET_NAME,
export_method: "app-store",
xcargs: "-skipPackagePluginValidation"
)
next api_key
end
No description provided.