← Cloudflare Realtime / realtime / realtimekit / release-notes
iOS Core SDK
2026-07-17
RealtimeKit iOS Core 3.1.0
Улучшения
- Подключение к комнате выполняется до 25% быстрее при обычных условиях сети
- Улучшено начальное качество видео, получаемого от участников с мобильных устройств
Исправления
- Исправлен сбой при переключении между сессионными залами
- При включении звука или видео SDK теперь запрашивает разрешение, если соответствующее
RtkMeetingInfo.enableAudioилиRtkMeetingInfo.enableVideoполе:false. Компонент UI Kit больше не отключается незаметно.
2026-06-24
RealtimeKit iOS Core 3.0.0
Критические изменения
- Плагины больше не предоставляются сервером. Теперь их нужно заранее объявлять на стороне клиента, передав
pluginsсписок вRtkMeetingInfo. Любой плагин, не объявленный при инициализации, будет недоступен во встрече.let meetingInfo = RtkMeetingInfo( authToken: authToken, plugins: [ RtkClientPluginConfig( id: "whiteboard", // Must match the plugin ID used on Web for sync to work name: "Whiteboard", url: "https://example.com", icon: "https://example.com/logo.png", permissions: RtkClientPluginPermissions(canActivate: true, canDeactivate: false) ) ] ) - Несколько внутренних свойств было удалено из
RtkPlugin:baseURL,config,description,isPrivate, а такжеstaggered. Используйте новыйiconиpermissionsсвойства вместо этого. baseUrlвRtkMeetingInfoтеперь имеет значение по умолчанию, и его больше не нужно передавать явно.- Двухаргументный
subscribe(key:listener:)иunsubscribe(key:listener:)перегрузки дляRtkStoreпередававшие в обратный вызов и ключ, и значение, были удалены. Используйте варианты обратного вызова с одним аргументом, появившиеся в версии 2.1.0.
Возможности
- AI Transcription, Новый
RtkAiкласс (доступен какclient.ai) предоставляет доступ к расшифровкам в реальном времени. РеализуйтеRtkAiEventListenerи зарегистрировать его вaddAiEventListener(_:)чтобы получатьonTranscript(data:)колбэков.transcriptionEnabledразрешение доступно вMiscellaneousPermissions. - Connected Meetings (сессионные залы), Новый
RtkConnectedMeetingsкласс (доступен какclient.connectedMeetings) включает сценарии работы с breakout-комнатами. ЗарегистрируйтеRtkConnectedMeetingsEventListenerчтобы обрабатывать переходы между комнатами и обновления состояния. См. Сессионные залы документацию, где приведено полное руководство. - Чат: редактирование и удаление, Теперь сообщения можно редактировать и удалять. Новые методы в
RtkChat:editTextMessage(messageId:newText:onResult:),editImageMessage(messageId:newUri:onResult:),editFileMessage(messageId:newUri:onResult:), а такжеdeleteMessage(messageId:onResult:).RtkChatEventListenerполучаетonMessageEdited(message:)иonMessageDeleted(messageId:)колбэков.ChatMessageтеперь включаетisEditedфлаг. - Чат: получение и пагинация, Новые методы в
RtkChat,fetchPublicMessages(beforeTimestamp:count:onlyPinned:onResult:),fetchPrivateMessages(userId:beforeTimestamp:count:onlyPinned:onResult:),fetchPinnedMessages(beforeTimestamp:count:onlyPinned:onResult:), а такжеgetMessages(timestamp:count:channelId:isPinned:onResult:), позволяют получать историю сообщений с курсорной пагинацией черезFetchMessagesResult(messages:hasMore:). - Плагины, объявленные клиентом, Теперь плагины полностью настраиваются на стороне клиента через
RtkClientPluginConfigиRtkClientPluginPermissions.RtkPluginпредоставляет новыйiconиpermissionsсвойства соответствующим образом. - Целевые рассылки сообщений,
RtkParticipants.broadcastMessage(message:targetParticipantIds:payload:)отправляет сообщение определенному подмножеству участников. - Значения хранилища с поддержкой null,
RtkStore.set(key:value:broadcast:persist:)теперь принимает значение null дляvalue: Any?, что позволяет очищать ключи, устанавливая для них значениеnil. - Управление логированием,
RealtimeKitClientполучаетenableLogging(_:)иenableLogging(_:minSeverity:)чтобы управлять выводом логов SDK во время выполнения. - Result_ Utility Type, Новый
Result_<S, F>тип сSuccessиFailureвариантов последовательно используется во всех новых асинхронных API. Он называетсяResult_чтобы избежать конфликта со встроенным в SwiftResultтип.
Исправления
- Улучшена обработка переподключения: медиапотоки теперь корректно восстанавливаются в большем числе сценариев
- Исправлены возможные зависания интерфейса: наблюдатель изменения аудиомаршрута теперь вызывается вне основного потока
- Улучшены уровни simulcast: на верхних уровнях теперь поддерживается более широкий диапазон качества
- Исправлены отдельные состояния гонки при обработке медиа, которые в редких случаях приводили к сбою при отключении или включении звука
- Оптимизированы вызовы API в процессе присоединения к комнате, что ускоряет первое подключение
- Исправлена ошибка, из-за которой в некоторых случаях не удавалась загрузка файлов и изображений в чате
2026-05-08
RealtimeKit iOS Core 2.1.0
Критические изменения
RtkParticipants.activeSpeaker→RtkParticipants.lastActiveSpeaker. СтарыйactiveSpeakerсвойство устарело и будет удалено в одном из будущих релизов.RtkSelfParticipant.enableScreenShare()→enableScreenShare(onResult:). Старая версия без обратного вызова считается устаревшей и будет удалена в одном из будущих релизов.RtkSelfParticipant.disableScreenShare()→disableScreenShare(onResult:). Старая версия без обратного вызова считается устаревшей и будет удалена в одном из будущих релизов.RtkStore.subscribe(key, (key, value) → Unit)→subscribe(key, (value) → Unit). Старая сигнатура обратного вызова с двумя аргументами считается устаревшей, но продолжает работать благодаря обратно совместимой прослойке.RtkStore.unsubscribe(key, (key, value) → Unit)→unsubscribe(key, (value) → Unit). Старая сигнатура обратного вызова с двумя аргументами считается устаревшей, но продолжает работать благодаря обратно совместимой прослойке.
Возможности
- Добавлено
RtkChat.pin()иRtkChat.unpin()методы, чтобы закреплять и открепять сообщения чата - Добавлено
RtkChat.getMessagesByUser()чтобы фильтровать сообщения по отправителю иRtkChat.getMessagesByType()чтобы фильтровать сообщения по типу - Добавлено
SelfPermissions.canPinMessage()чтобы проверить, есть ли у локального участника право закреплять сообщения
Исправления
- Исправлена ошибка, из-за которой статус записи оставался «recording», если запись, начатую другим участником, останавливали
- Исправлено появление «призрачных» участников в сетке, когда пользователь находился на экране настройки, но еще не подключился к сокет-комнате
- Исправлена проблема, из-за которой организатор вебинара был невидим для других участников при позднем присоединении
- Исправлена ошибка, из-за которой боты записи и другие скрытые участники некорректно отображались в сетке участников
- Исправлена проблема, из-за которой участники из списка ожидания отображались в списке участников до того, как их допускали к встрече
2026-04-20
RealtimeKit iOS Core 2.0.0
Критические изменения
- Удалена поддержка Hive SFU. Теперь поддерживается только Cloudflare SFU.
- Базовый URI по умолчанию теперь
realtime.cloudflare.com. Вызовinit()сdyte.ioбазовый домен теперь сразу завершается ошибкой сMeetingError.InvalidBaseUrl
Исправления
- Добавлена совместимость с новым именованием полей в серверном API плагинов
- Исправлен сбой, который мог возникать при обращении к контроллеру сокета до того, как
init()был вызван - Исправлена ошибка, из-за которой токен авторизации не отправлялся на эндпойнт сборщика callstats
- Удалена собственная логика ping-pong keepalive, которая требовалась только для предыдущей инфраструктуры
2026-02-06
RealtimeKit iOS Core 1.6.1
Исправления
- Исправлены проблемы с медиа при увеличенном времени установления соединения
2026-01-14
RealtimeKit iOS Core 1.6.0
Исправления
- Исправлены сбои, возникавшие при загрузке файлов
- Улучшены переходы в сетке благодаря пакетной активации consumer, что повышает производительность
- Запросы на переключение консьюмера перенесены с главного потока, чтобы не блокировать UI
- Устранены состояния гонки за счёт отмены попыток переподключения во время инициализации
2025-12-16
RealtimeKit iOS Core 1.5.7
Исправления
- Исправлен редкий сбой при переключении отключения звука
- Ведущие вебинара, находящиеся не на сцене, больше не отображаются в сетке
2025-12-12
RealtimeKit iOS Core 1.5.6
Исправления
- Исправлены дедлоки при присоединении к вебинару и включении демонстрации экрана
- Исправлена ошибка, из-за которой камера переставала работать при переходе на экран настроек и обратно
- Исправлен редкий сбой в определении голосовой активности
2025-12-04
RealtimeKit iOS Core 1.5.5
Исправления
- Исправлена ошибка, из-за которой плитки участников не удалялись корректно при выходе пиров из встречи
- Исправлены скачки потребления памяти при включении или переключении видео участниками
- Улучшено управление видеобуфером для предотвращения роста потребления памяти
- Улучшена отрисовка видео на iOS для соответствия поведению на Android
2025-11-06
RealtimeKit iOS Core 1.5.4
Исправления
- Внутренние исправления для снижения детализации телеметрии
- Исправлена незначительная утечка памяти
2025-10-23
RealtimeKit iOS Core 1.5.3
Исправления
- Исправлен регресс, из-за которого собственное видео не отображалось при присоединении к встрече с выключенной камерой
2025-10-23
RealtimeKit iOS Core 1.5.2
Исправления
- Исправлено нестабильное поведение сетки за счёт улучшенной логики обновления
2025-10-06
RealtimeKit iOS Core 1.5.1
Исправления
- Внутренние исправления проблем на платформе Flutter
2025-09-23
RealtimeKit iOS Core 1.5.0
Возможности
- Добавлено
RtkSelfEventListener#onAudioDeviceChangedметод, который вызывается при обновлении текущего аудиомаршрута
Исправления
- iOS больше не игнорирует выбор аудиоустройства при первоначальном присоединении
2025-09-18
RealtimeKit iOS Core 1.4.1
Исправления
- Теперь в качестве аудиовыхода по умолчанию используется громкая связь вместо динамика у уха
2025-09-18
RealtimeKit iOS Core 1.4.0
Критические изменения
- Обновлена
RtkSelfEventListener#onAudioDevicesUpdatedметод, чтобы получить список доступных устройств
Исправления
- Исправлена ошибка, из-за которой не удавалось направить звук на устройства Bluetooth
2025-09-12
RealtimeKit iOS Core 1.3.4
Исправления
- Исправлен редкий сбой при присоединении к встрече в условиях слабого сетевого соединения
2025-09-12
RealtimeKit iOS Core 1.3.3
Исправления
- Исправлена ошибка, из-за которой закрепленные пиры не удалялись со сцены при исключении
- Теперь консьюмеры создаются параллельно, что значительно ускорило момент, когда пользователи начинают видеть аудио и видео других участников после присоединения к встрече
- Исправлена проблема с «призрачными»/недействительными пирами, которые иногда появлялись на длительных встречах
- Исправлена ошибка в вебинарах, из-за которой SDK переставал передавать медиапоток после однократного удаления участника со сцены
2025-08-13
RealtimeKit iOS Core 1.3.2
Улучшения
- Исправлена проблема, из-за которой микрофон не работал при выходе на сцену в вебинаре
2025-08-13
RealtimeKit iOS Core 1.3.1
Улучшения
- Исправлен возможный сбой при слабом сетевом соединении
2025-08-12
RealtimeKit iOS Core 1.3.0
Возможности
- Добавлено
RtkSelfParticipant#canJoinStageиRtkSelfParticipant#canRequestToJoinStageAPI
Исправления
- Исправлена проблема, из-за которой зритель не мог выйти на сцену в прямой трансляции
- Исправлена проблема, из-за которой пользователь не видел уже закреплённого участника после присоединения к встрече
2025-08-05
RealtimeKit iOS Core 1.2.0
Критические изменения
- Переименовано
RtkLivestreamData.roomNameкRtkLivestreamData.meetingIdчтобы соответствовать существующим соглашениям API - Удалена устаревшая
WaitingRoomPermissionsабстракция: вся необходимая функциональность здесь доступна черезHostPermissions - VideoDevice получил
cameraType: CameraTypeпараметр VideoDeviceType#displayNameтеперь считается устаревшим, вместо него рекомендуется вызыватьVideoDevice#toStringвместо этого, чтобы получить понятные пользователю названия отдельныхVideoDeviceэкземпляры- Существующие API, связанные с middleware, были удалены и заменены эквивалентными аналогами из WebRTC:
RtkSelfParticipant#addVideoMiddleware,RtkSelfParticipant#getVideoMiddlewaresиRtkSelfParticipant#removeVideoMiddlewareбыли удалены. Мы не поддерживаем миддлвары на iOS, поэтому эти API фактически не выполняли никаких действий и были доступны по ошибке.
Возможности
- Переработаны middlewares с использованием нативных примитивов WebRTC для устранения периодических сбоев и других проблем.
VideoDeviceтеперь корректно обозначает несколько камер по их характеристикам, таким как широкоугольная камера и телеобъектив.
Исправления
- Исправлена ошибка, из-за которой демонстрация экрана не запускалась
- Устранено засорение логов от нашей библиотеки callstats
2025-07-02
RealtimeKit iOS Core 1.1.0
Возможности
- Поддержка активных спикеров
Улучшения
- Инициализация встречи (
meeting.init()) теперь примерно на 60% быстрее - Выполнен переход на обновлённую и RTK с пространством имён WebRTC
2025-06-20
RealtimeKit iOS Core 1.0.1
Критические изменения
- RtkMessageType переименован в ChatMessageType
Исправления
- Устранено засорение логов от репортера аудиоактивности
- Увеличена скорость подключения к звонкам
- Токены авторизации теперь автоматически удаляют лишние пробелы и переносы строк
2025-05-26
RealtimeKit iOS Core 1.0.0
Критические изменения
- Удалено устаревшее
channelIdполе изTextMessage - Типы слушателей перенесены в соответствующий пакет функции
- Публичные слушатели перенесены в соответствующие пакеты функций
- Переименованы методы добавления и удаления обработчиков плагинов для RtkPluginsEventListener
- Перенесены расширения чата в
chatпакет - Перенесено
RtkParticipantк корневому пакету - Перенесено
RtkMeetingParticipantк корневому пакету - Перенесено
RtkPluginFileк пакету plugins - Middleware перенесены в собственный пакет
- Перенесено
VideoScaleTypeна верхний уровеньmediaпакет - Отброшено
Rtkпрефикс из типов аудио- и видеоустройств - Типы устройств перенесены на верхний уровень
mediaпакет - Отброшено
Rtkпрефикс из типов опросов - Все упоминания «LiveStream» заменены на «Livestream»
- Перенесено
RtkMeetingParticipantв корневой пакет - Удалено
Rtkпрефикс изRtkRecordingState - Удалено
Rtkпрефикс из типов сообщений чата - Удалено устаревшее поле RtkLivestream#roomName
- Перенесено
RtkMediaPermissionв пакет media и переименован вMediaPermission - Перераспределены
featчлены пакета - Перенесено
StageStatusкласс в пакет stage - Все обработчики событий переименованы в форму единственного числа
*EventListenerформа
2025-05-16
RealtimeKit iOS Core 0.2.1
Исправления
- Внутренние исправления конвейера релизов
2025-05-16
RealtimeKit iOS Core 0.2.0
Исправления
- Добавлено определение аудиоактивности для сигнализации активного спикера
2025-05-14
RealtimeKit iOS Core 0.1.0
Новые API
- Первый alpha-релиз