リリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2025.2.0¶
- 日付:
2025-09-18
- 対応 Sora:
2025.1.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m138.7204.0.3
ハイライト¶
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
が有効な場合に受信することができます
[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.5.2
[FIX] Sora の設定が、DataChannel 経由のシグナリングの設定、かつ、WebSocket の切断を Sora への接続が切断したと判断しない設定の場合に、SDP 再交換に失敗することがある問題を修正しました
WebSocket 経由から DataChannel 経由へのシグナリング切替時に
type: switched
とtype: 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.5.2
[FIX] マルチストリーム利用時に SDP 再ハンドシェイク中に SDK が終了処理をした際に EXC_BAD_ACCESS (不正なメモリアクセス) によりクラッシュする問題を修正しました
2025.1.1¶
- 日付:
2025-01-23
- 対応 Sora:
2024.2.0 以降
- 対応 iOS:
14.0 以降
- 対応 libwebrtc:
m132.6834.5.2
[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.5.1
[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 時にリスト形式の転送フィルターを設定するための項目を追加しました
Configuration
とSignalingConnect
にforwardingFilters
を追加しました
2024.3.0¶
- 日付:
2024-09-06
- 対応 Sora:
2024.1.0 以降
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m127.6533.1.1
[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.1.0
[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.4.0
[CHANGE] Sora 2022.1.0 にて
metadata_list
が廃止されたのに伴い、SignalingNotify
のmetadataList
を削除しました代わりに
SignalingNotify
のdata
で値を取得できます
[CHANGE] VideoView のバックエンドを RTCEAGLVideoView から RTCMTLVideoView に変更しました
libwebrtc のアップデートに伴い
RTCEAGLVideoView
がdeprecated
になったことに伴う修正です
[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
に項目を追加しましたsessionId
kind
destinationConnectionId
sourceConnectionId
recvConnectionId
sendConnectionId
streamId
2023.3.1¶
- 日付:
2023-10-24
- 対応 Sora:
2023.1.0
- 対応 iOS:
13.0 以降
- 対応 libwebrtc:
m116.5845.6.1
[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.6.1
[CHANGE]
@available(*, unavailable)
アトリビュートの項目を削除しましたSwift 5.9 以降
@available(*, unavailable)
アトリビュートが禁止されたことによる対応です削除した項目を利用していた場合ビルドエラーが発生するため 利用不可項目の削除について を参照して対応をお願いします
[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.7.0
[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.1.0
[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()
の用途では問題はありません