# Информация о выпусках (Release notes) Webim Mobile SDK v3.0 для iOS

Ниже представлен список выпусков **Webim Mobile SDK 3** для **iOS**.

!!! Note "Совместимость с Webim Server"
    **Webim Mobile SDK** поддерживает работу с **Webim Server**, начиная с версии `10.5`. При использовании версий сервера ниже `10.5` часть функций SDK может быть недоступна.

!!! Warning "Важно!"
    Для корректной работы SDK, начиная с версии `3.39.0`, необходим **Webim Server** версии `10.5.30` или выше.

## 3.43.1

  * Добавлен метод принудительного старта чата forceStartChat()

  * Добавлен случай VisitSessionState.firstQuestion

## 3.43.0

  * Добавлен тип ошибки FatalErrorType.initializationFailed

  * Добавлен метод для прочтения чата до конкретного сообщения setChatRead(before message: )

  * Добавлена автоматическая переотправка файловых сообщений, если файл не успел отправиться до уничтожения сессии

## 3.42.0

  * Добавлена автоматическая отправка неотправленных сообщений

## 3.41.11

  * Исправлен метод getThumbURL()

## 3.41.10

  * Исправлена работа опросов

## 3.41.9

  * Обновлена поддержка Xcode 16

## 3.41.8

  * Добавлена поддержка Xcode 16

## 3.41.7

  * Исправлена проблема в методе автозаполнения

## 3.41.6

  * Исправлена проблема с SPM

## 3.41.5

  * Добавлен Privacy Manifest

  * Добавлена поддержка групп сообщений

  * Добавлена поддержка ошибки `SendFileError.maliciousFileDetected`

## 3.41.4

  * Исправлено поведение `setChatRead()`, при вызове метода число непрочитанных сообщений становится равным 0 сразу же, не дожидаясь ответа от сервера

  * Добавлено получение значения `disablingMessageInputField`

## 3.40.0

  * Исправлены ошибки предыдущей версии.

  * Добавлен случай `uploadCanceled` для ошибки при отправке файла.

  * Добавлен метод `set(mobileChatInstance:)` для настройки количества сессий внутри приложения.

  * Добавлен подключаемый метод для получения дополнительной информации о о кнопке клавиатуры чат-бота.

## 3.39.3

  * Библиотека переименована в `WebimMobileSDK`

## 3.39.2

  * Добавлено итеративное увеличение времени таймаута между запросами при отсутствии сетевого соединения.

## 3.39.1

  * Добавлены новые записи логирования.

## 3.39.0

  * Исправлены ошибки предыдущей версии.

  * Добавлен класс `WebimAlert`.

  * Добавлен подключаемый метод для получения подсказок.

## 3.38.2

  * Исправлена ошибка метода `MessageListener#changed(message:to:)`, из-за которой после редактирования сообщения поле `canBeEdited` могло изменить значение на `false`.

## 3.38.0

  * В `MessageStream` добавлен метод для получения настроек сервера (`getServerSideSettings`) и id текущего чата (`getChatId`).

  * Добавлена возможность настройки логирования и типы логов.

  * Исправлены некоторые баги.

## 3.36.3

  * Добавлен пропуск UI аутентификации для `Keychain`.

## 3.36.2

!!! Warning "Внимание!"
    Указанные в этой версии изменения и нововведения работают не у всех клиентов (чтобы узнать, поддерживается ли данная функциональность на вашем аккаунте, уточните у [технической поддержки **Webim**](mailto:support@webim.ru)).

  * Добавлен метод `keyboardButton.getConfiguration()`, который возвращает объект `Configuration`.

  * Добавлен `AttachmentState.externalChecks`.

  * Исправлена ошибка в методе `messageAttachment.getState()`.

  * Добавлены методы `operator.getTitle()` и `operator.getInfo()`.

  * Добавлен метод `searchStreamMessagesBy(query:completionHandler:)`.

  * Добавлен метод `react(message:reaction:completionHandler:)`.

  * Добавлен метод `clearHistory()`.

  * Исправлены ошибки версий 3.36.0 и 3.36.1.

