Skip to content

Conversation

@0Hooni
Copy link
Member

@0Hooni 0Hooni commented Jul 17, 2025

📌 이슈

✅ 작업 사항

  • fastlane match를 통한 자동 사이닝 추가
  • fastlane beta를 통한 자동 테스트플라이트 업로드 추가

📝 추가 전달

추후 앱스토어 자동 배포 구성과 GitHub Actions를 이용해서 git flow 전략과 통합할 예정입니다. 우선적으로는 match를 이용한 자동 인증서 관리과 beta만 추가해두었습니다.

2주 뒤 있을 1.1.3 배포때 구성해보겠습니다.

Summary by CodeRabbit

  • 새로운 기능

    • Fastlane 및 관련 구성 파일(Gemfile, Appfile, Fastfile, Matchfile) 추가로 iOS 앱의 자동화된 배포 및 서명 관리 기능이 도입되었습니다.
  • 스타일

    • .gitignore에 *.env 파일 무시 규칙이 추가되었습니다.
  • 버그 수정

    • 프로젝트 및 SearchFeature 데모의 코드 서명, 개발팀, 프로비저닝 프로필 설정이 최신 값으로 변경되었습니다.
    • 앱 버전 및 빌드 번호가 최신 값으로 업데이트되었습니다.
  • 문서

    • Fastlane 관련 파일에 공식 문서 링크 및 설명이 추가되었습니다.

@0Hooni 0Hooni requested a review from zzangzzangguy July 17, 2025 11:49
@0Hooni 0Hooni self-assigned this Jul 17, 2025
@0Hooni 0Hooni added the 🚀 feat 새로운 기능을 추가 label Jul 17, 2025
@0Hooni 0Hooni linked an issue Jul 17, 2025 that may be closed by this pull request
@coderabbitai
Copy link

coderabbitai bot commented Jul 17, 2025

Walkthrough

이 변경사항은 Poppool iOS 프로젝트의 배포 자동화 및 코드 서명 구성을 중심으로 이루어졌습니다. Fastlane 설정 파일들이 새로 추가되었고, Xcode 프로젝트와 Info.plist, .gitignore 파일이 업데이트되었습니다. 주요 내용은 코드 서명 팀, 프로비저닝 프로필, 빌드 및 마케팅 버전, Fastlane 자동화 도입 등입니다.

Changes

파일/경로 그룹 변경 요약
.gitignore *.env 패턴 추가로 모든 .env 파일 무시
Poppool/Gemfile fastlane gem 추가 및 rubygems.org 소스 지정
Poppool/Poppool.xcodeproj/project.pbxproj 코드 서명 ID, 개발팀, 프로젝트/마케팅 버전, 프로비저닝 프로필 등 빌드 설정 변경
Poppool/Poppool/Resource/Info.plist CFBundleVersion을 고정값 250715.1858로 변경
Poppool/PresentationLayer/SearchFeature/SearchFeature.xcodeproj/project.pbxproj SearchFeatureDemo 타겟의 개발팀, 프로비저닝 프로필, 코드 서명 관련 빌드 설정 변경
Poppool/fastlane/Appfile
Poppool/fastlane/Fastfile
Poppool/fastlane/Matchfile
Fastlane 배포 자동화를 위한 Appfile, Fastfile, Matchfile 신규 추가

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant Fastlane
    participant Xcode
    participant TestFlight

    Developer->>Fastlane: beta lane 실행
    Fastlane->>Fastlane: match로 프로비저닝 동기화(appstore)
    Fastlane->>Fastlane: 현재 시간 기반 빌드번호 생성
    Fastlane->>Xcode: 빌드번호 업데이트 및 앱 빌드
    Fastlane->>TestFlight: 빌드 업로드
Loading

Poem

