リリースノート

CHANGE

後方互換性のない変更

UPDATE

後方互換性がある変更

ADD

後方互換性がある追加

FIX

バグ修正

2026.3.0

日付:

2026-09-10

対応 Sora:

2025.2.0 以降

対応 iOS:

14.0 以降

対応 libwebrtc:

m150(7871)

ハイライト

非推奨情報

  • TLSSecurityPolicy および ICEServerInfo.tlsSecurityPolicy を非推奨にしました
    • WebSocket シグナリング、 TURN-TLS の両方においてサーバー証明書検証を無効化するための移行先として Configuration.insecure を追加しました
  • 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 を追加しました
  • [ADD] Configurationinsecure を追加しました
  • [ADD] Configuration にスポットライト機能を有効にする isSpotlightEnabled を追加しました
    • Enum 値で指定する spotlightEnabled から Bool 値で指定する isSpotlightEnabled へ移行のため追加しました
    • 詳細は スポットライト機能 をご確認ください
  • [ADD] MediaChannelHandlers.onDataChannelOpened を追加しました
    • ラベルを限定せず、クライアントが受け取った DataChannel がラベルごとにクライアント側で OPEN になったタイミングで 1 回ずつ発火します
    • onDataChannel がリアルタイムメッセージング用 DataChannel の利用開始をまとめて通知するのに対し、 onDataChannelOpened はラベルごとの OPEN を通知します
    • 詳細は リアルタイムメッセージング機能 および コールバック をご確認ください
  • [FIX] 初期マイクミュートの初回解除時にマイク入力が開始されない問題を修正しました
    • SDK 側の音声ハードミュート状態キャッシュにより解除要求が AudioDeviceModule に渡らない問題を修正しました
  • [FIX] TURN-TLS の証明書エラーによる接続失敗後も libwebrtc のログが流れ続ける問題を修正しました
    • 接続試行中に切断要求を受け取った場合、接続開始時のロックを解放し、 RTCPeerConnection を閉じるようにしました
    • 接続失敗時のエラー通知が複数回呼ばれないようにしました
  • [FIX] 受信中にネットワークが切断されてもエラー通知がない問題を修正しました
    • 接続完了後に RTCPeerConnectionState.disconnected のまま停滞した場合、5 秒の猶予後に切断するようにしました
    • 切断時はシグナリング経由で明示的な切断メッセージを送信します
  • [FIX] ConnectionTask の即時キャンセルが接続開始を止めない競合を修正しました
    • 接続開始前にキャンセルされた場合、以前は接続が開始されていました。接続を開始せず SoraError.connectionCancelled を通知するようにしました
    • 接続完了時もキャンセル済みか確認し、キャンセル後は接続成功を通知しないようにしました
  • [FIX] PeerChannel の接続完了ハンドラーが二重実行または未実行になる問題を修正しました
    • SDP の生成エラーが sdpError として利用者に伝わるようにしました
    • 接続成功、失敗、切断の各経路で完了ハンドラーを 1 回だけ実行するようにしました
  • [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_tokentokensecretauthorizationcredential を含むキーの値はログ上で *** に置換されます
  • [UPDATE] WebRTC m150.7871.3.0 に上げました
  • [UPDATE] Swift 6 言語モードでのビルドに対応しました
    • 公開型の一部を Sendable に対応しました
      • SoraRoleSignalingRoleProxyDeviceInfoLogger 等が該当します
      • 今回の変更で 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 に含まれる networkPriorityRTCRtpEncodingParameters に反映するようにしました
    • 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 機能に対応しました
  • MediaChannel に libwebrtc の統計情報を取得する getStats メソッドを追加しました

非推奨情報

  • Configuration.simulcastRid を非推奨にしました
    • 2027 年 12 月リリースの Sora にて、シグナリング接続時の simulcast_rid が廃止予定であるため非推奨にしました
    • 移行先は Configuration.simulcastRequestRid です

変更履歴

  • [UPDATE] WebRTC m144.7559.2.2 に上げました
  • [UPDATE] PeerChannel.initializeAudioInput での音声入力初期化時にマイク入力をミュートするか設定できるようにしました
  • [UPDATE] VideoHardMuteActor での映像ハードミュート解除時に、カメラキャプチャ未起動なら開始するようにしました
  • [UPDATE] StatisticsStatisticsEntry を 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] MediaStreamRTCAudioTrackSinkRTCAudioTrack と関連付ける / 関連付けを解除するためのメソッドを追加しました
    • 関連付けるためのメソッド: addAudioTrackSink(_ sink: RTCAudioTrackSink)
    • 関連付けを解除するためのメソッド: removeAudioTrackSink(_ sink: RTCAudioTrackSink)
  • [ADD] シグナリング接続時に視聴するストリームの rid を指定する Configuration.simulcastRequestRid: SimulcastRequestRid を追加しました
    • rid を指定できる値の列挙型として SimulcastRequestRid を追加しました
    • デフォルト値の unspecified の場合は、シグナリングパラメーターに simulcast_request_rid を含めません
    • この設定は role が sendrecv または recvonly の場合、かつ simulcast が true の場合にのみ有効です
  • [ADD] サイマルキャストの rid を表す汎用型 Rid 列挙型を追加しました
  • [ADD] RPC 機能を追加しました
    • SignalingOfferrpcMethods: [String]? を追加しました
    • MediaChannelrpc メソッドを追加しました
    • RPC メソッドを定義するための RPCMethodProtocol プロトコルを追加しました
    • RPCMethodProtocol に準拠した以下の型を追加しました
      • RequestSimulcastRid
      • RequestSpotlightRid
      • ResetSpotlightRid
      • PutSignalingNotifyMetadata
      • PutSignalingNotifyMetadataItem
    • RPC エラー応答の詳細を表す RPCErrorDetail 構造体を追加しました
    • RPC 成功応答を表す RPCResponse<Result> ジェネリック構造体を追加しました
    • SoraError に RPC 関連のエラーケースを追加しました