## 3.36.1

  * Исправлены ошибки версии 3.36.0.

## 3.36.0

!!! Warning "Внимание!"
    Указанные в этой версии изменения и нововведения работают не у всех клиентов (чтобы узнать, поддерживается ли данная функциональность на вашем аккаунте, уточните у [технической поддержки **Webim**](mailto:support@webim.ru)).

  * Добавлен перечисляемый тип `ButtonState`, используемый для определения состояния кнопки.

  * Добавлен перечисляемый тип `ButtonType`, используемый для определения типа кнопки.

  * Добавлен `FileState.externalChecks`.

  * Добавлен протокол `ReactionCompletionHandler`, являющийся обработчиком реакций на сообщения, а также связанный с ним перечисляемый тип `ReactionError`.

  * Добавлен протокол `Configuration`, представляющий информацию о конфигурации кнопок клавиатуры чат-бота.

  * В протоколе `Message` добавлены методы `canVisitorReact()`, `getVisitorReaction()` и `canVisitorChangeReaction()`, позволяющие узнать, может ли посетитель оставить или изменить реакцию, а получить информацию непосредственно о реакции.

  * Добавлен протокол `RawLocationConfigHandler`.

  * Добавлен протокол `SearchMessagesCompletionHandler`.

## 3.35.6

  * Исправлена ошибка вызова `completionHandler` при удалении загруженного файла.

## 3.35.5

  * Добавлена обработка ошибки загрузки файла с слишком малым размером.

  * Исправлена ошибка вызова `completionHandler` при удалении загруженного файла.

  * Улучшена работа с разными потоками в SDK.

## 3.35.3

  * Исправлены ошибки при использовании `Swift Package Manager`.

## 3.35.2

  * Исправлена проблема с загрузкой истории.

  * Улучшена безопасность: добавили шифрование истории чата и хранение данных в Keychain.

  * Добавлена поддержка `Swift Package Manager`.

## 3.34.1

  * Добавлен метод `set(onlineStatusRequestFrequencyInMillis:):` с помощью этого метода можно установить период обновления онлайн-статуса сессии в миллисекундах. Данный метод необходимо использовать для правильной работы экземпляра протокола `OnlineStatusChangeListener`.

## 3.34.0

  * Исправлена ошибка метода `getLastRatingOfOperatorWith(id:):` метод возвращает оценку в диапазоне от 1 до 5 или 0, если оценка не была выставлена.

  * Добавлена поддержка групповой передачи файлов.

## 3.33.0

  * Добавлен метод `isEdited()` у интерфейса `Message`.

  * Исправлена ошибка метода `getNextMessages`, которая приводила к дублированию сообщений при загрузке истории.

  * Добавлена поддержка отправки стикеров посетителем.

  * Метод `changed(operator:to)` срабатывает, когда чат лишается оператора (параметр `to` равен `nil`).

## 3.32.1

  * Исправлена ошибка при работе с историей диалогов.

## 3.32.0

  * Добавлена поддержка опросов.

  * Добавлена поддержка приветственного сообщения.

  * В перечисляемый тип `SendFileError` добавлена ошибка `unauthorized`.

## 3.31.10

  * Исправлена ошибка в методе `getNextMessages`.

## 3.31.9

  * Исправлена ошибка в методе `getRawData()`.

## 3.31.8

  * Исправлены некоторые сбои в работе SDK.

## 3.31.7

  * Исправлены некоторые сбои в работе SDK.

## 3.31.6

  * Инициализация запроса с версией SDK.

## 3.31.5

  * Исправлена ошибка в функции цитирования сообщений.

## 3.31.4

  * Исправлена ошибка в методе `getCurrentOperator()`.

  * Добавлен новый метод для возобновления сессии.

