업데이트 요약
유저 간 차단 기능에 차단 시간이 추가되었습니다.
온디맨드 번역 결과를 번역 도착 언어별로 확인할 수 있도록 OnTranslateMessage 콜백이 변경되었습니다.
재연결 및 연결 유지 안정성이 개선되었습니다.
iOS 26 이상에서 앱이 종료될 수 있던 문제가 수정되었고, iOS 최소 지원 버전이 15.0으로 변경되었습니다.
함수 변경 안내
아래 함수가 변경되어 기존 코드를 그대로 사용하는 경우 컴파일 에러가 발생하니, 마이그레이션 가이드를 참고하여 반드시 수정해 주세요.
IBDChatClientListener::OnTranslateMessage의 매개변수가std::vector<MessageInfo>에서std::map<std::string, MessageInfo>로 변경되었습니다. (번역)BDChatMain::GetBlockGamers()의 반환 형식이std::vector<std::string>에서std::vector<BlockPlayerInfo>로 변경되었습니다. (유저)- SDK 헤더가 전역
using namespace std;를 선언하지 않습니다.string,vector,map을std::없이 사용하던 코드는std::를 붙여 주세요.
iOS 최소 지원 버전 변경
포함된 iOS 라이브러리를 Xcode 27.1로 다시 빌드하여 iOS 최소 지원 버전이 12.0에서 15.0으로 변경되었습니다.
Unreal Engine 4.27은 프로젝트 설정에서 최소 iOS 버전을 14까지만 선택할 수 있으며, iOS 15 미만 기기에서는 앱이 정상 동작하지 않을 수 있습니다.
[Unity SDK] 다운로드
[Unreal 5.3 SDK] 다운로드
[Unreal 4.27 SDK] 다운로드
1.4.4 Update
- [번역]
OnTranslateMessage콜백의 매개변수가std::map<std::string, MessageInfo>로 변경되었습니다. 키는 요청한 번역 도착 언어 코드이며, 번역에 실패한 언어는 포함되지 않습니다. (언어별 번역 결과를 제공하지 않는 채팅 서버에서는 키가#0,#1... 형식으로 전달됩니다.) - [유저 간 차단] 차단 시간이 추가되었습니다.
GetBlockGamers()가 닉네임(GamerName)과 차단 시간(BlockTime)을 담은BlockPlayerInfo목록을 반환합니다. - [유저 간 차단] 이미 차단한 유저를 차단하면
ALREADY_BLOCK_PLAYER, 차단하지 않은 유저를 해제하면FAILED_REMOVE_BLOCK_PLAYER에러를 요청 전송 없이 바로 전달합니다. - [에러] 서버에서 전달한
ALREADY_BLOCK_PLAYER,NOT_FOUND_BLOCK_URL,CHANNEL_GROUP_TOO_SHORT에러가UNKNOWN_ERROR로 전달되던 문제가 수정되었습니다. - [재연결] 첫 재연결은 1초 후에 시도하고, 이후에는 10초, 20초, ... 순으로 대기 시간이 늘어나 최대 120초까지 대기합니다.
- [재연결] 앱 일시정지나 로딩 등으로
Update()가 10초를 넘게 호출되지 않다가 다시 호출되면 재연결 대기 시간을 초기화합니다. 재연결을 기다리는 중이었다면 바로 재연결을 시도합니다. - [재연결] 연결이 끊기면 이전 연결에서 받은 메시지와
OnLeaveChannel콜백이 받은 순서대로 전달되도록 수정되었습니다. 재연결을 시작할 때까지 처리하지 못한 이전 연결의 메시지는 전달되지 않습니다. - [중복 접속]
DUPLICATE_CONNECTION에러를 받으면 기존 연결을 종료하고 입장해 있던 채널마다OnLeaveChannel콜백을 전달하며, 자동으로 재연결하지 않습니다. - [중복 접속]
DUPLICATE_CONNECTION에러로 연결이 종료된 뒤 SDK 함수를 호출하면 크래시가 발생할 수 있던 문제가 수정되었습니다. - [연결 유지] 하트비트 전송 안정성이 개선되었습니다.
- [메시지] 채널 입장 시 전달되는 이전 메시지(
ChannelInfo.Messages)에Language,Metadata가 비어 있던 문제가 수정되었습니다. - [메시지] 수신 메시지가 밀려 있으면
Update()한 번에 여러 건을 처리하도록 개선되었습니다.Update()가 오랫동안 호출되지 않아 처리하지 못한 메시지가 1,000건 또는 8MB를 넘으면 연결을 다시 맺습니다. - [안정성] 수신 메시지나 요청이 짧은 시간에 많이 쌓이면 크래시가 발생하거나 요청이 전송되지 않던 문제가 수정되었습니다.
- [신고] 서버에서 키워드 없이 전달된 신고 사유가 있을 때
GetReportReasons()의 사유가 하나의 키워드로 덮어써지던 문제가 수정되었습니다. - [종료 처리]
Initialize직후Initialize또는Shutdown을 다시 호출하면 크래시가 발생할 수 있던 문제가 수정되었습니다. - [종료 처리] 콜백 함수 안에서
Initialize또는Shutdown을 호출하면 크래시가 발생할 수 있던 문제가 수정되었습니다. - [연결] 재연결할 때마다 이전 연결의 스트림 자원이 남던 문제와, 서버가 데이터를 받지 않는 상태에서
Shutdown()이 반환되지 않을 수 있던 문제가 수정되었습니다. - [iOS] iOS 26 이상에서 채널 입장·초기화 또는 재시작·재로그인 시 앱이 종료될 수 있던 문제가 수정되었습니다. SDK 작업 스레드를
std::thread대신 POSIX 스레드로 생성하고, 포함된 iOS 라이브러리를 다시 빌드했습니다. - [iOS] 포함된 iOS 라이브러리(gRPC 1.57.0, protobuf 4.23.4, Abseil 20230125.3, re2)를 같은 버전으로 Xcode 27.1에서 다시 빌드했습니다. 최적화 빌드이며 비트코드를 포함하지 않고, 최소 지원 버전은 iOS 15.0입니다.
- [빌드] UE 5.3 프로젝트를 C++20 또는 엄격한 표준 준수 모드(
/permissive-,BuildSettingsVersion.V4)로 빌드할 때 SDK 헤더에서 컴파일 에러가 발생하던 문제가 수정되었습니다.