[
  {
    "id": "2026-10-20-flutter-sdk-3.0.3",
    "date": "2026-10-20",
    "type": "new",
    "products": [
      "live"
    ],
    "version": "",
    "title": "Flutter SDK 3.0.3 — 송출 화면 웹 페이지 · PIP 끌어내 닫기",
    "summary": "- Shoplive iOS · Android SDK 3.0.3 기반입니다. 3.0.2 대비 Dart 호환성 변경은 없고, 패키지 세 개를 같은 버전으로 올리세요\n- `ShopliveStreamer.instance.start(campaignKey, webPageUrl: …)` 로 송출 화면 옆에 웹 페이지를 붙입니다. URL 이 잘못되면 `INVALID_ARGUMENT` 로 실패합니다\n- `ShoplivePipOptions.isDragOutToCloseEnabled` 로 인앱 PIP 창을 화면 밖으로 끌어내 닫을지 정합니다\n- 세션이 열린 상태에서 `start` 를 다시 부르면 새 설정으로 플레이어를 엽니다. 설정을 유지한 채 방송만 바꾸려면 `play` 를 쓰세요\n- 쿠폰 · 커스텀 액션 응답에서 `alertType` 을 생략하면 두 플랫폼 모두 `toast` 입니다\n- `ShopliveConfiguration.appVersion` 은 무시됩니다(SDK 가 앱 버전을 직접 읽음). `ShopliveError.rawCode` 가 두 플랫폼 모두 채워집니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-flutter/releases/tag/3.0.3"
      },
      {
        "label": "pub.dev",
        "url": "https://pub.dev/packages/shoplive_player"
      }
    ]
  },
  {
    "id": "2026-10-20-flutter-sdk-1.9.0",
    "date": "2026-10-20",
    "type": "breaking",
    "products": [
      "legacy"
    ],
    "version": "",
    "title": "Flutter SDK 1.9.0 — 숏폼 API 제거 · 최소 iOS 15",
    "summary": "**숏폼 API(`ShopLiveShortform`)가 없어지고 최소 iOS 가 15.0 으로 올라갔습니다.** 숏폼 코드를 지운 뒤 올리고(계속 쓰려면 1.8.14 유지), `ios/Podfile` 에 `platform :ios, '15.0'` 을 지정하세요.\n\n- 내장 Shoplive iOS · Android SDK 를 1.9.0 으로 올렸습니다\n- Android 는 SDK 를 `https://sdk.shoplive.cloud/maven-repo` 에서 받습니다. 프로젝트가 저장소를 직접 선언한다면 이 저장소를 추가하세요\n- 1.x 유지 보수 릴리스입니다. 새로 연동한다면 3.0.3 을 쓰세요",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-flutter/releases/tag/1.9.0"
      },
      {
        "label": "pub.dev",
        "url": "https://pub.dev/packages/shoplive_player/versions/1.9.0"
      }
    ]
  },
  {
    "id": "2026-10-16-ios-sdk-3.0.3",
    "date": "2026-10-16",
    "type": "new",
    "products": [
      "live"
    ],
    "version": "",
    "title": "iOS SDK 3.0.3 — 프리뷰 스트림 · 송출 화면 웹 페이지",
    "summary": "- `ShoplivePlayerConfiguration.type` 에 `.preview` 를 주면 캠페인의 저해상도 프리뷰 스트림으로 재생합니다. `ShoplivePlayerConfiguration.preview` 프리셋도 이것을 씁니다\n- in-App PIP 창을 화면 밖으로 끌어내 닫을지 `pip.isDragOutToCloseEnabled` 로 정합니다(기본 `true`). `false` 면 제자리로 돌아오고 닫기 버튼 · `close()` 로만 닫힙니다\n- `ShopliveStreamerViewController(campaignKey:webPageURL:)` 로 송출 화면 옆에 고객사 웹 페이지를 붙일 수 있습니다\n- `ShopliveError.rawCode` 로 원본 숫자 오류 코드를 받습니다. 쿠폰 · 커스텀 액션 응답은 생략하면 `status` 가 `.hide`, `alertType` 이 `.alert` 입니다\n- 무음으로 시작한 재생이 다른 앱 소리를 끊지 않고, in-App PIP 중 `reload()` 가 PIP 창을 유지합니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-ios/releases/tag/3.0.3"
      },
      {
        "label": "통합 가이드",
        "url": "https://developer.shoplive.cloud/mobile/"
      }
    ]
  },
  {
    "id": "2026-10-16-android-sdk-3.0.3",
    "date": "2026-10-16",
    "type": "breaking",
    "products": [
      "live"
    ],
    "version": "",
    "title": "Android SDK 3.0.3 — 프리셋 · 송출 화면 웹 페이지",
    "summary": "**`ShopliveConfiguration.appVersion` 이 없어졌고, `ShopliveError` · 오류 코드가 core 패키지(`cloud.shoplive.core.publicsurface`)로 합쳐졌습니다.** `appVersion` 인자를 지우고 import 를 고치세요. 3.0.2 로 빌드한 코드는 다시 컴파일해야 합니다.\n\n- `ShoplivePlayerConfiguration` · `ShoplivePlayOptions` 에 `DEFAULT` · `PREVIEW` 프리셋을 추가했습니다\n- in-App PIP 창을 끌어내 닫을지 `PipOptions.isDragOutToCloseEnabled` 로 정합니다(기본 `true`)\n- `ShopliveStreamer.start` 에 `webPageUrl` 을 주면 송출 화면 옆에 고객사 웹 페이지가 붙습니다. 웹 플레이어의 사용자 행동 로그는 `WebCommandReceived`(`EVENT_LOG`)로 옵니다\n- 쿠폰 · 커스텀 액션 응답의 `alertType` 기본값이 `ALERT` 입니다. 웹 기본값을 따르려면 `null` 을 넘기세요\n- 별도 WebRTC · RTMP · ExoPlayer · media3 아티팩트는 더 이상 배포하지 않고, ExoPlayer 2 지원을 끝냈습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-android/releases/tag/3.0.3"
      },
      {
        "label": "통합 가이드",
        "url": "https://developer.shoplive.cloud/mobile/"
      }
    ]
  },
  {
    "id": "2026-10-15-flutter-sdk-3.0.2",
    "date": "2026-10-15",
    "type": "breaking",
    "products": [
      "live"
    ],
    "version": "",
    "title": "Flutter SDK 3.0.2 — Shoplive SDK 3.0.2 기반으로 새로 만들었습니다",
    "summary": "**1.x Dart API 가 없어집니다.** 올리기 전에 릴리스 노트의 마이그레이션 안내를 확인하세요.\n\n- 패키지 3개로 나눴습니다: `shoplive_core` · `shoplive_player` · `shoplive_streamer` (세 패키지는 같은 버전으로)\n- 모든 메서드가 `Future` 를 돌려주고, 실패는 오류 코드가 있는 `PlatformException` 으로 옵니다\n- 쿠폰 · 커스텀 액션 요청에 `respond` 로 응답합니다\n- Android 인앱 PIP 로 바뀔 때 재생이 멈추던 문제를 고쳤습니다\n- 요구 사항: Flutter 3.22 · Dart 3.4 · iOS 15 · Android minSdk 23",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-flutter/releases/tag/3.0.2"
      },
      {
        "label": "pub.dev",
        "url": "https://pub.dev/packages/shoplive_player"
      }
    ]
  },
  {
    "id": "2026-10-12-web-live-2026-10",
    "date": "2026-10-12",
    "type": "improve",
    "products": [
      "live"
    ],
    "version": "",
    "title": "웹 라이브 플레이어 — 10월 업데이트",
    "summary": "- 출석 체크(출석왕)를 마치면 완료 토스트와 등장 효과를 보여 줍니다\n- 가로 방송 실시간 자막의 데스크톱 기본 크기를 줄여(2배 → 1.25배) 화면을 덜 가립니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/live/"
      }
    ]
  },
  {
    "id": "2026-10-08-android-sdk-1.9.0",
    "date": "2026-10-08",
    "type": "improve",
    "products": [
      "legacy",
      "shortform"
    ],
    "version": "",
    "title": "Android SDK 1.9.0 (V1 · 숏폼)",
    "summary": "- 팝업 프리뷰가 방송이 끝나면 바로 닫히고, 닫힘 사유로 `ON_BROADCAST_ENDED` 를 받습니다 — iOS 와 같은 동작\n- 프리뷰 아래 여백을 모든 기기에서 내비게이션 바 위부터 잽니다. 상태바 높이를 여백에 더해 두었다면 빼 주세요\n- 숏폼 프리뷰가 정사각형이 아니라 9:16 으로 열립니다\n- 홈 버튼 · 제스처로 나갈 때 OS PIP 와 함께 앱이 다시 앞으로 나오던 문제를 고쳤습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-android/releases/tag/1.9.0"
      }
    ]
  },
  {
    "id": "2026-10-06-web-shortform-2026-10",
    "date": "2026-10-06",
    "type": "fix",
    "products": [
      "shortform"
    ],
    "version": "",
    "title": "웹 숏폼 — 10월 업데이트",
    "summary": "- iOS · macOS Safari 에서 숏폼 상세를 처음 열 때 화면이 깜빡이던 문제를 고쳤습니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/shortform/"
      }
    ]
  },
  {
    "id": "2026-10-01-ios-sdk-3.0.2",
    "date": "2026-10-01",
    "type": "improve",
    "products": [
      "live"
    ],
    "version": "",
    "title": "iOS SDK 3.0.2",
    "summary": "- 웹 오버레이가 보낸 명령을 받는 `ShoplivePlayerEvent.webCommand(name:payload:)` 를 추가했습니다. `switch` 로 모든 case 를 다루고 있다면 이 case 를 더해 주세요\n- 웹뷰에서 SDK 기능은 Shoplive 페이지에서만 동작합니다(코드 변경 없음)\n- 형식이 잘못된 accessKey 는 쓰지 않고 로그에 오류를 남깁니다\n- 방송 화면을 띄운 동안 화면이 잠기지 않습니다\n- `stateChanged` 중복 알림을 없애고, `stop()` 에서 `closed` 를 알리며, 시스템 PIP 를 닫은 뒤 검은 화면이 남던 문제를 고쳤습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-ios/releases/tag/3.0.2"
      }
    ]
  },
  {
    "id": "2026-10-01-android-sdk-3.0.2",
    "date": "2026-10-01",
    "type": "breaking",
    "products": [
      "live"
    ],
    "version": "",
    "title": "Android SDK 3.0.2",
    "summary": "**`ShopliveStreamer.intent(...)` 가 없어졌습니다.** `prepareIntent` 로 바꾸고, 콜백으로 받은 `Intent` 를 시작하세요.\n\n- 앱을 나가도 플레이어가 유지됩니다 — HLS 는 멈췄다 이어 재생, WebRTC 는 돌아오면 다시 연결\n- 볼륨 키 · 오디오 포커스 옵션(`sound.isVolumeKeyEnabled` · `sound.autoResumeOnFocusGained`)이 적용됩니다\n- 방송이 끝나도 같은 화면에 머물고, 치명적 오류에서는 재시도 · 종료를 고를 수 있습니다\n- 웹뷰의 네이티브 브리지는 Shoplive 페이지에서만 동작합니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-android/releases/tag/3.0.2"
      }
    ]
  },
  {
    "id": "2026-09-30-web-live-2026-09",
    "date": "2026-09-30",
    "type": "new",
    "products": [
      "live"
    ],
    "version": "",
    "title": "웹 라이브 플레이어 — 9월 업데이트",
    "summary": "- **공동 방송(멀티 호스트):** 여러 호스트가 함께 방송할 때 지금 말하는 사람을 표시합니다\n- **라이브 출석왕:** 시청자가 방송에서 출석 체크를 할 수 있습니다\n- 실시간 자막을 켠 방송은 진입하자마자 자막을 보여 줄 수 있습니다(어드민 설정). 가로 방송 자막 크기는 화면 방향 · 기기에 맞춥니다\n- 방송 준비 중 화면에 시작까지 남은 시간(카운트다운)을 보여 줍니다\n- 브라우저 PIP 를 지원하지 않는 환경에서는 웹 PIP 로 대신합니다\n- 인스타그램 인앱 브라우저에서 배너를 눌러도 이동하지 않던 문제, 리플레이 탐색 바 오동작, 자막을 끈 방송의 리플레이에 자막 버튼이 보이던 문제를 고쳤습니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/live/"
      }
    ]
  },
  {
    "id": "2026-09-23-web-shortform-2026-09",
    "date": "2026-09-23",
    "type": "new",
    "products": [
      "shortform"
    ],
    "version": "",
    "title": "웹 숏폼 — 9월 업데이트",
    "summary": "- **스토리:** 인스타그램 스토리처럼 원형 트레이로 숏폼을 노출하는 `setShortformStory` 를 추가했습니다. '본 것' 표시는 카드를 누른 시점에 붙습니다\n- 숏폼 상세에 시청자 수를 표시합니다\n- 컬렉션 프리뷰로 다시 들어가면 회색 화면이 뜨던 문제, 더 보기로 나중에 붙은 상품에 쇼케이스가 붙지 않던 문제를 고쳤습니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/shortform/"
      }
    ]
  },
  {
    "id": "2026-09-14-ios-sdk-1.9.0",
    "date": "2026-09-14",
    "type": "breaking",
    "products": [
      "legacy"
    ],
    "version": "",
    "title": "iOS SDK 1.9.0 (V1)",
    "summary": "**최소 iOS 가 15.0 으로 올라갔습니다**(기존 11.0).\n\n- Player · Common 을 저장소 하나(`shoplive-sdk-ios`)에서 배포합니다. `ios-sdk` · `common-ios` 는 1.8.15 에서 멈춥니다\n- Swift Package Manager 제품 이름이 `ShopLive` 에서 `ShopLiveSDK` 로 바뀌었습니다(CocoaPods pod 이름은 그대로 `ShopLive`)\n- API 변경은 없습니다 — 1.8.11 이상이면 버전만 올리면 됩니다\n- 커스텀 액션에서 `SHOW` · `KEEP` 응답이 무시되던 문제를 고쳤습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-ios/releases/tag/1.9.0"
      }
    ]
  },
  {
    "id": "2026-09-07-android-sdk-3.0.1",
    "date": "2026-09-07",
    "type": "breaking",
    "products": [
      "live"
    ],
    "version": "",
    "title": "Android SDK 3.0.1 — 인앱 PIP · 비공개 방송",
    "summary": "**전체 화면에서 뒤로 가기를 누르면 플레이어가 닫히지 않고 인앱 PIP 로 작아집니다.** 이전처럼 닫으려면 `pip.isInAppPipEnabled = false` 로 설정하세요.\n\n- 인앱 PIP: 앱 화면 위에 끌어 옮기는 미니 창으로 재생합니다. `ShoplivePlayOptions(presentationStyle = ShoplivePlayerPresentationStyle.PIP)` 로 처음부터 PIP 로 시작할 수 있습니다\n- 비공개 방송: 입장 코드가 확인될 때까지 재생 · PIP 를 막습니다\n- AndroidX Media3 를 기본 HLS 엔진으로 씁니다(ExoPlayer 2 도 선택 가능 — 둘 중 하나만)\n- OS PIP 를 쓸 수 없는 이유를 알리는 오류 코드(9510~9514)를 추가했습니다\n- `appearance.allowScreenCapture = false` 가 화면 캡처를 막지 못하던 문제, `navigation.actionOnNavigation` 이 동작하지 않던 문제를 고쳤습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-android/releases/tag/3.0.1"
      }
    ]
  },
  {
    "id": "2026-08-31-android-sdk-1.8.14",
    "date": "2026-08-31",
    "type": "breaking",
    "products": [
      "legacy"
    ],
    "version": "",
    "title": "Android SDK 1.8.14 (V1)",
    "summary": "**SDK 는 Shoplive Maven 저장소(`https://sdk.shoplive.cloud/maven-repo`)에서 배포합니다(1.8.13부터).** 저장소를 추가하고, POM 에 전이 의존성이 없으니 쓰는 아티팩트를 각각 선언하세요(`shoplive-common` · `shoplive-network` · `shoplive-sdk-core` 등).\n\n- 캠페인 목록 API `ShopLiveCampaigns.getCampaigns` 를 추가했습니다. 서버 연동 없이 앱에서 캠페인 목록과 진행 상태를 조회합니다(상태 필터 · 페이지 · 정렬 · 취소 지원) — 홈 화면 라이브 배지 등에 쓰세요\n- 프리뷰 · OS PIP 닫힘을 한 핸들러(`onClose`)로 받습니다. 닫힘 사유가 함께 오고 화면당 한 번만 호출됩니다\n- 다시 보기 끝 무렵 재생이 멈추던 문제, 스와이프로 프리뷰를 닫으면 콜백이 오지 않던 문제, 닫기 콜백이 두 번 오던 문제를 고쳤습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-android/releases/tag/1.8.14"
      }
    ]
  },
  {
    "id": "2026-08-27-web-live-2026-08",
    "date": "2026-08-27",
    "type": "new",
    "products": [
      "live"
    ],
    "version": "",
    "title": "웹 라이브 플레이어 — 8월 업데이트",
    "summary": "- **채팅 입장 알림:** 시청자가 들어오면 채팅에 알립니다. 추첨 이벤트가 시작되면 채팅에 안내 메시지를 띄웁니다\n- **당첨 결과:** 익명 당첨자 집계, 당첨자 명단 숨기기, 당첨자 이름 마스킹을 지원합니다\n- 쿠폰 팝업에 클립보드 복사 동작을 추가했습니다\n- **자막:** 리플레이 자막 2줄 표시 · 저장 영상 송출의 SRT 자막, 긴 자막을 나눠 차례로 보여 주기, 한국어 UI 의 CC 버튼을 '자막' 아이콘으로 교체, 음소거 중 자막 자동 표시(어드민 설정)\n- 상품 그룹을 바꾸면 상품 목록이 맨 위부터 보이고, 일부 리플레이에서 해상도 선택이 보이지 않던 문제를 고쳤습니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/live/"
      }
    ]
  },
  {
    "id": "2026-08-26-ios-sdk-3.0.1",
    "date": "2026-08-26",
    "type": "new",
    "products": [
      "live"
    ],
    "version": "",
    "title": "iOS SDK 3.0.1 — 프리뷰를 인앱 PIP 로 시작",
    "summary": "- `ShoplivePlayOptions.presentationStyle = .pip` 로 재생을 처음부터 떠 있는 인앱 PIP 창으로 엽니다. `preview` 프리셋(PIP 시작 · 음소거 · 오버레이 숨김)이 2.x 프리뷰 팝업을 대신합니다. 기본값은 그대로 `.fullScreen` 입니다\n- 인앱 PIP 창을 화면 밖으로 밀어 닫을 수 있습니다\n- 캠페인에 설정한 라이브 배지를 인앱 PIP 위에 그립니다\n- 입장 코드가 있는 비공개 방송을 HLS · WebRTC 모두에서 재생합니다\n- 플레이어 WebSocket 을 정리하는 중 메시지가 오면 앱이 종료되던 문제를 고쳤습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-ios/releases/tag/3.0.1"
      }
    ]
  },
  {
    "id": "2026-08-19-android-sdk-3.0.0",
    "date": "2026-08-19",
    "type": "breaking",
    "products": [
      "live"
    ],
    "version": "",
    "title": "Android SDK 3.0.0 — 통합 SDK 첫 배포",
    "summary": "**아티팩트 좌표와 공개 API 가 바뀌었습니다.** `cloud.shoplive:shoplive-player-sdk` · `shoplive-streamer-sdk` 만 선언하면 나머지는 따라옵니다.\n\n- 플레이어 설정을 개별 setter 대신 `ShoplivePlayerConfiguration` 값 하나로 넘깁니다\n- `sound.mixWithOthers` 기본값이 `false` 로 바뀌어 재생 중 다른 앱 소리를 멈춥니다. 이전처럼 섞으려면 `true` 로 설정하세요\n- 스트리머가 캠페인 설정에 따라 RTMP 로도 송출합니다\n- `sound.muteOnStart` 가 무시되던 문제, 방송 종료 시 검은 화면 대신 배경 이미지를 보여 주지 않던 문제 등을 고쳤습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-android/releases/tag/3.0.0"
      },
      {
        "label": "통합 가이드",
        "url": "https://developer.shoplive.cloud/mobile/"
      }
    ]
  },
  {
    "id": "2026-08-14-flutter-sdk-1.8.14",
    "date": "2026-08-14",
    "type": "new",
    "products": [
      "legacy"
    ],
    "version": "",
    "title": "Flutter SDK 1.8.14",
    "summary": "- 라이브 플레이어 화면 맞춤을 정하는 `ShopLivePlayer.setResizeMode()` 를 추가했습니다(`auto` · `centerCrop` · `fit`)\n- 내장 Shoplive iOS · Android SDK 를 1.8.13 으로 올렸습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-flutter/releases/tag/1.8.14"
      },
      {
        "label": "pub.dev",
        "url": "https://pub.dev/packages/shoplive_player/versions/1.8.14"
      }
    ]
  },
  {
    "id": "2026-08-11-web-shortform-2026-08",
    "date": "2026-08-11",
    "type": "improve",
    "products": [
      "shortform"
    ],
    "version": "",
    "title": "웹 숏폼 — 8월 업데이트",
    "summary": "- 쇼케이스에 상품 URL 로 연결하는 url 모드를 추가하고 사용성을 다듬었습니다\n- 만료된 accessKey 로는 초기화하지 않습니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/shortform/"
      }
    ]
  },
  {
    "id": "2026-08-07-ios-sdk-3.0.0",
    "date": "2026-08-07",
    "type": "breaking",
    "products": [
      "live"
    ],
    "version": "",
    "title": "iOS SDK 3.0.0 — 통합 SDK 첫 배포",
    "summary": "**2.x 공개 API 를 새 API 로 바꿨고, 최소 iOS 가 15.0 입니다.** Swift Package Manager 제품 `ShoplivePlayerSDK` · `ShopliveStreamerSDK` 만 선언하세요.\n\n- `ShoplivePlayerViewController` 또는 `ShoplivePlayerView` 를 `ShoplivePlayerConfiguration` 하나로 설정해 띄웁니다\n- 델리게이트가 메서드 2개(`didReceive` 알림 · `didRequest` 요청)로 줄었고, 진입점은 `Shoplive.initialize` · `setUser` 등 하나로 모였습니다(Swift 전용)\n- 오류는 `ShopliveError` · `ShopliveErrorCode` 로 옵니다\n- 스트리머가 RTMP 로도 송출하고, 방송 화면을 열 때 카메라 · 마이크 권한을 명시적으로 요청합니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-ios/releases/tag/3.0.0"
      },
      {
        "label": "통합 가이드",
        "url": "https://developer.shoplive.cloud/mobile/"
      }
    ]
  },
  {
    "id": "2026-07-31-web-live-2026-07",
    "date": "2026-07-31",
    "type": "new",
    "products": [
      "live"
    ],
    "version": "",
    "title": "웹 라이브 플레이어 — 7월 업데이트",
    "summary": "- **이모지 버튼:** 시청자가 이모지로 반응할 수 있습니다\n- 팝업 문구와 운영자 채팅의 URL 을 누르면 해당 페이지로 이동합니다\n- 라이브 Q&A 답글을 채팅 목록 안에 함께 흘려 보여 주는 옵션을 추가했습니다\n- AI 채팅 모더레이션으로 가린 채팅을 되살릴 수 있고, 당첨 결과 다시보기의 이미지 클릭 이벤트를 받을 수 있습니다\n- 당첨자 안내를 모든 테마에서 쓸 수 있습니다(다국어 보강)\n- 탭을 바꿨다 돌아오면 자막이 밀리던 문제, 띄어쓰기 없는 긴 자막이 영역을 벗어나던 문제, 방송 중간에 들어오면 당첨자 안내가 잘못 뜨던 문제를 고쳤습니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/live/"
      }
    ]
  },
  {
    "id": "2026-07-30-web-shortform-2026-07",
    "date": "2026-07-30",
    "type": "new",
    "products": [
      "shortform"
    ],
    "version": "",
    "title": "웹 숏폼 — 7월 업데이트",
    "summary": "- **쇼케이스:** 상품 페이지에 끼워 넣는 임베드형 쇼케이스 플레이어(`setShortformShowcase`)를 새로 만들었습니다\n- 컬렉션 상세가 늘 첫 번째 영상부터 재생되던 문제, 프리뷰 재생을 끈 컬렉션에서 대표 썸네일이 사라지던 문제를 고쳤습니다",
    "links": [
      {
        "label": "가이드",
        "url": "https://developer.shoplive.cloud/web/shortform/"
      }
    ]
  },
  {
    "id": "2026-07-09-flutter-sdk-1.8.13",
    "date": "2026-07-09",
    "type": "improve",
    "products": [
      "legacy"
    ],
    "version": "",
    "title": "Flutter SDK 1.8.13",
    "summary": "- 내장 Shoplive iOS · Android SDK 를 1.8.11 로 올렸습니다. Dart API 변경은 없습니다",
    "links": [
      {
        "label": "릴리스 노트",
        "url": "https://github.com/shoplive/shoplive-sdk-flutter/releases/tag/1.8.13"
      },
      {
        "label": "pub.dev",
        "url": "https://pub.dev/packages/shoplive_player/versions/1.8.13"
      }
    ]
  }
]
