Skip to content

v1.7: 초대 링크 공유 (유니버설 링크) - #4

Merged
devk4nt merged 3 commits into
mainfrom
design/color-tokens-empty-states
Sep 2, 2026
Merged

v1.7: 초대 링크 공유 (유니버설 링크)#4
devk4nt merged 3 commits into
mainfrom
design/color-tokens-empty-states

Conversation

@devk4nt

@devk4nt devk4nt commented Sep 2, 2026

Copy link
Copy Markdown
Owner

배경

고객 문의 — "아는 지인들과 영상면접 스터디하고 싶은데 제가 만든 스터디방을 바로 링크로 공유할 수는 없나요?"

기존 초대 경로는 초대 코드를 클립보드에 복사해 직접 알려주는 방식뿐이었다.

변경

  • 초대 링크 공유 버튼 — 스터디 상세에서 카카오톡·문자로 초대 메시지 전송. 폭이 부족하면 ViewThatFits로 아이콘만 표시
  • https 랜딩 페이지 경유 — 커스텀 스킴(flymate://)을 그대로 공유하면 카카오톡·문자가 http(s)만 탭 가능하게 렌더링해 죽은 텍스트로 보인다. invite.html이 앱을 열고, 미설치자는 App Store로 안내
  • 유니버설 링크applinks:devk4nt.github.io. AASA는 devk4nt.github.io 유저 사이트 루트에 배포
  • onOpenURL 버그 수정url.scheme == "flymate" 조건 때문에 https URL이 카카오 콜백으로 넘어가 버려지고 있었다. 유니버설 링크로 앱이 열려도 화면 전환이 없던 문제
  • 중복이 된 초대 코드 복사 버튼과 관련 상태 제거 (isCopied, 액션 2개, UIKit import)

검증

항목 결과
유닛 테스트 260개 통과
UI 테스트 2개 통과 (신규 InviteShareUITests 포함)
AASA 서비스 + Apple CDN 파싱 200, 경로·appID 일치
OS 라우팅 (대조군 A/B) example.com → Safari / 초대 링크 → 앱
랜딩 페이지 라이브 소스와 md5 일치, 코드 검증 분기 확인
기기 서명 기존 팀 프로파일로 통과, entitlement 서명 반영 확인
실기기 링크 탭 사용자 확인 완료

참고

  • 카카오톡은 링크를 자체 인앱 브라우저로 열어 유니버설 링크 핸드오프가 걸리지 않는 것이 일반적 — 랜딩 페이지가 계속 폴백으로 필요하다
  • 출시 후 공지: scripts/fixtures/publish-v1.7-announcement.sql
  • 설정·검증 절차: Deliverables/AppStoreConnect/유니버설링크-설정가이드.md

🤖 Generated with Claude Code

devk4nt and others added 3 commits September 2, 2026 23:40
고객 문의("만든 스터디방을 바로 링크로 공유할 수는 없나요?") 반영.

기존 초대 경로는 코드를 클립보드에 복사해 직접 알려주는 방식뿐이었다.
커스텀 스킴(flymate://)을 그대로 공유하면 카카오톡·문자가 http(s)만 탭 가능하게
렌더링해 죽은 텍스트로 보이므로, https 랜딩 페이지를 경유시킨다.

- DeepLinkParser.inviteShareURL(code:) — 공유용 https 링크 생성(코드 퍼센트 인코딩)
- DeepLinkParser.parse — 커스텀 스킴 + https 랜딩 URL 양쪽 처리. 호스트·경로는
  AppConstants.ServiceURL.inviteLanding 상수 하나에서 파생하므로 도메인 교체 시 1줄
- StudyDetailView — [초대 링크 공유] 버튼(ViewThatFits로 폭 부족 시 아이콘).
  중복이 된 초대 코드 복사 버튼과 관련 상태(isCopied·액션 2개·UIKit import) 제거
- Associated Domains entitlement(applinks:devk4nt.github.io) — AASA는
  devk4nt.github.io 유저 사이트 루트에 배포, Apple CDN 파싱 검증 완료
- invite.html — 미설치자 폴백 랜딩(코드 6자리 검증 후에만 스킴 링크 생성)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
onOpenURL이 url.scheme == "flymate" 일 때만 DeepLinkParser를 호출하고
https URL은 카카오 로그인 콜백으로 넘긴 뒤 버렸다. 유니버설 링크로 앱이
열려도 아무 화면 전환이 없었다.

parse가 스킴·호스트·경로를 직접 검증하므로 먼저 시도하고, 실패한 URL만
카카오 핸들러로 넘긴다(카카오 콜백은 kakao<appkey> 스킴이라 충돌 없음).

시뮬레이터 실측으로 확인한 증상: 초대 https 링크를 열면 Safari가 뜨지 않아
OS 라우팅(AASA)은 정상인데 앱은 아무 반응이 없었다.

- InviteShareUITests: 스터디 상세 → 초대 링크 공유 → 공유 시트 진입 확인

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@devk4nt
devk4nt merged commit 1629596 into main Sep 2, 2026
1 check 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