2025.2.0

日付:

2025-09-18

対応 Sora:

2025.1.0 以降

対応 iOS:

14.0 以降

対応 libwebrtc:

m138(7204)

ハイライト

  • MediaChannelHandlersonDisconnect: ((SoraCloseEvent) -> Void)? を追加しました
    • onDisconnect: ((Error?) -> Void)?onDisconnectLegacy という名前に変更され、非推奨になりました
    • 既存の onDisconnect: ((Error?) -> Void)? では異常発生時のエラーは取得できても、正常に終了した際の理由などを取得することができませんでした
    • onDisconnect: ((SoraCloseEvent) -> Void)? を利用することで、正常に終了した際のステータスコードと理由も取得できるようになります
    • onDisconnect: ((Error?) -> Void)? からの移行については onDisconnect: ((Error?) -> Void)? から onDisconnect: ((SoraCloseEvent) -> Void)? への移行 をご確認ください

破壊的変更

非推奨情報

  • Configuration.multistreamEnabled を非推奨にしました
    • Sora 2025.1.0 でレガシーストリームが廃止されたため、この項目を非推奨にしました
    • 合わせて Configuration のイニシャライザの multistreamEnabled をオプション引数にし、デフォルト値を nil に変更しました
    • 2027 年中に削除予定です