## 3.31.3

  * Метод `destroyWithClearVisitorData()` устанавливает `none` в значении push-токена.

## 3.31.2

  * Исправлена ошибка в `RateOperatorCompletionHandler`.

## 3.31.1

  * Исправлена ошибка в работе истории.

## 3.31.0

  * Добавлен метод `sendDialogTo(emailAddress:sendDialogToEmailAddressComplitionHandler)`.

## 3.30.0

  * Появилась возможность добавлять комментарий при оценке оператора.

## 3.29.7

  * Исправлена ошибка в `sendKeyboardRequest`.

  * Исправлена ошибка в `sendKeyboardRequest`.

  * Поддержка **SQLite 0.12.2**.

## 3.29.6

  * Исправлена ошибка в `Cartfile`.

## 3.29.5

  * Добавлены новые методы `FAQ`.

## 3.29.4

  * Исправлена ошибка в истории сообщений.

## 3.29.3

  * База данных размещается в `.applicationSupportDirectory`.

## 3.29.2

  * Добавлены некоторые исключения в `FAQ`.

## 3.29.1

  * Внесены некоторые изменения в `FAQ`.

## 3.29.0

  * Внесены некоторые изменения в `FAQ`.

## 3.28.3

  * Исправлена ошибка в `MessageFactories`.

## 3.28.2

  * Новая версия `FAQ`.

## 3.28.1

  * Новая версия `FAQ`.

## 3.28.0

  * Добавлен метод `set(multivisitorSection:)`.

    !!! Warning "Внимание!"
        Указанный в этой версии метод работает не у всех клиентов (чтобы узнать, поддерживается ли данная функциональность на вашем аккаунте, уточните у [технической поддержки **Webim**](mailto:support@webim.ru)).

  * Новые методы `WebimRemoteNotification`.

## 3.27.2

  * Новый метод для `FAQ`.


## 3.27.1

  * Исправлены ошибки в индексах БД.

  * Исправлены ошибки в `UserDefaults`.

## 3.27.0

  * Новые функции для `FAQ`.

## 3.26.0

  * Добавлена поддержка цитирования сообщений.

  * Исправлены ошибки при работе с локальной базой данных.

## 3.25.2

  * Устранены возможные утечки памяти.

## 3.25.1

  * Исправлена ошибка неправильного `ID сообщения`.

  * Исправлено поведение, при котором текст отредактированного сообщения менялся на изначальный текст.

## 3.25.0

  * Добавлена поддержка сценарного робота.

  * Миграция исходного кода на **Swift 5**.

## 3.24.7

  * Исправлены ошибки, связанные с периодичностью запросов истории.

  * Исправлена ошибка работы с базой данных на устройстве, приводящая к возможному падению приложения.

  * Добавлена передача `Bundle ID` и версии приложения в `User-Agent` сетевых запросов.

## 3.24.6

  * Использование `SQLite 0.11.5`. Поздние версии приводят к ошибкам сборки.

## 3.24.5

  * Замена типа `Int` на `Int64` в `HistoryRevisionItem` для избежания переполнения значения переменной, которое хранит время, на 32-битных устройствах.

## 3.24.4

  * Исправлена опечатка в методе `rateOperatorWith(id:rating:completionHandler:)`.

## 3.24.3

  * Исправлена ошибка удаления сообщений при первом обращении в чат.

## 3.24.2

!!! Warning "Внимание!"
    Указанный в этой версии метод работает не у всех клиентов (чтобы узнать, поддерживается ли данная функциональность на вашем аккаунте, уточните у [технической поддержки **Webim**](mailto:support@webim.ru)).

  * Новый метод `updateWidgetStatus(data:)`.

## 3.24.1

  * Оптимизация запросов истории сообщений.

## 3.24.0

  * Добавлена возможность работы с блоком часто задаваемых вопросов (`FAQ`).