(\(\
( -.-) 토끼가 깡총, Fastlane을 불러
((")(") 서명도 자동, 빌드도 척척

.env는 감춰, 버전은 높이고
TestFlight로 날아가는
Poppool의 꿈, 오늘도 시작! 🚀

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/#159-setup--fastlane

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary or @coderabbitai 요약 to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
Poppool/Gemfile (1)

1-3: fastlane 버전을 명시적으로 고정해 reproducible build를 확보하세요

gem "fastlane"로만 두면 CI 환경에서 예기치 않게 major 업데이트가 설치될 수 있습니다. 패치/마이너 업그레이드는 Gemfile.lock으로 제어되더라도 새로 clone 한 개발자가 bundle install 전에 gem install fastlane을 수행하면 버전 불일치가 발생할 가능성이 있습니다. 다음처럼 최소-버전을 지정해 두면 위험을 줄일 수 있습니다.

-gem "fastlane"
+gem "fastlane", "~> 2.220"
Poppool/fastlane/Appfile (1)

1-5: 민감 정보는 환경변수로 분리하는 것을 고려하세요

Apple ID(이메일) 자체는 비밀번호가 아니지만 조직 외부에 공개 저장소라면 계정 식별자가 그대로 노출됩니다. Fastlane 은

apple_id(ENV["APPLE_ID"])
team_id(ENV["APP_STORE_TEAM_ID"])

처럼 ENV 변수를 참조하도록 지원하므로, 향후 조직 계정 변경·분기 복제 시 유지보수성을 높일 수 있습니다.

Poppool/fastlane/Matchfile (1)

1-8: CI 환경에서 readonly 옵션·키체인 경로 등을 명시하면 match 실행 속도를 개선할 수 있습니다

예를 들어 배포 파이프라인에서는 인증서/프로파일을 생성하지 않고 읽기만 하면 되므로 다음 옵션을 추가할 수 있습니다.

# CI                            |
readonly true                  # 생성 금지, clone 만
git_branch "main"              # 고정 브랜치 지정

작업 유형별로 lane 분리 후 match(type: "appstore", readonly: true) 형태로 호출하면 불필요한 네트워크 지연을 줄일 수 있습니다.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8b0577b and 60fda63.

📒 Files selected for processing (8)
  • .gitignore (1 hunks)
  • Poppool/Gemfile (1 hunks)
  • Poppool/Poppool.xcodeproj/project.pbxproj (4 hunks)
  • Poppool/Poppool/Resource/Info.plist (1 hunks)
  • Poppool/PresentationLayer/SearchFeature/SearchFeature.xcodeproj/project.pbxproj (4 hunks)
  • Poppool/fastlane/Appfile (1 hunks)
  • Poppool/fastlane/Fastfile (1 hunks)
  • Poppool/fastlane/Matchfile (1 hunks)
🔇 Additional comments (14)
Poppool/Poppool/Resource/Info.plist (1)

21-21: CFBundleVersion 하드코딩은 자동 증분 흐름과 충돌할 수 있습니다

$(CURRENT_PROJECT_VERSION) 자리표시자를 제거하고 실제 값을 넣으면 Fastlane의 increment_build_number나 Xcode agvtool 사용 시 Info.plist 와 프로젝트 설정 간 숫자 불일치가 발생할 수 있습니다. CI 단계에서 빌드 번호를 덮어씌우도록 되어 있다면 문제 없지만, 그렇지 않다면 placeholder 유지 또는 스크립트를 통한 동기화가 필요합니다. 설정 의도를 한 번 더 확인해 주세요.

.gitignore (1)

48-48: 환경 변수 파일 무시 추가 👍

.env 파일을 무시하도록 한 것은 비밀 키 유출 위험을 줄여 줍니다. 추가 조치 없이 승인합니다.

Poppool/fastlane/Fastfile (3)

1-15: 표준 fastlane 설정 구성이 적절합니다.

fastlane의 표준 헤더 주석과 설정이 올바르게 구성되어 있습니다. 자동 업데이트 옵션이 주석 처리되어 있어 안정적인 빌드 환경을 유지할 수 있습니다.


16-17: iOS 플랫폼 설정이 올바릅니다.

기본 플랫폼을 iOS로 설정하여 명확한 타겟을 지정했습니다.


18-30: beta 레인 구현 검토 완료

  • 타임스탬프 기반 빌드 번호 생성 방식이 적절합니다.
  • match(type: "appstore")를 통한 자동 서명 설정이 올바릅니다.
  • 워크스페이스 및 스킴 지정이 정확합니다.
    Poppool.xcworkspace 디렉토리
    Poppool.xcodeproj
    fastlane/Appfile, fastlane/Matchfile

위 요소가 모두 프로젝트에 존재함을 확인했으므로 코드 변경사항을 승인합니다.

Poppool/PresentationLayer/SearchFeature/SearchFeature.xcodeproj/project.pbxproj (4)

681-681: 개발 팀 ID 업데이트가 올바르게 적용되었습니다.

Debug 구성에서 개발 팀 ID가 새로운 팀 ID "9JZYRP3D46"로 업데이트되어 메인 프로젝트와 일치합니다.


698-698: 프로비저닝 프로파일이 fastlane match 패턴으로 업데이트되었습니다.

Debug 구성에서 프로비저닝 프로파일 지정자가 "match Development com.poppoolIOS.*" 패턴으로 변경되어 fastlane match와 일치합니다.


717-721: Release 구성의 코드 서명 설정이 Manual 스타일로 변경되었습니다.

Release 구성에서 코드 서명 ID가 "iPhone Developer"로 설정되고 스타일이 Manual로 변경되어 fastlane match와 일치합니다. 개발 팀 ID도 동일하게 업데이트되었습니다.


737-738: Release 구성의 프로비저닝 프로파일 설정이 적절합니다.

Release 구성에서도 프로비저닝 프로파일이 match 패턴으로 업데이트되어 일관된 설정을 유지합니다.

Poppool/Poppool.xcodeproj/project.pbxproj (5)

427-427: Debug 구성의 코드 서명 ID가 Development로 변경되었습니다.

Debug 구성에서 코드 서명 ID가 "iPhone Developer"로 변경되어 개발 빌드에 적합한 설정으로 업데이트되었습니다.


429-429: 빌드 번호가 타임스탬프 형식으로 업데이트되었습니다.

CURRENT_PROJECT_VERSION이 "250715.1858"로 업데이트되어 Fastfile의 타임스탬프 기반 빌드 번호 생성과 일치합니다. Debug와 Release 구성 모두에 적용되어 일관성을 유지합니다.

Also applies to: 476-476


431-431: 개발 팀 ID가 새로운 팀으로 업데이트되었습니다.

DEVELOPMENT_TEAM[sdk=iphoneos*]이 "9JZYRP3D46"로 변경되어 새로운 Apple Developer 팀 설정과 일치합니다. Debug와 Release 구성 모두에 적용되었습니다.

Also applies to: 478-478


449-449: 마케팅 버전이 1.1.2로 업데이트되었습니다.

MARKETING_VERSION이 "1.1.2"로 증가하여 새로운 릴리스 버전을 반영합니다. Debug와 Release 구성 모두에 적용되었습니다.

Also applies to: 496-496


453-453: 프로비저닝 프로파일이 fastlane match 패턴으로 업데이트되었습니다.

Debug 구성에서는 "match Development com.poppoolIOS.poppool", Release 구성에서는 "match AppStore com.poppoolIOS.poppool"로 설정되어 각각의 빌드 타입에 적합한 프로비저닝 프로파일을 사용합니다.

Also applies to: 500-500

Copy link
Contributor

@zzangzzangguy zzangzzangguy left a comment

Choose a reason for hiding this comment

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

LGTM~!

@0Hooni 0Hooni merged commit 8da795b into develop Jul 19, 2025
3 checks passed
@0Hooni 0Hooni deleted the feat/#159-setup--fastlane branch July 19, 2025 04:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🚀 feat 새로운 기능을 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fastlane 설정하기

3 participants