Skip to content

Dev <- Main: iOS 2.1 앱스토어 제출 준비 작업 최신화#266

Merged
soojjung merged 2 commits into
devfrom
main
May 27, 2026
Merged

Dev <- Main: iOS 2.1 앱스토어 제출 준비 작업 최신화#266
soojjung merged 2 commits into
devfrom
main

Conversation

@soojjung

@soojjung soojjung commented May 27, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 오류 추적 및 성능 모니터링 기능 강화
  • 업데이트

    • iOS 앱 버전을 2.1로 업데이트
    • iOS 개인정보 보호 정책 선언 추가
  • 문서

    • iOS 앱스토어 제출 릴리스 워크플로우 가이드 추가
  • Chores

    • 종속성 및 빌드 구성 최적화

Review Change Stack

soojjung and others added 2 commits May 27, 2026 03:13
release: main <- dev (마이페이지 개편 / UI 통일 / Sentry 외)
* chore: iOS 2.1 (build 1) bump + Privacy Manifest 추가 + Sentry release 자동 태깅

앱스토어 2.1 제출 준비.

iOS 버전
- MARKETING_VERSION 2.0 → 2.1 (Debug/Release 양쪽)
- CURRENT_PROJECT_VERSION 1 유지 (새 마케팅 버전이라 빌드 번호 리셋)

Privacy Manifest (Apple 2024.5+ 필수)
- ios/App/App/PrivacyInfo.xcprivacy 신설
- 수집 데이터: 이메일/이름/UserID/콘텐츠/사진/위치(소셜로그인·리뷰·지도) + 크래시/성능/진단(Sentry)
- 모두 App Functionality 목적, 광고 추적 없음(NSPrivacyTracking=false)
- Required Reason API: FileTimestamp / UserDefaults / DiskSpace / SystemBootTime
- project.pbxproj에 PBXFileReference + Resources 빌드 페이즈 등록

Sentry release 자동 태깅
- scripts/build-ios.sh: pbxproj에서 MARKETING/CURRENT 파싱 후 git SHA 결합
- 형식: ios@<marketing>+<build>.<short-sha> (예: ios@2.1+1.<sha>)
- NEXT_PUBLIC_SENTRY_RELEASE / SENTRY_RELEASE 둘 다 빌드 시점에 주입

.env.capacitor 동기화
- Sentry 관련 키(DSN/ORG/PROJECT/AUTH_TOKEN) placeholder 추가
- .env.local로 복사 워크플로우 사용 시 Sentry 키 누락 자각 가능

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: SPM Package.swift에 SentryCapacitor 등록

npx cap update ios 실행으로 자동 추가됨.
머지 후 npm run build:ios → archive로 바로 진입 가능하도록
SPM 의존성을 미리 커밋.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: /release-ios 슬래시 명령 추가 (iOS 앱스토어 제출 자동화)

main에서 release 브랜치 분기, 사전 점검, 누락 패치, 버전 bump, 릴리스
노트 초안, PR 작성까지 자동화. Archive는 Xcode에서 수동.

- 사전 점검: Sentry DSN, Info.plist 권한, Privacy Manifest, SPM 정합성,
  build-ios.sh release 태깅, 현재 iOS 버전
- 자동 패치: Privacy Manifest 생성 + pbxproj 등록, .env.capacitor placeholder,
  Sentry release 태깅, npx cap update ios, 버전 bump
- 릴리스 노트: 이전 bump 커밋 이후 머지된 PR을 사용자 관점 1~4줄로 요약
- 푸시/PR/머지는 사용자 명시 승인 후에만 진행

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: SPM Package.resolved에 sentry-cocoa 9.14.0 락

Xcode SPM 의존성 resolve 결과. SentryCapacitor가 sentry-cocoa를
간접 의존하므로 다른 환경에서도 동일 버전이 사용되도록 락 파일 커밋.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: /release-ios에 Archive 완료 후 ASC 자동 오픈 단계 추가

13단계 신설: 사용자가 "Archive 끝났어" / "업로드 끝났어" / "ASC 열어줘"
등 완료 신호를 보내면 자동으로:
1) 릴리스 노트(7단계 확정본)를 pbcopy로 클립보드 복사
2) open 명령으로 https://appstoreconnect.apple.com/apps 오픈
3) 심사 제출 단계 가이드 출력

