Ресурсы
Исходный код примеров расположен на Github и будет использоваться в дальнейшем для пояснения работы примеров в данной документации. Например, данная ссылка line 78 указывает на семьдесят восьмую строку файла ViewController.m примера Media Devices ревизии с хешем 79a318b6.
Отличия сборок iOS SDK
1. В сборке 2.6, начиная с 2.6.19, поставляются два фреймворка: Objective C и Swift, а в сборке 2.6.95 Objective C фреймворк поставляется в виде XCFramework пакета.
2. В связи с обновлением WebRTC библиотеки, сборки начиная с 2.6.86 работают только на arm64 аппаратах (iPhone 5s и новее).
3. Примеры для версии 2.5 не могут быть собраны с версией 2.6 из-за того, что изменилась работа с захватом видео для добавления возможности захвата кастомного источника. Ссылки в таблице выше указывают на исходный код примеров, совместимых с каждой из версий.
Сборка примеров
Сборка примеров при помощи Xcode до версии 10 описана здесь. Процедура сборки примеров в новейших версиях Xcode 10 и выше несколько отличается, и описана здесь. Процедура сборки с SPM пакетами доступна для iOS SDK c 2.6.114 и описана здесь.
Известные проблемы
1. При публикации WebRTC потока и его воспроизведении в iOS приложении в полноэкранном режиме необходимо учитывать соотношение сторон экрана клиентского устройства
Симптомы: при публикации потока с соотношением сторон 4:3 (например, 640x480) и воспроизведении потока в iOS приложении в полноэкранном режиме изображение выглядит растянутым.
Решение: публиковать поток с соотношением сторон 16:9 (например, 1280x720)
2. Сборка 2.6.37 совместима со сборками WCS, начиная с 5.2.935
Симптомы: в примерах публикация и воспроизведение работают, но состояние кнопок и отображение статусов не меняются, в логах приложения могут быть сообщения
Error converting audioState JSON to FPWCSApi2MediaState Error converting videoState JSON to FPWCSApi2MediaState
Решение: обновить WCS до сборки 5.2.935 или новее
3. При сборке в Xcode для iOS Simulator на Mac с процессором M1 рекомендуется использовать Rosetta