## 3.23.7

  * Исправлен метод `MessageListener.added(message newMessage:, after previousMessage:)`.

  * Исправлен метод `UnreadByVisitorMessageCountChangeListener.changedUnreadByVisitorMessageCountTo(newValue:)`.

## 3.23.6

  * Добавлен собственный `User-Agent` для сетевых запросов.

## 3.23.5

  * Исправлена ошибка при запросе сообщений, если история посетителя пустая.

## 3.23.4

  * Исправлена ошибка при запросе миниатюры вложенного изображения.

## 3.23.3

  * Добавлена задержка в десять секунд при повторной попытке обращению к серверу при отсутствии доступа к сети.

## 3.23.2

  * Повышение версии `Swift до 4.2`.

## 3.23.1

  * Исправлена ошибка, которая приводила к падению из-за неизвестного типа сообщения в текущем чате.

## 3.23.0

  * Добавлен новый метод `edit(message:text:completionHandler:)`.

  * Добавлен новый метод `delete(message:completionHandler:)`.

  * Добавлен новый метод `canBeEdited()`.

## 3.22.3

  * Исправлена ошибка при загрузке истории.

  * Исправлена ошибка в работе `FileSendCompletionHandler`.

## 3.22.2

  * Исправлена ошибка сборки с помощью `Carthage`.

## 3.22.1

  * Исправлена повторная инициализация сессии.

## 3.22.0

!!! Warning "Внимание!"
    Указанный в этой версии метод работает не у всех клиентов (чтобы узнать, поддерживается ли данная функциональность на вашем аккаунте, уточните у [технической поддержки **Webim**](mailto:support@webim.ru)).

  * Добавлен метод `set(prechatFields:)`.

## 3.21.2

  * Исправлен `CurrentOperatorChangeListener`.

## 3.21.1

  * Убрана слабая ссылка у `FatalErrorHandler` для правильной работы во `wrapper`'е.

## 3.21.0

  * Добавлен метод `isReadByOperator`.

  * Отправка параметров файлового сообщения в `HTTPBody`.

## 3.20.1

  * Исправлена ошибка, из-за которой методы `getLastMessages` и `getNextMessages` могли возвращать пустой список сообщений при первом вызове этих методов.

## 3.20.0

  * Новый метод `setChatRead()`.

## 3.19.0

!!! Warning "Внимание!"
    Указанные в этой версии изменения и нововведения работают не у всех клиентов (чтобы узнать, поддерживается ли данная функциональность на вашем аккаунте, уточните у [технической поддержки **Webim**](mailto:support@webim.ru)).

  * Добавлен новый метод `set(prechat:)`.

  * Добавлен новый метод `startChat(customFields:)`.

## 3.18.3

  * Устранены утечки памяти при повторном открытии сессии.

  * Исправлена аутентификации по `providedAuthorizationToken`.

## 3.18.2

  * Устранены утечки памяти при загрузке истории.

## 3.18.1

  * Исправлена ошибка для 32-битных платформ.

## 3.18.0

  * Добавлен метод `destroyWithClearVisitorData`.

  * База данных создаётся не для каждого открытия сессии, а только для первого.

## 3.17.5

  * Исправлена ошибка при загрузки конца истории.

## 3.17.4

  * Исправлена ошибка, возникающая после разблокировки экрана во время работы чата.

## 3.17.3

  * После восстановления доступа к сети запросы отправляются в порядке очереди.

  * Возвращены слабые ссылки.

## 3.17.2

  * Убраны слабые ссылки.

## 3.17.1

  * Исправлена ошибка при запросе истории.

  * Добавлен повтор сетевых запросов при отсутствии доступа к сети.

## 3.17.0

  * Добавлены новые типы ошибок.

## 3.16.0

!!! Warning "Внимание!"
    Указанный в этой версии метод работает не у всех клиентов (чтобы узнать, поддерживается ли данная функциональность на вашем аккаунте, уточните у [технической поддержки **Webim**](mailto:support@webim.ru)).

  * Добавлен метод `respondSentryCall(id)`.

