リリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2026.3.0¶
- 日付:
2026-09-10
- 対応 Sora:
2025.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m150(7871)
ハイライト¶
- ステレオ音声を出力できるようになりました
- 詳細は ステレオで音声を出力する をご確認ください
Configurationにinsecureを追加しました- 開発環境向けに TLS 証明書検証をスキップするための設定です
- 詳細は TLS 証明書検証をスキップする をご確認ください
非推奨情報¶
TLSSecurityPolicyおよびICEServerInfo.tlsSecurityPolicyを非推奨にしました- WebSocket シグナリング、 TURN-TLS の両方においてサーバー証明書検証を無効化するための移行先として
Configuration.insecureを追加しました
- WebSocket シグナリング、 TURN-TLS の両方においてサーバー証明書検証を無効化するための移行先として
Configuration.spotlightEnabledを非推奨にしました- スポットライト機能を有効にするための移行先として
Configuration.isSpotlightEnabledを追加しました
- スポットライト機能を有効にするための移行先として
変更履歴¶
- [UPDATE]
MediaChannelHandlers.onDataChannelの発火タイミングを変更しました- ラベルが
#から始まるリアルタイムメッセージング用 DataChannel がすべてクライアント側で利用可能になった時点で発火するため、発火時点で送受信可能です onDataChannelと WebSocket の"type": "switched"の前後関係は保証されません- リアルタイムメッセージング用 DataChannel が存在しない場合は発火しません
- 詳細は リアルタイムメッセージング機能 および コールバック をご確認ください
- ラベルが
- [UPDATE]
TLSSecurityPolicyおよびICEServerInfo.tlsSecurityPolicyを非推奨にしました- 移行先は
Configuration.insecureです
- 移行先は
- [UPDATE]
Configuration.spotlightEnabledを非推奨にしました- 移行先は
Configuration.isSpotlightEnabledです
- 移行先は
- [UPDATE]
PeerChannelの接続状態フラグの所有者を単一の reducer に集約しました- 接続状態を単一の所有者で管理し、並行処理によるデータ競合を防ぐようにしました
- [UPDATE] libwebrtc m150.7871.3.5 に上げました
- [ADD] ステレオ音声を出力できるようになりました
- 詳細は ステレオで音声を出力する をご確認ください
- [ADD]
Configurationに Opus 音声コーデックのパラメーターを指定できるaudioOpusParamsを追加しました- 詳細は Sora に接続する をご確認ください
- [ADD]
Configurationにinsecureを追加しました- 詳細は TLS 証明書検証をスキップする をご確認ください
- [ADD]
Configurationにスポットライト機能を有効にするisSpotlightEnabledを追加しました- Enum 値で指定する
spotlightEnabledから Bool 値で指定するisSpotlightEnabledへ移行のため追加しました - 詳細は スポットライト機能 をご確認ください
- Enum 値で指定する
- [ADD]
MediaChannelHandlers.onDataChannelOpenedを追加しました- ラベルを限定せず、クライアントが受け取った DataChannel がラベルごとにクライアント側で
OPENになったタイミングで 1 回ずつ発火します onDataChannelがリアルタイムメッセージング用 DataChannel の利用開始をまとめて通知するのに対し、onDataChannelOpenedはラベルごとのOPENを通知します- 詳細は リアルタイムメッセージング機能 および コールバック をご確認ください
- ラベルを限定せず、クライアントが受け取った DataChannel がラベルごとにクライアント側で
- [FIX] 初期マイクミュートの初回解除時にマイク入力が開始されない問題を修正しました
- SDK 側の音声ハードミュート状態キャッシュにより解除要求が AudioDeviceModule に渡らない問題を修正しました
- [FIX] TURN-TLS の証明書エラーによる接続失敗後も libwebrtc のログが流れ続ける問題を修正しました
- 接続試行中に切断要求を受け取った場合、接続開始時のロックを解放し、
RTCPeerConnectionを閉じるようにしました - 接続失敗時のエラー通知が複数回呼ばれないようにしました
- 接続試行中に切断要求を受け取った場合、接続開始時のロックを解放し、
- [FIX] 受信中にネットワークが切断されてもエラー通知がない問題を修正しました
- 接続完了後に
RTCPeerConnectionStateが.disconnectedのまま停滞した場合、5 秒の猶予後に切断するようにしました - 切断時はシグナリング経由で明示的な切断メッセージを送信します
- 接続完了後に
- [FIX]
ConnectionTaskの即時キャンセルが接続開始を止めない競合を修正しました- 接続開始前にキャンセルされた場合、以前は接続が開始されていました。接続を開始せず
SoraError.connectionCancelledを通知するようにしました - 接続完了時もキャンセル済みか確認し、キャンセル後は接続成功を通知しないようにしました
- 接続開始前にキャンセルされた場合、以前は接続が開始されていました。接続を開始せず
- [FIX]
PeerChannelの接続完了ハンドラーが二重実行または未実行になる問題を修正しました- SDP の生成エラーが
sdpErrorとして利用者に伝わるようにしました - 接続成功、失敗、切断の各経路で完了ハンドラーを 1 回だけ実行するようにしました
- SDP の生成エラーが
- [FIX] 切断時の
invalidateと RPC 呼び出しが競合して、 RPC が完了しない問題を修正しましたinvalidate後の RPC 呼び出しを即時に失敗させ、保留中の RPC を競合なく 1 回だけ完了するようにしましたMediaChannel.rpcの Task がキャンセルされた場合はCancellationErrorで完了します
- [FIX] redirect 受理後も旧 DataChannel と RPC を利用できる問題を修正しました
- redirect 受理時に旧 transport を無効化し、以後の送信、RPC、統計取得が旧接続を参照しないようにしました
- 旧
DataChannelの参照を解放し、旧 RPC を無効化するようにしました - 旧
MediaStreamは終端して解放し、旧PeerConnectionの映像・音声フレームが新しい接続へ混入しないようにしました
- [FIX]
ConnectionTimerの旧タイマーが新しい接続を切断する問題を修正しました- 再実行前に既存のタイマーを無効化し、世代が一致するタイマーだけがタイムアウト処理を実行するようにしました
- [FIX] 画面共有の再開始後に旧フレームが送信される問題を修正しました
- キャプチャ世代を識別し、停止と再開始の競合後も旧フレームを送信しないようにしました
ReplayKitの開始、停止、所有権を接続間で直列化しました
- [FIX] 映像ハードミュートの capturer が別接続で再開される問題を修正しました
- カメラ操作の所有者を接続に紐付け、別接続が保存した capturer の取得と再開を拒否します
- 接続を切断する際は、その接続が所有するカメラだけを停止します
- [FIX] Camera flip で切り替え先の旧 stream へフレームが送信される問題を修正しました
- カメラの開始前に切り替え先の stream を設定し、古い stream へフレームを送信しないようにしました
- 連続した Camera flip の競合を防ぐようにしました
2026.2.1¶
- 日付:
2026-09-09
- 対応 Sora:
2025.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m150(7871)
変更履歴¶
- [FIX] PackageInfo の Sora iOS SDK バージョンを修正しました
- 2026.2.0 リリース時に canary バージョンとなっていたのを修正しました
2026.2.0¶
- 日付:
2026-07-29
- 対応 Sora:
2025.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m150(7871)
非推奨情報¶
MediaChannelHandlers.onReceiveSignalingを非推奨にしました- シグナリングメッセージの受け取りをより明確にするため、移行先として
MediaChannelHandlers.onReceiveSignalingJSONを追加しました
- シグナリングメッセージの受け取りをより明確にするため、移行先として
変更履歴¶
- [CHANGE] TURN-TLS の証明書検証で、 WebSocket シグナリングと同様に iOS のルートストアを利用するようにしました
- iOS のルートストアに含まれるルート証明書を用いて TURN-TLS のサーバー証明書の証明書チェーンを検証するようにしました
- libwebrtc にハードコードされたルート証明書は利用しないようにしました
- iOS のルートストアに必要な CA 証明書が含まれておらず、turns: 接続に失敗する場合は
Configuration.caCertificateに利用する CA 証明書を指定する、または端末に信頼する証明書としてインストールする必要があります Configuration.caCertificate指定時はユーザー指定の CA 証明書が利用されます- 詳細は CA 証明書を指定する をご確認ください
- [CHANGE] ログ出力時にクレデンシャル情報をマスクするようにしました
access_token、token、secret、authorization、credentialを含むキーの値はログ上で***に置換されます
- [UPDATE] WebRTC m150.7871.3.0 に上げました
- [UPDATE] Swift 6 言語モードでのビルドに対応しました
- 公開型の一部を
Sendableに対応しましたSora、Role、SignalingRole、Proxy、DeviceInfo、Logger等が該当します- 今回の変更で SDK 側に
Sendable準拠が追加された型について、利用側で独自にSendable準拠を追加している場合は削除が必要です
- 公開型の一部を
- [UPDATE]
MediaChannelHandlers.onReceiveSignalingを非推奨にしました- 移行先は
MediaChannelHandlers.onReceiveSignalingJSONです
- 移行先は
- [ADD] WebSocket シグナリングでユーザー指定の CA 証明書を検証できるようにしました
Configuration.caCertificateに PEM 形式の CA 証明書を設定できるようにしました- WebSocket シグナリングの server trust challenge で、指定した CA 証明書を用いた検証を行うようにしました
- 不正な PEM 文字列を指定した場合は、接続開始前に
configurationErrorを返すようにしました - ATS( App Transport Security )および iOS のルートストアによる接続制約は、引き続き利用アプリ側で考慮が必要です
- [ADD] TURN-TLS でユーザー指定の CA 証明書を検証できるようにしました
Configuration.caCertificateに指定した CA 証明書を TURN-TLS の信頼アンカーとして利用できるようにしました- サーバーからは中間証明書を含む完全な証明書チェーンが送出されている必要があります
- [ADD] シグナリングパラメーターに H.265 映像コーデックパラメーターを追加しました
- [ADD] シグナリング時の offer メッセージの encodings に含まれる
networkPriorityをRTCRtpEncodingParametersに反映するようにしました- Sora 2026.1.0 以降で利用できます
- Sora 側で指定されたネットワーク優先度を送信側エンコーディングへ反映します
- [ADD] 接続設定に音声入力処理のバイパスを指定できる
Configuration.bypassVoiceProcessingを追加しました - [ADD]
MediaChannelHandlersにシグナリングメッセージを JSON 文字列として取得するonReceiveSignalingJSONを追加しました - [ADD] 音声ルート変更を検知するイベントハンドラを追加しました
- 詳細は 音声ルート変更を検知する をご確認ください
- [ADD] iOS 端末のアプリ画面をキャプチャして配信するスクリーンキャスト機能を追加しました
- 詳細は スクリーンキャスト機能 をご確認ください
- [FIX]
Sora.setAudioMode(.default)で入力経路のオーバーライドが正しくリセットされない問題を修正しました- 入力経路を
.speakerへオーバーライドした後でも、.default指定で経路を戻せるようにしました
- 入力経路を
2026.1.0¶
- 日付:
2026-02-20
- 対応 Sora:
2025.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m144(7559)
ハイライト¶
- 音声と映像のミュート機能を追加しました
- 詳細は ミュート機能 をご確認ください
- 音声データを音声トラックごとにコールバックで受け取るためのインターフェースである
RTCAudioTrackSinkを追加しました- 詳細は 受信した音声データを取得する をご確認ください
- RPC 機能に対応しました
- 詳細は RPC 機能 をご確認ください
MediaChannelに libwebrtc の統計情報を取得するgetStatsメソッドを追加しました- 詳細は 統計情報 をご確認ください
非推奨情報¶
Configuration.simulcastRidを非推奨にしました- 2027 年 12 月リリースの Sora にて、シグナリング接続時の
simulcast_ridが廃止予定であるため非推奨にしました - 移行先は
Configuration.simulcastRequestRidです
- 2027 年 12 月リリースの Sora にて、シグナリング接続時の
変更履歴¶
- [UPDATE] WebRTC m144.7559.2.2 に上げました
- [UPDATE]
PeerChannel.initializeAudioInputでの音声入力初期化時にマイク入力をミュートするか設定できるようにしました - [UPDATE]
VideoHardMuteActorでの映像ハードミュート解除時に、カメラキャプチャ未起動なら開始するようにしました - [UPDATE]
StatisticsとStatisticsEntryを API リファレンスに公開しました - [UPDATE]
Configuration.simulcastRidを非推奨にしました- 移行先は
Configuration.simulcastRequestRidです
- 移行先は
- [ADD]
Configurationに接続確立時のマイク入力を有効にするか設定できるinitialMicrophoneEnabledを追加しました- 接続時に音声ハードミュートを行うために利用できます
- [ADD]
Configurationに接続確立時にカメラ初期化を行わない設定initialCameraEnabledを追加しました- 接続時に映像ハードミュートを行うために利用できます
- [ADD]
MediaChannelに音声ハードミュートを有効化/無効化するメソッドsetAudioHardMuteを追加しました - [ADD]
MediaChannelに音声ソフトミュートを有効化/無効化するメソッドsetAudioSoftMuteを追加しました - [ADD]
MediaChannelに映像ハードミュートを有効化/無効化するメソッドsetVideoHardMuteを追加しました - [ADD]
MediaChannelに映像ソフトミュートを有効化/無効化するメソッドsetVideoSoftMuteを追加しました - [ADD]
MediaChannelに libwebrtc の統計情報を取得するgetStatsメソッドを追加しました - [ADD]
RTCAudioTrackから音声データを受け取るためのコールバックプロトコルRTCAudioTrackSinkを追加しました - [ADD]
MediaStreamにRTCAudioTrackSinkをRTCAudioTrackと関連付ける / 関連付けを解除するためのメソッドを追加しました- 関連付けるためのメソッド:
addAudioTrackSink(_ sink: RTCAudioTrackSink) - 関連付けを解除するためのメソッド:
removeAudioTrackSink(_ sink: RTCAudioTrackSink)
- 関連付けるためのメソッド:
- [ADD] シグナリング接続時に視聴するストリームの rid を指定する
Configuration.simulcastRequestRid: SimulcastRequestRidを追加しました- rid を指定できる値の列挙型として
SimulcastRequestRidを追加しました - デフォルト値の
unspecifiedの場合は、シグナリングパラメーターにsimulcast_request_ridを含めません - この設定は role が sendrecv または recvonly の場合、かつ simulcast が true の場合にのみ有効です
- rid を指定できる値の列挙型として
- [ADD] サイマルキャストの rid を表す汎用型
Rid列挙型を追加しました - [ADD] RPC 機能を追加しました
SignalingOfferにrpcMethods: [String]?を追加しましたMediaChannelにrpcメソッドを追加しました- RPC メソッドを定義するための
RPCMethodProtocolプロトコルを追加しました RPCMethodProtocolに準拠した以下の型を追加しましたRequestSimulcastRidRequestSpotlightRidResetSpotlightRidPutSignalingNotifyMetadataPutSignalingNotifyMetadataItem
- RPC エラー応答の詳細を表す
RPCErrorDetail構造体を追加しました - RPC 成功応答を表す
RPCResponse<Result>ジェネリック構造体を追加しました SoraErrorに RPC 関連のエラーケースを追加しました
2025.2.0¶
- 日付:
2025-09-18
- 対応 Sora:
2025.1.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m138(7204)
ハイライト¶
MediaChannelHandlersにonDisconnect: ((SoraCloseEvent) -> Void)?を追加しましたonDisconnect: ((Error?) -> Void)?はonDisconnectLegacyという名前に変更され、非推奨になりました- 既存の
onDisconnect: ((Error?) -> Void)?では異常発生時のエラーは取得できても、正常に終了した際の理由などを取得することができませんでした onDisconnect: ((SoraCloseEvent) -> Void)?を利用することで、正常に終了した際のステータスコードと理由も取得できるようになりますonDisconnect: ((Error?) -> Void)?からの移行については onDisconnect: ((Error?) -> Void)? から onDisconnect: ((SoraCloseEvent) -> Void)? への移行 をご確認ください
破壊的変更¶
- CocoaPods でのライブラリ提供を廃止しました
- シグナリング type: connect メッセージの
multistreamを自動で true に設定する仕様を廃止しました MediaChannelHandlersのonDisconnect: ((Error?) -> Void)?をonDisconnectLegacyという名前に変更し、非推奨にしましたonDisconnect: ((SoraCloseEvent) -> Void)?への移行を推奨しますonDisconnectLegacy: ((Error?) -> Void)?は2027 年中に削除予定です- 移行については onDisconnect: ((Error?) -> Void)? から onDisconnect: ((SoraCloseEvent) -> Void)? への移行 をご確認ください
非推奨情報¶
Configuration.multistreamEnabledを非推奨にしました- Sora 2025.1.0 でレガシーストリームが廃止されたため、この項目を非推奨にしました
- 合わせて
Configurationのイニシャライザの multistreamEnabled をオプション引数にし、デフォルト値を nil に変更しました - 2027 年中に削除予定です
変更履歴¶
- [CHANGE] CocoaPods でのライブラリ提供を廃止しました
- 詳細は CocoaPods での提供終了について をご確認ください
- [CHANGE] connect メッセージの
multistreamを自動で true に設定する仕様を廃止しました- Configuration.role に .sendrecv を指定している場合に multistream を true に設定する仕様を廃止しました
- Configuration.spotlightEnabled に .enabled を指定している場合に multistream を true に設定する仕様を廃止しました
- Sora iOS SDK 2025.2.0 からは、connect メッセージには Configuration.multistreamEnabled に指定した値がそのまま設定されます
- 今後は Configuration.role に .sendrecv を指定している場合または Configuration.spotlightEnabled に .enabled を指定している場合に Configuration.multistreamEnabled に false を指定すると接続エラーになります
- [CHANGE]
MediaChannelHandlersのonDisconnect: ((Error?) -> Void)?をonDisconnectLegacyという名前に変更し、非推奨にしました - [UPDATE] WebRTC m138.7204.0.3 に上げました
- [UPDATE]
Configuration.multistreamEnabledを非推奨にしましたConfigurationのイニシャライザの multistreamEnabled をオプション引数にし、デフォルト値を nil に変更しました- Sora のデフォルト挙動に合わせる場合は、
Configurationのイニシャライザで mutlistreamEnabled を指定しないようにしてください
- [UPDATE] Sora との接続が終了したときの状態を表す
SoraCloseEvent(enum) を追加しました - [UPDATE]
MediaChannelHandlersにonDisconnect: ((SoraCloseEvent) -> Void)?を追加しましたonDisconnect: ((Error?) -> Void)?からの移行については onDisconnect: ((Error?) -> Void)? から onDisconnect: ((SoraCloseEvent) -> Void)? への移行 をご確認ください
- [ADD] サイマルキャストの映像のエンコーディングパラメーター
scaleResolutionDownToを追加しました- scaleResolutionDownTo の詳細については Sora のドキュメントの サイマルキャスト機能 をご確認ください
- [ADD] Sora から DataChannel シグナリングを切断する際に
"type": "close"メッセージを受信する機能を追加しました- DataChannel シグナリングが有効、かつ
ignore_disconnect_websocketが true、かつ Sora の設定でdata_channel_signaling_close_messageが有効な場合に受信することができます
- DataChannel シグナリングが有効、かつ
- [FIX] Sora から切断された場合の切断処理を修正し適切なエラーを
MediaChannelHandlers.onDisconnectで受け取ることができるようになりました- Sora iOS SDK 2025.1.1 までは Sora から Close Frame を受け取ったり、ネットワークエラーが起きたりしても、WebSocket メッセージ受信失敗に起因する
SoraError.webSocketErrorしか受信できませんでしたが、以下の内容を受信できるようになりました- Sora から Close Frame を受け取った場合のステータスコードと理由
- ステータスコードが 1000 で正常に切断された場合も
MediaChannelHandlers.onDisconnectで通知されます
- ステータスコードが 1000 で正常に切断された場合も
- ネットワークエラーや Sora がダウンした場合のエラー内容
- Sora から Close Frame を受け取った場合のステータスコードと理由
- いままでは WebSocket メッセージ受信失敗時のエラーである
The operation couldn’t be completed. Socket is not connectedというエラーしか返せていなかった状態が改善されました - この変更によって
MediaChannelHandlers.onDisconnectで受信するメッセージの内容は変わりますが、コールバックが発火するタイミングに変更はありません
- Sora iOS SDK 2025.1.1 までは Sora から Close Frame を受け取ったり、ネットワークエラーが起きたりしても、WebSocket メッセージ受信失敗に起因する
2025.1.3¶
- 日付:
2025-07-28
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132(6834)
- [FIX] Sora の設定が、DataChannel 経由のシグナリングの設定、かつ、WebSocket の切断を Sora への接続が切断したと判断しない設定の場合に、SDP 再交換に失敗することがある問題を修正しました
- WebSocket 経由から DataChannel 経由へのシグナリング切替時に
type: switchedとtype: re-offerをほぼ同時に受信した際、type: re-answerを WebSocket 経由で送信する前に WebSocket を切断してしまいtype: re-answerの送信に失敗することがあるためです - DataChannel 経由へのシグナリング切替後でも、まだ WebSocket 経由で送信中のメッセージが存在する可能性を考慮し、余裕を持って切断するために 10 秒の待機時間を設けるようにしました
- WebSocket 経由から DataChannel 経由へのシグナリング切替時に
2025.1.2¶
- 日付:
2025-05-07
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132(6834)
- [FIX] マルチストリーム利用時に SDP 再ハンドシェイク中に SDK が終了処理をした際に EXC_BAD_ACCESS (不正なメモリアクセス) によりクラッシュする問題を修正しました
2025.1.1¶
- 日付:
2025-01-23
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132(6834)
- [FIX] WebRTC m132.6834.5.2 にアップデートしました
- Apple 非公開 API を利用していたため、App Store Connect へのアップロードに失敗する問題に対応しました
2025.1.0¶
- 日付:
2025-01-21
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132(6834)
- [UPDATE] WebRTC m132.6834.5.1 にアップデートしました
- [UPDATE] システム条件を変更しました
- IPHONEOS_DEPLOYMENT_TARGET を 14.0 に変更
- SwiftPM の platforms の設定を v14 に変更
- CocoaPods の platform の設定を 14.0 に変更
- [UPDATE]
SignalingOfferに以下の項目を追加しましたversionsimulcastMulticodecspotlightchannelIdsessionIdaudioaudioCodecTypeaudioBitRatevideovideoCodecTypevideoBitRate
- [UPDATE]
SignalingNotifyに以下の項目を追加しましたtimestampspotlightNumberfailedConnectionIdcurrentStatepreviousState
- [ADD]
ForwardingFilterに name と priority を追加しました - [ADD] シグナリング connect 時にリスト形式の転送フィルターを設定するための項目を追加しました
ConfigurationとSignalingConnectにforwardingFiltersを追加しました
2024.3.0¶
- 日付:
2024-09-06
- 対応 Sora:
2024.1.0 以降
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m127(6533)
- [CHANGE]
MediaChannelConfigurationを非推奨にしました- SDK 内部では利用していないため非推奨としています
- 現在ご利用の方はこのクラス定義をご自分のプロジェクトにコピーしてご利用ください
- [UPDATE] libwebrtc
m127.6533.1.1にアップデートしました - [UPDATE] SignalingOffer に
simulcast: Bool?を追加しました - [UPDATE] システム条件を変更しました
- macOS 14.6.1 以降
- Xcode 15.4
- WebRTC SFU Sora 2024.1.0 以降
- [FIX] SignalingConnect の
metadata,signaling_notify_metadataが未設定 (nil) の場合に{}として送信されてしまう問題を修正しました- 未設定の場合は項目が含まれて送信されないように修正しました
- この修正により、
Configuration.signalingConnectMetadataの値が未指定の場合は Sora の認証ウェブフックにmetadata,authn_metadataの項目が送信されなくなります - この修正により、
Configuration.signalingConnectNotifyMetadataの値が未指定の場合は Sora のイベントウェブフックにmetadataの項目が送信されなくなります - 修正前の動作を維持して
{}を送信したい場合は、Configuration.signalingConnectMetadataおよびConfiguration.signalingConnectNotifyMetadataに中身が空の Encodable プロトコルに準拠したオブジェクトを指定してください - 例)
configuration.signalingConnectMetadata = [String: String]()
- [FIX] 認証ウェブフック成功時に払い出された
simulcastの値が反映されない不具合に対応しました - [FIX] スポットライト機能が有効の条件で
WrapperVideoEncoderFactoryのサイマルキャスト機能が有効になる不具合を修正しました- 利用上に不具合はありませんが、意図しないエンコーダーの設定になっていたため修正しました
- [FIX] TURN URI に IPv6 アドレスが設定されている場合に接続ができない不具合を修正しました
- TURN URI 文字列に対して、内部処理で意図しないエスケープ処理が行われていた問題を修正しました
2024.2.0¶
- 日付:
2024-04-23
- 対応 Sora:
2023.2.0 以降
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m122(6261)
- [CHANGE] シグナリング connect メッセージの libwebrtc に含まれるバージョン文字列を変更しました
- Android とフォーマットを統一しました
- "Shiguredo-build M122 (M122.1.0 6b419a0)" から "Shiguredo-build M122 (122.6261.1.0 6b419a0)" に変更されます
- [UPDATE] libwebrtc を m122.6261.1.0 に更新しました
- libwebrtc の AV1 デコード機能の脆弱性対応が含まれています
- [UPDATE] システム条件を変更しました
- macOS 14.4.1 以降
- Xcode 15.3
- Swift 5.10
2024.1.0¶
- 日付:
2024-02-26
- 対応 Sora:
2023.2.0 以降
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m121(6167)
- [CHANGE] Sora 2022.1.0 にて
metadata_listが廃止されたのに伴い、SignalingNotifyのmetadataListを削除しました- 代わりに
SignalingNotifyのdataで値を取得できます
- 代わりに
- [CHANGE] VideoView のバックエンドを RTCEAGLVideoView から RTCMTLVideoView に変更しました
- libwebrtc のアップデートに伴い
RTCEAGLVideoViewがdeprecatedになったことに伴う修正です
- libwebrtc のアップデートに伴い
- [UPDATE] システム条件を変更しました
- macOS 14.3.1 以降
- WebRTC SFU Sora 2023.2.0 以降
- CocoaPods 1.15.2 以降
- Xcode 15.2
- Swift 5.9.2
- [UPDATE] CameraVideoCapturer のログを出力するようにしました
- [UPDATE] libwebrtc のバージョンを 121.6167.4.0 に更新しました
- HEVC (H.265) 対応パッチを含んだバージョンです
- [UPDATE] 解像度に qHD (960x540) を追加しました
- [UPDATE] CocoaPods を v1.15.2 に更新しました
- [UPDATE] Sora 2023.2.0 で対応した
ForwardingFilterのversionとmetadataを追加しました - [ADD]
VideoCodecにハードウェアアクセラレーターを利用した HEVC(H.265) の映像を送受信できるようにするコーデック指定H265を追加しました - [ADD] リソースの逼迫により、送信する映像の品質が維持できない場合に、解像度やフレームレートのどちらを維持するかを指定できる設定
degradationPreferenceをWebRTCConfigurationに追加しました- 詳細については CPU やネットワーク帯域等逼迫時における映像品質優先項目の設定 をご確認ください
- [FIX]
ForwardingFilterのactionを未指定にできるように修正しました - [FIX]
SignalingNotifyに項目を追加しましたsessionIdkinddestinationConnectionIdsourceConnectionIdrecvConnectionIdsendConnectionIdstreamId
2023.3.1¶
- 日付:
2023-10-24
- 対応 Sora:
2023.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m116(5845)
- [FIX] AVCaptureDevice.Format の選択時にフレームレートを考慮するように修正しました
- フレームレートに 60 を設定しても、 AVFrameRateRange が 1-30 の AVCaptureDevice.Format が選択されてしまうケースがあったため修正しました
- 修正前は、カメラから同じ解像度の AVCaptureDevice.Format が複数取得された場合、最初に解像度が一致した AVCaptureDevice.Format を選択しており、フレームレートが考慮されていなかったことが原因です
2023.3.0¶
- 日付:
2023-09-13
- 対応 Sora:
2023.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m116(5845)
- [CHANGE]
@available(*, unavailable)アトリビュートの項目を削除しました- Swift 5.9 以降
@available(*, unavailable)アトリビュートが禁止されたことによる対応です - 削除した項目を利用していた場合ビルドエラーが発生するため 利用不可項目の削除について を参照して対応をお願いします
- Swift 5.9 以降
- [CHANGE]
@available(*, deprecated, ... )としていた非推奨項目を削除する- 非推奨であった項目について削除に移行しました
- 削除した項目を利用していた場合ビルドエラーが発生するため 利用不可項目の削除について を参照して対応をお願いします
- [CHANGE]
PeerChannel.swiftとSignalingChannel.swiftのonConnectHandlerをonConnectに置き換えました- 既に他のファイルでは名称変更を行なっていたがこのファイルのみ変更が行われていなかったため対応する
- [UPDATE] WebRTC 116.5845.6.1 に対応しました
- [FIX]
MediaChannelのconnectionCount,publisherCount,subscriberCountに値が設定されない不具合を修正しました- Sora のシグナリングメッセージ、 channel_upstream_connections, channel_downstream_connections が廃止された契機で値が設定されなくなっていました
- Sora のシグナリングメッセージ、channel_sendrecv_connections, channel_sendonly_connections, channel_recvonly_connections, channel_connections を元に値を設定するよう修正
2023.2.0¶
- 日付:
2023-08-01
- 対応 Sora:
2023.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m115(5790)
- [UPDATE] WebRTC 115.5790.7.0 に対応しました
- [UPDATE] システム条件を変更しました
- macOS 13.4.1 以降
- WebRTC SFU Sora 2023.1.0 以降
- Xcode 14.3.1
- Swift 5.8.1
- CocoaPods 1.12.1 以降
- [ADD] サイマルキャストを VP9 / AV1 で利用できるようにしました
- [ADD] 接続時に転送フィルターを指定できるようにしました
ConfigurationにforwardingFilterを追加しました- 詳細は 転送フィルターの設定 をご確認ください
- [ADD] 接続時に映像コーデックパラメーターを指定できるようにしました
ConfigurationにvideoVp9Params,videoAv1Params,videoH264Paramsを追加しました- 詳細は 映像コーデックパラメーターの設定 をご確認ください
2023.1.0¶
- 日付:
2023-04-07
- 対応 Sora:
2022.2.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m112(5615)
- [UPDATE] WebRTC 112.5615.1.0 に対応しました
- [UPDATE] システム条件を変更しました
- macOS 13.3 以降
- Xcode 14.3
- Swift 5.8
- WebRTC SFU Sora 2022.2.0 以降
- [UPDATE]
CameraSettingsのResolutionにuhd2160p,uhd3024pを追加しました - [ADD]
ConfigurationにaudioStreamingLanguageCodeを追加しました - [FIX] m107.5304.4.1 利用時、シグナリング時に EXEC_BAD_ACCESS が発生する事象を修正しました
RTCPeerConnection.offer()に渡すブロック内でRTCPeerConnection.close()を呼んでいるのが原因だと思われるため、 async/await を使って offer() の終了を待ってから close() するよう修正しましたRTCPeerConnection.offer()の実行が非同期で行われるようになりましたが、NativePeerChannelFactory.createClientOfferSDP()の用途では問題はありません