変更履歴

  • [CHANGE] 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] MediaChannelHandlersonDisconnect: ((Error?) -> Void)?onDisconnectLegacy という名前に変更し、非推奨にしました
  • [UPDATE] WebRTC m138.7204.0.3 に上げました
  • [UPDATE] Configuration.multistreamEnabled を非推奨にしました
    • Configuration のイニシャライザの multistreamEnabled をオプション引数にし、デフォルト値を nil に変更しました
    • Sora のデフォルト挙動に合わせる場合は、 Configuration のイニシャライザで mutlistreamEnabled を指定しないようにしてください
  • [UPDATE] Sora との接続が終了したときの状態を表す SoraCloseEvent (enum) を追加しました
  • [UPDATE] MediaChannelHandlersonDisconnect: ((SoraCloseEvent) -> Void)? を追加しました
  • [ADD] サイマルキャストの映像のエンコーディングパラメーター scaleResolutionDownTo を追加しました
  • [ADD] Sora から DataChannel シグナリングを切断する際に "type": "close" メッセージを受信する機能を追加しました
    • DataChannel シグナリングが有効、かつ ignore_disconnect_websocket が true、かつ Sora の設定で data_channel_signaling_close_message が有効な場合に受信することができます
  • [FIX] Sora から切断された場合の切断処理を修正し適切なエラーを MediaChannelHandlers.onDisconnect で受け取ることができるようになりました
    • Sora iOS SDK 2025.1.1 までは Sora から Close Frame を受け取ったり、ネットワークエラーが起きたりしても、WebSocket メッセージ受信失敗に起因する SoraError.webSocketError しか受信できませんでしたが、以下の内容を受信できるようになりました
      • Sora から Close Frame を受け取った場合のステータスコードと理由
        • ステータスコードが 1000 で正常に切断された場合も MediaChannelHandlers.onDisconnect で通知されます
      • ネットワークエラーや Sora がダウンした場合のエラー内容
    • いままでは WebSocket メッセージ受信失敗時のエラーである The operation couldn’t be completed. Socket is not connected というエラーしか返せていなかった状態が改善されました
    • この変更によって MediaChannelHandlers.onDisconnect で受信するメッセージの内容は変わりますが、コールバックが発火するタイミングに変更はありません

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: switchedtype: re-offer をほぼ同時に受信した際、type: re-answer を WebSocket 経由で送信する前に WebSocket を切断してしまい type: re-answer の送信に失敗することがあるためです
    • DataChannel 経由へのシグナリング切替後でも、まだ WebSocket 経由で送信中のメッセージが存在する可能性を考慮し、余裕を持って切断するために 10 秒の待機時間を設けるようにしました

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 に以下の項目を追加しました
    • version
    • simulcastMulticodec
    • spotlight
    • channelId
    • sessionId
    • audio
    • audioCodecType
    • audioBitRate
    • video
    • videoCodecType
    • videoBitRate
  • [UPDATE] SignalingNotify に以下の項目を追加しました
    • timestamp
    • spotlightNumber
    • failedConnectionId
    • currentState
    • previousState
  • [ADD] ForwardingFilter に name と priority を追加しました
  • [ADD] シグナリング connect 時にリスト形式の転送フィルターを設定するための項目を追加しました
    • ConfigurationSignalingConnectforwardingFilters を追加しました

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] SignalingOffersimulcast: 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 が廃止されたのに伴い、 SignalingNotifymetadataList を削除しました
    • 代わりに SignalingNotifydata で値を取得できます
  • [CHANGE] VideoView のバックエンドを RTCEAGLVideoView から RTCMTLVideoView に変更しました
    • libwebrtc のアップデートに伴い RTCEAGLVideoViewdeprecated になったことに伴う修正です
  • [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 で対応した ForwardingFilterversionmetadata を追加しました
  • [ADD] VideoCodec にハードウェアアクセラレーターを利用した HEVC(H.265) の映像を送受信できるようにするコーデック指定 H265 を追加しました
  • [ADD] リソースの逼迫により、送信する映像の品質が維持できない場合に、解像度やフレームレートのどちらを維持するかを指定できる設定 degradationPreferenceWebRTCConfiguration に追加しました
  • [FIX] ForwardingFilteraction を未指定にできるように修正しました
  • [FIX] SignalingNotify に項目を追加しました
    • sessionId
    • kind
    • destinationConnectionId
    • sourceConnectionId
    • recvConnectionId
    • sendConnectionId
    • streamId

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) アトリビュートが禁止されたことによる対応です
    • 削除した項目を利用していた場合ビルドエラーが発生するため 利用不可項目の削除について を参照して対応をお願いします
  • [CHANGE] @available(*, deprecated, ... ) としていた非推奨項目を削除する
    • 非推奨であった項目について削除に移行しました
    • 削除した項目を利用していた場合ビルドエラーが発生するため 利用不可項目の削除について を参照して対応をお願いします
  • [CHANGE] PeerChannel.swiftSignalingChannel.swiftonConnectHandleronConnect に置き換えました
    • 既に他のファイルでは名称変更を行なっていたがこのファイルのみ変更が行われていなかったため対応する
  • [UPDATE] WebRTC 116.5845.6.1 に対応しました
  • [FIX] MediaChannelconnectionCount, 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] 接続時に転送フィルターを指定できるようにしました
  • [ADD] 接続時に映像コーデックパラメーターを指定できるようにしました

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] CameraSettingsResolutionuhd2160p, uhd3024p を追加しました
  • [ADD] ConfigurationaudioStreamingLanguageCode を追加しました
  • [FIX] m107.5304.4.1 利用時、シグナリング時に EXEC_BAD_ACCESS が発生する事象を修正しました
    • RTCPeerConnection.offer() に渡すブロック内で RTCPeerConnection.close() を呼んでいるのが原因だと思われるため、 async/await を使って offer() の終了を待ってから close() するよう修正しました
    • RTCPeerConnection.offer() の実行が非同期で行われるようになりましたが、 NativePeerChannelFactory.createClientOfferSDP() の用途では問題はありません