명확한 완료 신호 없이는 자동 오픈 금지 (오작동 방지).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@soojjung soojjung self-assigned this May 27, 2026
@vercel

vercel Bot commented May 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
gotcha Ready Ready Preview, Comment May 27, 2026 6:22pm

@coderabbitai

coderabbitai Bot commented May 27, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 30ec93e0-c6ab-4b89-bde0-2552988688a4

📥 Commits

Reviewing files that changed from the base of the PR and between de21fec and f0f5686.

📒 Files selected for processing (7)
  • .claude/commands/release-ios.md
  • .env.capacitor
  • ios/App/App.xcodeproj/project.pbxproj
  • ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
  • ios/App/App/PrivacyInfo.xcprivacy
  • ios/App/CapApp-SPM/Package.swift
  • scripts/build-ios.sh

📝 Walkthrough

Walkthrough

iOS 앱스토어 심사 제출을 위한 자동화된 release 브랜치 워크플로우 문서를 추가하고, iOS 버전을 2.1로 업데이트하며, Privacy Manifest 파일을 작성하고, Sentry 에러 추적 의존성(sentry-cocoa, SentryCapacitor)을 추가한 후, 빌드 스크립트에서 Sentry 릴리스 식별자를 계산하여 환경 변수로 주입합니다.

Changes

iOS 릴리스 파이프라인 및 Sentry 통합

레이어 / 파일 요약
릴리스 문서 및 버전 업데이트
\.claude/commands/release-ios.md, ios/App/App.xcodeproj/project.pbxproj
iOS 앱스토어 제출을 위한 완전한 release 브랜치 운영 절차 문서(사전점검, 자동 패치 지침, 브랜치/PR 생성 규칙, Archive 단계, 완료 처리)를 추가하고, 마케팅 버전을 Debug/Release 모두에서 2.0에서 2.1로 업데이트합니다.
iOS Privacy Manifest 파일 및 프로젝트 등록
ios/App/App/PrivacyInfo.xcprivacy, ios/App/App.xcodeproj/project.pbxproj
iOS 개인정보 보호 고지용 PrivacyInfo.xcprivacy plist을 작성하여 수집 데이터 타입(이메일, 이름, 사용자 ID, 위치, 크래시 데이터, 진단 데이터), 접근 API 타입(파일 타임스탬프, UserDefaults, 디스크 공간, 부팅 시간) 및 사유 코드를 선언하고, 프로젝트 설정에 파일 참조, 빌드 단계, 그룹 멤버십을 등록합니다.
Sentry iOS 의존성 추가 및 환경 변수 구성
ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved, ios/App/CapApp-SPM/Package.swift, \.env.capacitor
Sentry 에러 추적을 iOS에 통합하기 위해 sentry-cocoa(v9.14.0)를 Package.resolved에 고정하고, CapApp-SPM 패키지 매니페스트에 SentryCapacitor 의존성을 추가한 후, .env.capacitor에 NEXT_PUBLIC_SENTRY_DSN, SENTRY_ORG, SENTRY_PROJECT, SENTRY_AUTH_TOKEN 환경 변수를 정의합니다.
빌드 스크립트 Sentry 릴리스 식별자 계산 및 주입
scripts/build-ios.sh
build-ios.sh 스크립트에서 project.pbxproj의 마케팅 버전, 프로젝트 버전, git 단축 SHA로부터 Sentry 릴리스 식별자를 계산하고, NEXT_PUBLIC_SENTRY_RELEASE 및 SENTRY_RELEASE 환경 변수로 주입하여 빌드 시 Sentry에 연결된 에러 추적을 활성화합니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 보안의 선언서와 추적의 열쇠,
Privacy Manifest와 Sentry DSN이 만나 춤을 추고,
앱스토어를 향해 버전 2.1 돛을 올리며,
릴리스 워크플로우가 자동으로 흐르네요!
에러는 기록되고, 사용자 정보는 보호되고,
iOS 앱이 세상을 향해 나아갑니다. 🍎

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch main

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@soojjung soojjung merged commit 813a0ae into dev May 27, 2026
4 of 5 checks passed
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