docs(channel): 공유 계획을 기록한다
This commit is contained in:
@@ -0,0 +1,335 @@
|
||||
# 크리에이터 채널 공유 구현 계획
|
||||
|
||||
| 문서 항목 | 내용 |
|
||||
|---|---|
|
||||
| 상태 | 구현 완료, 수동 검증 대기 |
|
||||
| 작성일 | `2026-09-14` |
|
||||
| 요구사항 기준 | `docs/20260914_크리에이터_채널_공유/prd.md` |
|
||||
| API 기준 | 해당 없음 |
|
||||
| 현재 Phase | Phase 1: 채널 공유 진입점과 공유 시트 연결 |
|
||||
| 현재 활성 Goal | P1-GATE 수동 검증 |
|
||||
|
||||
## 목표
|
||||
|
||||
내 채널과 다른 사람 채널에서 모두 기존 채널 공유 메시지와 OneLink URL을 iOS 공유 시트로 공유할 수 있게 한다.
|
||||
|
||||
## 현재 상태
|
||||
|
||||
| Phase | 상태 | 완료 Task | 활성/다음 Goal | 차단 또는 남은 조건 |
|
||||
|---:|---|---:|---|---|
|
||||
| 1 | 수동 검증 대기 | `4/4` | `P1-GATE` | 실제 채널 진입 후 공유 시트 표시 수동 확인 필요 |
|
||||
|
||||
- 동시에 하나의 미완료 goal만 운용한다.
|
||||
- 완료된 Task와 검증 기록은 되돌리거나 삭제하지 않는다.
|
||||
- 구현은 완료했으며, 사용자 요청에 따라 visual QA 없이 수동 테스트로 최종 확인한다.
|
||||
|
||||
## 범위
|
||||
|
||||
### 포함
|
||||
|
||||
- 내 채널 title bar 우측 상단 공유 버튼 추가 계획
|
||||
- 다른 사람 채널 더보기 overlay 최상단 `채널 공유` 항목 추가 계획
|
||||
- 기존 `UserProfileViewModel.shareChannel`과 동일한 OneLink/메시지/`ActivityViewController` 공유 동작 연결 계획
|
||||
- 공유 실패 popup, 빌드, 수동 검증 기준
|
||||
|
||||
### 제외
|
||||
|
||||
- 새 공유 문구 또는 새 딥링크 계약 생성
|
||||
- 새 API 추가
|
||||
- 공유 URL 생성 로직의 공용 helper 분리
|
||||
- 커밋 생성
|
||||
|
||||
## 기술적 제약
|
||||
|
||||
- 기술 스택: Swift, SwiftUI, 기존 `ActivityViewController`, 기존 OneLink URL 생성 함수
|
||||
- 아키텍처: `CreatorChannelView`는 화면 상태와 공유 시트 표시 상태를 소유하고, title bar와 더보기 overlay는 action closure로 공유 동작을 호출한다.
|
||||
- 데이터·보안: 공유 메시지에는 nickname과 OneLink URL만 포함하고 token·개인정보를 포함하지 않는다.
|
||||
- 의존성: 신규 dependency를 추가하지 않는다.
|
||||
- 계약: `af_dp=voiceon://`, `deep_link_value=channel`, `deep_link_sub5={creatorId}`를 기존 공유와 동일하게 사용한다.
|
||||
- 검증: 테스트 타깃이 확인되지 않으므로 focused build와 수동 검증을 완료 증거로 사용한다.
|
||||
|
||||
## 주요 대상 파일
|
||||
|
||||
### 수정
|
||||
|
||||
- `SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift`
|
||||
- `SodaLive/Sources/V2/CreatorChannel/CreatorChannelViewModel.swift`
|
||||
- `SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelTitleBar.swift`
|
||||
- `SodaLive/Sources/Report/ProfileReportMenuView.swift`
|
||||
- `SodaLive/Sources/I18n/I18n.swift`
|
||||
|
||||
### 확인
|
||||
|
||||
- `SodaLive/Sources/Explorer/Profile/UserProfileView.swift`
|
||||
- `SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift`
|
||||
- `SodaLive/Sources/Common/ActivityViewController.swift`
|
||||
- `docs/agent-guides/build-test-verification.md`
|
||||
|
||||
## Phase 1: 채널 공유 진입점과 공유 시트 연결
|
||||
|
||||
**Phase 결과:** 내 채널 공유 버튼과 다른 사람 채널 더보기 공유 항목에서 동일한 채널 공유 시트를 열 수 있다.
|
||||
|
||||
**선행조건:** `docs/20260914_크리에이터_채널_공유/prd.md`의 요구사항 확정.
|
||||
|
||||
**Phase 완료 조건:** `P1-T1`~`P1-T4`와 `P1-GATE` 완료, 검증 기록 누적.
|
||||
|
||||
### 구현 항목
|
||||
|
||||
#### Task 1.1 title bar 공유 진입점 정의
|
||||
|
||||
**Goal 실행 `P1-T1`:** 내 채널 title bar에 직접 공유 버튼을 표시할 수 있도록 `CreatorChannelTitleBar` contract를 확장한다.
|
||||
|
||||
- **시작 조건:** `CCSHARE-001` 확정.
|
||||
- **완료 증거:** title bar가 내 채널과 다른 사람 채널 action 구성을 분리하고 `ic_audio_content_share` 버튼을 표시할 수 있음.
|
||||
- **범위 밖:** 공유 URL 생성과 `ActivityViewController` 표시.
|
||||
|
||||
**Files:**
|
||||
|
||||
- Modify: `SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelTitleBar.swift`
|
||||
- Modify: `SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift`
|
||||
- Test: 테스트 타깃 없음. 빌드와 수동 검증으로 대체.
|
||||
|
||||
**TDD 예외 사유:** 현재 `SodaLive.xcodeproj/project.pbxproj` 기준으로 테스트 번들 타깃이 확인되지 않아 UI contract 변경은 focused build와 수동 검증으로 판정한다.
|
||||
|
||||
**대체 검증 방법:** 구현 후 아래 명령과 수동 확인을 수행한다.
|
||||
|
||||
```bash
|
||||
rg "ic_audio_content_share|onTapShare|showsCreatorActions|CreatorChannelTitleBar" SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelTitleBar.swift SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift
|
||||
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
|
||||
```
|
||||
|
||||
Expected:
|
||||
|
||||
- `CreatorChannelTitleBar`에서 공유 action과 `ic_audio_content_share` 사용이 확인된다.
|
||||
- `CreatorChannelView`가 내 채널 여부에 따라 공유 버튼 또는 더보기 버튼 구성을 전달한다.
|
||||
- 빌드 exit code가 0이다.
|
||||
|
||||
- [x] title bar contract에 공유 action을 추가한다.
|
||||
- [x] 내 채널일 때 공유 버튼이 보이는 조건을 연결한다.
|
||||
- [x] 다른 사람 채널일 때 기존 더보기 버튼이 유지되는지 확인한다.
|
||||
- [x] `ic_audio_content_share` asset 이름을 그대로 사용한다.
|
||||
|
||||
#### Task 1.2 공유 메시지와 공유 시트 상태 연결
|
||||
|
||||
**Goal 실행 `P1-T2`:** 기존 `UserProfileViewModel.shareChannel`과 동일한 공유 메시지·OneLink 생성·`ActivityViewController` 표시 흐름을 `CreatorChannelView`에 연결한다.
|
||||
|
||||
- **시작 조건:** `P1-T1` 완료, `CCSHARE-002`, `CCSHARE-006`, `CCSHARE-007` 확정.
|
||||
- **완료 증거:** 공유 action이 `creatorId`, `nickname`으로 기존 OneLink 파라미터를 만들고 공유 시트를 표시한다.
|
||||
- **범위 밖:** 공유 helper 분리와 새 공유 문구 추가.
|
||||
|
||||
**Files:**
|
||||
|
||||
- Modify: `SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift`
|
||||
- Modify: `SodaLive/Sources/V2/CreatorChannel/CreatorChannelViewModel.swift`
|
||||
- Check: `SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift`
|
||||
- Check: `SodaLive/Sources/Common/ActivityViewController.swift`
|
||||
- Test: 테스트 타깃 없음. 빌드와 수동 검증으로 대체.
|
||||
|
||||
**TDD 예외 사유:** 공유 시트는 iOS system UI이고 현재 테스트 타깃이 없어 자동 UI test를 작성하지 않는다.
|
||||
|
||||
**대체 검증 방법:** 구현 후 아래 명령과 수동 확인을 수행한다.
|
||||
|
||||
```bash
|
||||
rg "af_dp|deep_link_value|deep_link_sub5|shareChannel|shareMessage|isShowShareView|ActivityViewController" SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift SodaLive/Sources/V2/CreatorChannel/CreatorChannelViewModel.swift SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift
|
||||
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
|
||||
```
|
||||
|
||||
Expected:
|
||||
|
||||
- V2 크리에이터 채널 공유 로직이 기존 `UserProfileViewModel.shareChannel`과 같은 파라미터를 사용한다.
|
||||
- `ActivityViewController`가 `shareMessage`를 받아 표시된다.
|
||||
- OneLink 생성 실패 시 `I18n.MemberChannel.shareLinkCreateFailed` popup 흐름이 있다.
|
||||
- 빌드 exit code가 0이다.
|
||||
|
||||
- [x] `CreatorChannelViewModel` 또는 `CreatorChannelView`에 공유 메시지 상태를 추가한다.
|
||||
- [x] `af_dp`, `deep_link_value`, `deep_link_sub5` 값을 기존 채널 공유와 동일하게 구성한다.
|
||||
- [x] 성공 시 `I18n.MemberChannel.shareChannelMessage(nickname)`과 URL을 줄바꿈으로 합친다.
|
||||
- [x] 실패 시 기존 실패 문구 popup을 표시한다.
|
||||
- [x] `CreatorChannelView`에 `ActivityViewController` presentation을 연결한다.
|
||||
|
||||
#### Task 1.3 더보기 메뉴 최상단 공유 항목 추가
|
||||
|
||||
**Goal 실행 `P1-T3`:** 다른 사람 채널 더보기 overlay 최상단에 `채널 공유` 항목을 추가하고, 탭 시 공유 action을 실행한다.
|
||||
|
||||
- **시작 조건:** `P1-T2` 완료, `CCSHARE-003`~`CCSHARE-005` 확정.
|
||||
- **완료 증거:** 다른 사람 채널 더보기 메뉴 순서가 `채널 공유`, 차단/차단 해제, 사용자 신고, 프로필 신고 순서다.
|
||||
- **범위 밖:** 기존 차단/신고 API 동작 변경.
|
||||
|
||||
**Files:**
|
||||
|
||||
- Modify: `SodaLive/Sources/Report/ProfileReportMenuView.swift`
|
||||
- Modify: `SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift`
|
||||
- Modify: `SodaLive/Sources/I18n/I18n.swift`
|
||||
- Test: 테스트 타깃 없음. 빌드와 수동 검증으로 대체.
|
||||
|
||||
**TDD 예외 사유:** 기존 overlay menu는 SwiftUI view이고 현재 테스트 타깃이 없어 자동 UI test를 작성하지 않는다.
|
||||
|
||||
**대체 검증 방법:** 구현 후 아래 명령과 수동 확인을 수행한다.
|
||||
|
||||
```bash
|
||||
rg "channelShare|shareChannel|ProfileReportMenuView|userBlockAction|userReportAction|profileReportAction" SodaLive/Sources/Report/ProfileReportMenuView.swift SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift SodaLive/Sources/I18n/I18n.swift
|
||||
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
|
||||
```
|
||||
|
||||
Expected:
|
||||
|
||||
- `ProfileReportMenuView`에 공유 항목과 공유 action이 있고 기존 차단/신고 action이 유지된다.
|
||||
- `채널 공유` I18n 문구가 ko/en/ja에 제공된다.
|
||||
- 빌드 exit code가 0이다.
|
||||
|
||||
- [x] `ProfileReportMenuView`에 공유 action closure를 추가한다.
|
||||
- [x] 공유 row를 기존 차단/신고 row보다 위에 배치한다.
|
||||
- [x] 공유 row 탭 시 overlay를 닫고 공유 action을 호출한다.
|
||||
- [x] 기존 차단/차단 해제, 사용자 신고, 프로필 신고 row와 action을 변경하지 않는다.
|
||||
- [x] `I18n`에 공유 메뉴 문구를 추가한다.
|
||||
|
||||
#### Task 1.4 회귀 정리와 문서 기록
|
||||
|
||||
**Goal 실행 `P1-T4`:** 구현 결과가 PRD 범위를 벗어나지 않는지 확인하고 검증 기록을 누적한다.
|
||||
|
||||
- **시작 조건:** `P1-T1`~`P1-T3` 완료.
|
||||
- **완료 증거:** PRD 요구사항 추적표와 실제 코드 변경 범위가 일치하고, 검증 명령 결과가 Progress에 기록됨.
|
||||
- **범위 밖:** 발견된 범위 밖 문제의 임의 수정.
|
||||
|
||||
**Files:**
|
||||
|
||||
- Modify: `docs/20260914_크리에이터_채널_공유/plan-task.md`
|
||||
- Check: `docs/20260914_크리에이터_채널_공유/prd.md`
|
||||
- Test: 문서 대조와 빌드 결과 기록.
|
||||
|
||||
**대체 검증 방법:** 아래 명령과 수동 확인 결과를 Progress에 기록한다.
|
||||
|
||||
```bash
|
||||
rg "CCSHARE-001|CCSHARE-002|CCSHARE-003|CCSHARE-004|CCSHARE-005|CCSHARE-006|CCSHARE-007" docs/20260914_크리에이터_채널_공유/prd.md docs/20260914_크리에이터_채널_공유/plan-task.md
|
||||
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
|
||||
```
|
||||
|
||||
Expected:
|
||||
|
||||
- 모든 요구사항 ID가 PRD와 계획에 남아 있다.
|
||||
- 빌드 exit code가 0이다.
|
||||
- 수동 검증 항목의 실제 결과가 Progress에 기록되어 있다.
|
||||
|
||||
- [x] PRD 요구사항과 구현 Task 연결을 대조한다.
|
||||
- [x] 검증 명령의 실제 결과를 Progress에 누적한다.
|
||||
- [x] 범위 밖 발견 사항이 있으면 `발견된 문제` 표에 기록한다.
|
||||
|
||||
### 완료 조건
|
||||
|
||||
- [x] `P1-T1`, `P1-T2`, `P1-T3`, `P1-T4`의 체크박스와 완료 증거가 모두 충족됐다.
|
||||
- [x] 기존 차단/신고 메뉴와 팔로우/알림 title bar 동작이 회귀하지 않았다.
|
||||
- [x] 문서와 구현의 차이가 없다.
|
||||
|
||||
### 검증 방법
|
||||
|
||||
#### Phase 1 Gate
|
||||
|
||||
**Goal 실행 `P1-GATE`:** 채널 공유 사용자 흐름과 공통 품질 기준을 최종 판정한다.
|
||||
|
||||
- **시작 조건:** Phase 1의 모든 활성 Task goal 완료.
|
||||
- **완료 증거:** 아래 자동·수동 검증 통과와 Progress 기록.
|
||||
- **범위 밖:** Gate 통과를 위한 test 삭제·완화와 관련 없는 기능 수정.
|
||||
|
||||
```bash
|
||||
rg "ic_audio_content_share|ActivityViewController|deep_link_value|deep_link_sub5|ProfileReportMenuView" SodaLive/Sources/V2/CreatorChannel SodaLive/Sources/Report/ProfileReportMenuView.swift
|
||||
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build
|
||||
```
|
||||
|
||||
**Expected:** `rg` 결과에서 공유 버튼, 공유 시트, OneLink 파라미터, 더보기 메뉴 연결이 확인되고 빌드 exit code가 0이다.
|
||||
|
||||
수동 검증:
|
||||
|
||||
- [ ] 내 채널 진입 후 우측 상단 공유 버튼을 탭하면 iOS 공유 시트가 표시된다.
|
||||
- [ ] 다른 사람 채널 진입 후 더보기 메뉴 최상단 `채널 공유`를 탭하면 iOS 공유 시트가 표시된다.
|
||||
- [ ] 공유 메시지는 기존 채널 공유 메시지와 OneLink URL을 포함한다.
|
||||
- [ ] 다른 사람 채널 더보기 메뉴의 기존 차단/신고 항목이 그대로 동작한다.
|
||||
- [ ] OneLink 생성 실패를 유도할 수 있는 debug 조건이 있으면 실패 popup 문구를 확인하고, 없으면 코드 대조로 실패 경로를 확인한다.
|
||||
|
||||
## 실행 순서와 의존성
|
||||
|
||||
| 순서 | Goal | 선행조건 | 병행 가능 | 차단 시 다음 행동 |
|
||||
|---:|---|---|---|---|
|
||||
| 1 | `P1-T1` | PRD 확정 | 아니요 | title bar contract 재검토 |
|
||||
| 2 | `P1-T2` | `P1-T1` | 아니요 | 기존 `UserProfileViewModel.shareChannel` 대조 |
|
||||
| 3 | `P1-T3` | `P1-T2` | 아니요 | `ProfileReportMenuView` contract 재검토 |
|
||||
| 4 | `P1-T4` | `P1-T1`~`P1-T3` | 아니요 | PRD/계획 불일치 보정 |
|
||||
| 5 | `P1-GATE` | Phase 1 Task 전체 | 아니요 | 실패 소유 Task의 회귀 수정 goal 생성 |
|
||||
|
||||
```text
|
||||
P1-T1 → P1-T2 → P1-T3 → P1-T4 → P1-GATE
|
||||
```
|
||||
|
||||
## 변경 금지 항목
|
||||
|
||||
- 새 API, 새 dependency, 새 딥링크 계약을 추가하지 않는다.
|
||||
- 공유 문구를 기존 채널 공유와 다르게 새로 만들지 않는다.
|
||||
- 기존 차단/신고 action을 삭제하거나 의미를 바꾸지 않는다.
|
||||
- `Pods/**`, `generated/**`, `build/**`를 수정하지 않는다.
|
||||
- test를 삭제·skip·완화하거나 타입 오류를 우회해 Gate를 통과시키지 않는다.
|
||||
|
||||
## 의사결정 및 중단 규칙
|
||||
|
||||
- PRD와 구현 중 발견한 기존 코드가 충돌하면 PRD Decision Log에 정정 행을 먼저 추가한다.
|
||||
- 공유 URL 파라미터 변경이 필요하면 구현을 멈추고 사용자 결정을 받는다.
|
||||
- title bar layout에서 버튼이 겹치면 새 디자인을 추정하지 말고 최소 대안과 영향을 보고한다.
|
||||
- 범위 밖 회귀를 발견하면 임의 수정하지 않고 `발견된 문제`에 기록한다.
|
||||
|
||||
## Progress
|
||||
|
||||
기존 기록을 삭제하거나 덮어쓰지 않고 실제 실행 결과를 차수별로 누적한다.
|
||||
|
||||
### 문서 작성 1차 실행 — 2026-09-14
|
||||
|
||||
- 상태: 완료
|
||||
- 무엇을: 신규 PRD와 plan-task 문서를 작성했다.
|
||||
- 왜: 사용자 요청에 따라 구현 전 요구사항과 실행 계획을 확정하기 위해서다.
|
||||
- 어떻게:
|
||||
- `codegraph_explore` — `UserProfileViewModel.shareChannel`, `ActivityViewController`, `CreatorChannelTitleBar`, `ProfileReportMenuView`, `CreatorChannelViewModel` 현재 구현 확인.
|
||||
- `read` — `docs/sample/sample-prd.md`, `docs/sample/sample-plan-task.md`, `docs/agent-guides/documentation-policy.md`, `docs/agent-guides/build-test-verification.md` 확인.
|
||||
- 남은 항목: 코드 구현과 구현 검증은 사용자 후속 승인 전까지 진행하지 않는다.
|
||||
- 다음 행동: 사용자가 구현을 요청하면 `P1-T1`부터 실행한다.
|
||||
|
||||
### 구현 및 검증 1차 실행 — 2026-09-15
|
||||
|
||||
- 상태: 구현 완료, 수동 검증 대기
|
||||
- 무엇을: 내 채널 title bar 공유 버튼, 다른 사람 채널 더보기 최상단 `채널 공유`, 기존 OneLink 기반 `ActivityViewController` 공유 시트 연결을 구현했다.
|
||||
- 왜: `CCSHARE-001`~`CCSHARE-007` 확정 요구사항을 현재 브랜치에서 충족하기 위해서다.
|
||||
- 어떻게:
|
||||
- `codegraph_explore` — `CreatorChannelViewModel.shareChannel`, `CreatorChannelTitleBar`, `ProfileReportMenuView`, `CreatorChannelView`, 기존 `UserProfileViewModel.shareChannel` 대조.
|
||||
- `rg "ic_audio_content_share|ActivityViewController|deep_link_value|deep_link_sub5|ProfileReportMenuView|channelShare|shareLinkCreateFailed" "SodaLive/Sources/V2/CreatorChannel" "SodaLive/Sources/Report/ProfileReportMenuView.swift" "SodaLive/Sources/I18n/I18n.swift" "SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift"` — 공유 버튼, 공유 시트, OneLink 파라미터, 실패 popup, I18n 연결 확인.
|
||||
- `git diff --check` — 통과.
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` — `BUILD SUCCEEDED`.
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug -destination "platform=iOS Simulator,id=E9FC7721-AA96-440F-8349-2DC4B85F40F5" -derivedDataPath "/var/folders/yh/8xsbvpsj5wg2qnxzxdp11_gm0000gn/T/opencode/sodalive-share-derived" CODE_SIGNING_ALLOWED=NO build` — simulator build 성공.
|
||||
- `xcrun simctl install` / `xcrun simctl launch` — `kr.co.vividnext.sodalive.debug2` 설치 및 실행 성공, launch pid `46360`.
|
||||
- 리뷰 검증 — reviewer/oracle `VERDICT: APPROVE`, blocker 없음.
|
||||
- 남은 항목: `simctl ui` tap option과 `cliclick`이 없어 실제 채널 진입 후 공유 시트 표시는 사용자 수동 테스트로 확인한다.
|
||||
- 다음 행동: 내 채널 공유 버튼, 다른 사람 채널 더보기 공유, 기존 차단/신고 항목을 실기기 또는 simulator에서 수동 확인한다.
|
||||
|
||||
## Decision Log
|
||||
|
||||
| 날짜 | ID | 상태 | 결정 | 근거 | 영향 Goal/문서 |
|
||||
|---|---|---|---|---|---|
|
||||
| 2026-09-14 | `DEC-001` | 확정 | 공유 기능 문서는 신규 `docs/20260914_크리에이터_채널_공유/` 아래에 작성한다. | 사용자 선택 B | 전체 |
|
||||
| 2026-09-14 | `DEC-002` | 확정 | 다른 사람 채널 더보기 메뉴의 `채널 공유` 항목은 최상단에 배치한다. | 사용자 선택 A | `P1-T3` |
|
||||
| 2026-09-14 | `DEC-003` | 확정 | 공유 방식은 기존 `UserProfileView`와 동일한 `ActivityViewController`와 OneLink 파라미터를 재사용한다. | 사용자 요구사항과 코드 확인 | `P1-T2`, `P1-GATE` |
|
||||
|
||||
## 발견된 문제
|
||||
|
||||
| ID | 심각도 | 상태 | 발견 내용 | 영향 Goal | 처리 계획 |
|
||||
|---|---|---|---|---|---|
|
||||
| `ISSUE-001` | Low | 수동 확인 필요 | 현재 환경에서 자동 탭 도구가 없어 실제 공유 시트 표시까지 자동 검증하지 못함 | `P1-GATE` | 사용자 수동 테스트로 내 채널/다른 사람 채널 공유 시트 표시 확인 |
|
||||
|
||||
## 최종 보고 형식
|
||||
|
||||
```markdown
|
||||
구현 결과: Phase 1 크리에이터 채널 공유 흐름 완료
|
||||
|
||||
- 변경: 내 채널 title bar 공유 버튼, 다른 사람 채널 더보기 메뉴 최상단 공유 항목, 기존 OneLink 기반 공유 시트 연결
|
||||
- 결정: DEC-001 신규 문서 분리, DEC-002 공유 항목 최상단 배치, DEC-003 기존 공유 방식 재사용
|
||||
- 검증:
|
||||
- `rg "ic_audio_content_share|ActivityViewController|deep_link_value|deep_link_sub5|ProfileReportMenuView" SodaLive/Sources/V2/CreatorChannel SodaLive/Sources/Report/ProfileReportMenuView.swift` — 공유 연결 코드 확인 결과
|
||||
- `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build` — 빌드 성공 또는 실패와 핵심 오류
|
||||
- 수동 검증 — 내 채널 공유 버튼, 다른 사람 채널 더보기 공유, 기존 차단/신고 회귀 여부
|
||||
- 남은 항목: 구현 시 발견한 외부 의존 또는 후속 범위, 없으면 없음
|
||||
- 문서: `docs/20260914_크리에이터_채널_공유/prd.md`, `docs/20260914_크리에이터_채널_공유/plan-task.md`
|
||||
```
|
||||
Reference in New Issue
Block a user