## 3.15.0

  * Добавлен `UnreadByVisitorMessageCountListener`.

  * Исправлены незначительные ошибки.

## 3.14.2

  * Улучшено взаимодействие с сервисом в контексте обновления параметра, возвращаемого методом `getUnreadByVisitorTimestamp()` протокола `MessageStream` и методами протокола `UnreadByVisitorTimestampChangeListener`.

  * Исправлена ситуация, когда методы протокола `MessageListener` не вызываются до первого запроса истории сообщений.

  * Исправлены различные незначительные ошибки. Произведены множественные незначительные улучшения.

## 3.14.1

  * Исправлена ошибка, приводившая к остановке приложения в случае, если используемая учетная запись **Webim** заблокирована.

  * Исправлена ошибка, которая могла привести к получению чужой истории сообщений, в случае, если в приложении изменится посетитель после запроса истории сообщений, но до получения результата этого запроса.

  * Улучшена работа с памятью (библиотека больше не держит сильные ссылки на объекты своих делегатов).

  * Произведены множественные незначительные улучшения.

## 3.14.0

  * Добавлены протоколы для отслеживания изменений значений, возвращаемых методами `getUnreadByOperatorTimestamp()` и `getUnreadByVisitorTimestamp()` протокола `MessageStream` (`UnreadByOperatorTimestampChangeListener` и `UnreadByVisitorTimestampChangeListener`, соответственно).

## 3.13.1

!!! Warning "Внимание!"
    После данного обновления приложение необходимо переустановить!

  * Исправлены различные важный ошибки в работе с запросами истории сообщений.

## 3.13.0

  * Исправлена логика работы метода `getUnreadByVisitorTimestamp()` протокола `MessageStream`: теперь в случае, если все сообщения прочитаны посетителем, метод возвращает `nil`.

  * Возвращаемые значения методов `getID()` и `getName()` протокола `Operator` более не опциональные.

  * Добавлено новое состояние чата – `CHATTING_WITH_ROBOT`.

  * Исправлены различные ошибки в методах для работы с историей сообщений при использовании локального хранилища.

  * Произведены незначительные улучшения во взаимодействии с сервисом.

  * Оптимизация настроек подключаемой библиотеки.

## 3.12.0

  * Метод `rateOperatorWith(id:byRating:comletionHandler:)` протокола `MessageStream` изменен, чтобы позволить передавать `nil` в качестве параметру `id` – в этом случае оценен будет текущий оператор чата (если есть).

  * Добавлена начальная поддержка `push`-уведомлений, высылаемых при отправке оператором `action` `request`- и `widget`-сообщений.

  * Исправлены ошибки работы методов для запрашивания истории сообщений: случай, когда первоначальный запрос истории сообщений мог не вернуть запрашиваемые сообщения и не выполнить передаваемое замыкание.

  * Произведены множественные незначительные улучшения.

## 3.11.0

  * Методу `set(webimLogger:verbosityLevel:)` добавлен параметр `verbosityLevel`, в который можно передать значение `WebimLoggerVerbosityLevel` для регулировки многословности передаваемых записей лога.

  * Методы `getContentType()`, `getFileName()` и `getURL()` протокола `MessageAttachment` изменены, чтобы возвращать неопциональные значения.

  * Ликвидирована внешняя зависимость от сторонней библиотеки `CryptoSwift`.

  * Метод `new(messageTracker:)` протокола `MessageStream` переименован в `newMessageTracker(messageListener:)`.

  * Исправлена ошибка, из-за которой метод протокола `Operator` мог вернуть пустой (`nil`) ID оператора.

  * Произведены множественные незначительные улучшения.

---

Источник: https://webim.ru/kb/mobile/sdk/v-3-0/ios-release-notes.html
