Releases: shiguredo/sora-ios-sdk
Releases · shiguredo/sora-ios-sdk
2025.2.0
2025.2.0
リリース日: 2025-09-18
- [CHANGE] connect メッセージの
multistreamを true 固定で送信する処理を削除する破壊的変更- Configuration.role に .sendrecv を指定している場合に multistream を true に更新する処理を削除
- Configuration.spotlightEnabled に .enabled を指定している場合に multistream を true に更新する処理を削除
- 結果、connect メッセージには Configuration.multistreamEnabled に指定した値が送信される
- 今後は Configuration.role に .sendrecv を指定している場合または Configuration.spotlightEnabled に .enabled を指定している場合に Configuration.multistreamEnabled に false を指定すると接続エラーになる
- @zztkm
- [CHANGE]
MediaChannelHandlersのonDisconnect: ((Error?) -> Void)?をonDisconnectLegacyという名前に変更し、非推奨にするonDisconnect: ((SoraCloseEvent) -> Void)?に移行するため、名前を変更した- @zztkm
- [CHANGE] CocoaPods でのライブラリ提供を廃止する
Sora.podspecを削除した- @zztkm
- [UPDATE] WebRTC m138.7204.0.3 に上げる
- [UPDATE]
Configuration.multistreamEnabledを非推奨にする- 合わせて
Configurationのイニシャライザの multistreamEnabled をオプション引数にし、デフォルト値を nil に変更 - @zztkm
- 合わせて
- [UPDATE] WebRTCConfigration.swift を WebRTCConfiguration.swift にリネームする
- [UPDATE] Sora との接続を終了した際のイベント情報を表す、SoraCloseEvent を追加する
- [UPDATE]
MediaChannelHandlersにonDisconnect: ((SoraCloseEvent) -> Void)?を追加する - [ADD] サイマルキャストの映像のエンコーディングパラメーター
scaleResolutionDownToを追加する - [ADD] Sora から DataChannel シグナリングを切断する際に "type": "close" メッセージを受信する機能を追加する
- DataChannel シグナリングが有効、かつ ignore_disconnect_websocket が true、かつ Sora の設定で data_channel_signaling_close_message が有効な場合に受信することが可能
- "type": "close" に対応するため、
Signalingのケースにcloseを追加したcloseの associated value の型であるSignalingClose構造体を追加した
SoraErrorに DataChannel シグナリングで "type": "close" を受信して接続が解除されたことを表すケースであるdataChannelClosedを追加した- @zztkm
- [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 を受け取った場合のステータスコードと理由
- この変更によって
MediaChannelHandlers.onDisconnectで受信するメッセージの内容は変わるが、コールバックが発火するタイミングに変更はない - @zztkm
- Sora iOS SDK 2025.1.1 までは Sora から Close Frame を受け取ったり、ネットワークエラーが起きたりしても、WebSocket メッセージ受信失敗に起因する
misc
- [CHANGE] フォーマッターを swift-format に移行する
- SwiftFormat のための設定ファイルである .swiftformat と .swift-version を削除
- フォーマット設定はデフォルトを採用したため、.swift-format は利用しない
- swift-format のデフォルト設定で、format lint を行った結果、警告が出た部分はすべて修正
- JSON デコード処理に使う JSON のキー名を指定するための enum の定義については、
AlwaysUseLowerCamelCaseルールを無効化するためのコメントを追加- シグナリングメッセージのキー名にスネークケースが採用されている項目があるため、この対応を行った
- @zztkm
- [UPDATE] システム条件を変更する
- CocoaPods 廃止に伴いシステム条件から削除
- WebRTC SFU Sora 2025.1.0 以降
- @zztkm
- [UPDATE] SwiftLint の管理を CocoaPods から Swift Package Manager に移行する
- [UPDATE] 開発用の依存管理を Swift Package Manager に移行したため Podfile.dev を削除する
- GitHub Actions で Podfile.dev を利用していたため、利用しないように変更
- @zztkm
- [UPDATE] GitHub Actions で Lint と Format Lint を行うコマンドを Makefile に変更
- 今まで lint-format.sh で一括実行したところを Makefile に移行したので、GitHub Actions でも Makefile を利用するように変更
- @zztkm
- [UPDATE] フォーマッターとリンターの実行を Makefile に移行したため、不要になった lint-format.sh を削除
- [UPDATE] GitHub Actions のビルド環境を更新する
- Xcode の version を 16.3 に変更
- SDK を iOS 18.4 に変更
- @zztkm
- [UPDATE] CocoaPods の廃止対応のため、canary.py から Sora.podspec の更新処理を削除する
- [UPDATE] フォーマッターの設定に合わせて canary.py で PackageInfo.swift に書き込む際のスペースを 4 から 2 に変更する
- [UPDATE] canary.py でファイルの読み書きを行う際の encoding を明示的に utf-8 に設定する
- Windows 環境で canary.py を実行した際に、予期せぬ文字化けが発生してしまうため修正を行った
- @zztkm
- [UPDATE] GitHub Actions での CI で依存関係の解決を Swift Package Manager で行うようにする
- CocoaPods 関連のステップ(Show CocoaPods Version、Restore Pods、Install Dependences)を削除
- xcodebuild コマンドから -workspace オプションを削除し、-scheme のみを使用するように変更
- xcodebuild に -destination 'generic/platform=iOS' オプションを追加
- GitHub Actions では実機デバイスが存在しないので、特定のデバイスを指定するのではなく
generic/をつけて iOS を汎用ターゲットとして指定した
- GitHub Actions では実機デバイスが存在しないので、特定のデバイスを指定するのではなく
- WebRTC Non-public API チェックを Swift Package Manager のビルド成果物のパスに変更
- 不要な Sora.xcodeproj、Podfile、Gemfile、を削除
Sora.xcodeprojがあると、Package.swift の依存関係を参照しないため削除した- このリポジトリで CocoaPods を利用しなくなるため、Podfile と Gemfile を削除した
- @zztkm
- [UPDATE] jazzy の設定ファイルを更新する
swift_build_toolにxcodebuildを指定して、xcodebuild が使われるように設定した- CocoaPods 削除に合わせて
xcodebuild_argumentsの更新- xcodebuild でのビルドのために
-destination 'generic/platform=iOS'を追加した - Sora.xcworkspace がなくなったため
-workspaceオプションを削除した - xcodebuild 側で iOS 向け SDK を決定してくれるため、
-sdkオプションを削除した - xcodebuild 側で Swift のコンパイルが行われるため Swift のバージョン指定は不要と判断し
swift_versionオプションを削除した
- xcodebuild でのビルドのために
- @zztkm
- [UPDATE] actions/checkout@v4 を
@v5に上げる - [UPDATE] build.yml の
releasejob は運用上利用していないため、削除する - [ADD] swift-format と SwiftLint 実行用の Makefile を追加する
- lint-format.sh で実行していたコマンドを個別に実行できるようにした
2025.1.3
2025.1.3
リリース日: 2025-07-28
- [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 を切断する前に PeerChannel の接続状態を確認する処理を追加し、既に切断されている場合は WebSocket の切断処理を呼ばないようにした
- @zztkm
- WebSocket 経由から DataChannel 経由へのシグナリング切替時に
2025.1.2
リリース日: 2025-05-07
- [FIX] マルチストリーム利用時に SDP 再ハンドシェイク中に SDK が終了処理をした際に EXC_BAD_ACCESS (不正なメモリアクセス) によりクラッシュする問題を修正する
- SDP 再ハンドシェイク処理である
createAndSendReAnswerとcreateAndSendReAnswerOverDataChannelで参照カウンタを加算する lock() の呼び出し位置を以下のように変更- 変更前: createAnswer 呼び出し前
- 変更後: createAnswer の引数である handler (クロージャー) 内
- これにより、SDP 再ハンドシェイク中に SDK が終了処理をした際に不正なメモリアクセスが発生することがなくなった
- @zztkm
- SDP 再ハンドシェイク処理である
2025.1.1
リリース日: 2025-01-23
- [FIX] WebRTC m132.6834.5.2 に上げる
- Apple 非公開 API を利用していたため、App Store Connect へのアップロードに失敗する問題に対応
- @zztkm
2025.1.0
リリース日: 2025-01-21
- [UPDATE] WebRTC m132.6834.5.1 に上げる
- [UPDATE] システム条件の iOS を 14.0 に上げる
- IPHONEOS_DEPLOYMENT_TARGET を 14.0 に上げる
- SwiftPM の platforms の設定を v14 に上げる
- CocoaPods の platform の設定を 14.0 に上げる
- libwebrtc の対象バージョンに追従した
- @miosakuma
- [UPDATE] SignalingOffer に項目を追加する
- 追加する項目
versionsimulcastMulticodecspotlightchannelIdsessionIdaudioaudioCodecTypeaudioBitRatevideovideoCodecTypevideoBitRate
- @zztkm
- 追加する項目
- [UPDATE] SignalingNotify に項目を追加する
- 追加する項目
timestampspotlightNumberfailedConnectionIdcurrentStatepreviousState
- @zztkm
- 追加する項目
- [ADD]
ForwardingFilterに name と priority を追加する - [ADD] シグナリング connect 時にリスト形式の転送フィルターを設定するための項目を追加する
Configuration,SignalingConnectに forwardingFilters を追加する- @zztkm
misc
- [CHANGE] GitHub Actions の ubuntu-latest を ubuntu-24.04 に変更する
- [UPDATE] システム条件を変更する
- iOS 14 以降
- Xcode 16.0
- macOS の条件を外す
- Xcode とほぼ同時更新なので一旦不要と判断
- @miosakuma
- [UPDATE] GitHub Actions のビルド環境を更新する
- runner を macos-15 に変更
- Xcode の version を 16.2 に変更
- SDK を iOS 18.2 に変更
- @zztkm
- [UPDATE] jazzy の設定ファイルを更新する
swift_versionを 6.0.3 に変更xcodebuild_argumentsの iphoneos を 18.2 に変更- @zztkm
- [ADD] canary.py を追加する
2025.1.2
2025.1.2
リリース日: 2025-05-07
- [FIX] マルチストリーム利用時に SDP 再ハンドシェイク中に SDK が終了処理をした際に EXC_BAD_ACCESS (不正なメモリアクセス) によりクラッシュする問題を修正する
- SDP 再ハンドシェイク処理である
createAndSendReAnswerとcreateAndSendReAnswerOverDataChannelで参照カウンタを加算する lock() の呼び出し位置を以下のように変更- 変更前: createAnswer 呼び出し前
- 変更後: createAnswer の引数である handler (クロージャー) 内
- これにより、SDP 再ハンドシェイク中に SDK が終了処理をした際に不正なメモリアクセスが発生することがなくなった
- @zztkm
- SDP 再ハンドシェイク処理である
2025.1.1
リリース日: 2025-01-23
- [FIX] WebRTC m132.6834.5.2 に上げる
- Apple 非公開 API を利用していたため、App Store Connect へのアップロードに失敗する問題に対応
- @zztkm
2025.1.0
リリース日: 2025-01-21
- [UPDATE] WebRTC m132.6834.5.1 に上げる
- [UPDATE] システム条件の iOS を 14.0 に上げる
- IPHONEOS_DEPLOYMENT_TARGET を 14.0 に上げる
- SwiftPM の platforms の設定を v14 に上げる
- CocoaPods の platform の設定を 14.0 に上げる
- libwebrtc の対象バージョンに追従した
- @miosakuma
- [UPDATE] SignalingOffer に項目を追加する
- 追加する項目
versionsimulcastMulticodecspotlightchannelIdsessionIdaudioaudioCodecTypeaudioBitRatevideovideoCodecTypevideoBitRate
- @zztkm
- 追加する項目
- [UPDATE] SignalingNotify に項目を追加する
- 追加する項目
timestampspotlightNumberfailedConnectionIdcurrentStatepreviousState
- @zztkm
- 追加する項目
- [ADD]
ForwardingFilterに name と priority を追加する - [ADD] シグナリング connect 時にリスト形式の転送フィルターを設定するための項目を追加する
Configuration,SignalingConnectに forwardingFilters を追加する- @zztkm
misc
- [CHANGE] GitHub Actions の ubuntu-latest を ubuntu-24.04 に変更する
- [UPDATE] システム条件を変更する
- iOS 14 以降
- Xcode 16.0
- macOS の条件を外す
- Xcode とほぼ同時更新なので一旦不要と判断
- @miosakuma
- [UPDATE] GitHub Actions のビルド環境を更新する
- runner を macos-15 に変更
- Xcode の version を 16.2 に変更
- SDK を iOS 18.2 に変更
- @zztkm
- [UPDATE] jazzy の設定ファイルを更新する
swift_versionを 6.0.3 に変更xcodebuild_argumentsの iphoneos を 18.2 に変更- @zztkm
- [ADD] canary.py を追加する
2025.1.1
2025.1.1
リリース日: 2025-01-23
- [FIX] WebRTC m132.6834.5.2 に上げる
- Apple 非公開 API を利用していたため、App Store Connect へのアップロードに失敗する問題に対応
- @zztkm
2025.1.0
2025.1.0 は App Store Connect へのアップロードに失敗する問題が含まれているためリリースを取り下げています。 2025.1.1 を利用してください。
リリース日: 2025-01-21
- [UPDATE] WebRTC m132.6834.5.1 に上げる
- [UPDATE] システム条件の iOS を 14.0 に上げる
- IPHONEOS_DEPLOYMENT_TARGET を 14.0 に上げる
- SwiftPM の platforms の設定を v14 に上げる
- CocoaPods の platform の設定を 14.0 に上げる
- libwebrtc の対象バージョンに追従した
- @miosakuma
- [UPDATE] SignalingOffer に項目を追加する
- 追加する項目
versionsimulcastMulticodecspotlightchannelIdsessionIdaudioaudioCodecTypeaudioBitRatevideovideoCodecTypevideoBitRate
- @zztkm
- 追加する項目
- [UPDATE] SignalingNotify に項目を追加する
- 追加する項目
timestampspotlightNumberfailedConnectionIdcurrentStatepreviousState
- @zztkm
- 追加する項目
- [ADD]
ForwardingFilterに name と priority を追加する - [ADD] シグナリング connect 時にリスト形式の転送フィルターを設定するための項目を追加する
Configuration,SignalingConnectに forwardingFilters を追加する- @zztkm
2024.3.0
リリース日: 2024-09-06
- [CHANGE]
MediaChannelConfigurationを非推奨にする- SDK 内部では利用していないため
- @zztkm
- [UPDATE] WebRTC m127.6533.1.1 に上げる
- [UPDATE]
SignalingOfferにsimulcastを追加する - [FIX] SignalingConnect の
metadata,signaling_notify_metadataが nil の場合に {} として送信されてしまう問題を修正する - [FIX]
WrapperVideoEncoderFactory.shared.simulcastEnabledの値を type: offer の際に設定される simulcast の値で上書きする- 認証ウェブフック成功時に払い出された type: offer の
simulcastの値が反映されない不具合への対応 - @zztkm
- 認証ウェブフック成功時に払い出された type: offer の
- [FIX]
Configuration.spotlightEnabledはサイマルキャストを有効化するための条件ではないのに、判定条件に加わっていた問題を修正する - [FIX] URL 構造体が TURN URI に対応していないのに、URL に変換していたのを修正する
- 意図しないエスケープが発生しないようにした
- @zztkm
2024.2.0
- [CHANGE] シグナリング
connectメッセージのlibwebrtcに含まれるバージョン文字列を Android と揃える- branch-heads を追加する
- () 内の libwebrtc バージョンについて最初の 1 文字を削る
- 送信される文字列は
Shiguredo-build M122 (M122.1.0 6b419a0)から、Shiguredo-build M122 (122.6261.1.0 6b419a0)に変更される
- [UPDATE] WebRTC m122.6261.1.0 に上げる
- [UPDATE] システム条件を変更する
- macOS 14.4.1 以降
- Xcode 15.3
- Swift 5.10
- @miosakuma
2024.1.0
- [CHANGE] SignalingNotify の metadataList を削除する
- 2022.1.0 の Sora で metadata_list が廃止されたため
- SignalingNotify の data で値の取得が可能
- @miosakuma
- [CHANGE] VideoView のバックエンドを RTCEAGLVideoView から RTCMTLVideoView に変更する
- WebRTC のアップデートに伴い RTCEAGLVideoView が deprecated になったことに伴う修正
- @miosakuma
- [UPDATE] システム条件を変更する
- macOS 14.3.1 以降
- WebRTC SFU Sora 2023.2.0 以降
- Xcode 15.2
- Swift 5.9.2
- CocoaPods 1.15.2 以降
- @miosakuma
- [UPDATE] CameraVideoCapturer のログを出力する
- [UPDATE] WebRTC 121.6167.4.0 に上げる
- [UPDATE] 解像度に qHD (960x540) を追加する
- [UPDATE] CocoaPods を v1.15.2 に更新する
- [UPDATE] ForwardingFilter に version と metadata を追加する
- [ADD] VideoCodec に H265 を追加する
- [ADD] WebRTCConfiguration に degradationPreference を追加する
- [FIX] ForwardingFilter の action を未指定にできるようにする
- [FIX] SignalingNotify に項目を追加する
- sessionId
- kind
- destinationConnectionId
- sourceConnectionId
- recvConnectionId
- sendConnectionId
- streamId
- @miosakuma
2023.3.1
2023.3.0
- [CHANGE]
@available(*, unavailable)は廃止になるため削除する- Swift 5.9 以降
@available(*, unavailable)が禁止された - Sora iOS SDK では廃止となったプロパティに対して
@available(*, unavailable)を付与していたが、削除した - @torikizi
- Swift 5.9 以降
- [CHANGE]
@available(*, deprecated, ... )としていた非推奨項目を削除する- 非推奨であった項目について削除に移行する
- 移行方法については https://sora-ios-sdk.shiguredo.jp/ の移行ドキュメントに記載されている
- @torikizi
- [CHANGE] 廃止された
onConnectHandlerをonConnectに置き換える- すでに廃止済みの
onConnectHandlerが残っていたので、onConnectに置き換えた PeerChannel.swiftとSignalingChannel.swift以外はすでにonConnectに置き換えていた- @torikizi
- すでに廃止済みの
- [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 を元に値を設定するよう修正
- @miosakuma
2023.2.0
- [UPDATE] システム条件を変更する
- macOS 13.4.1 以降
- WebRTC SFU Sora 2023.2.0 以降
- Xcode 14.3.1
- Swift 5.8.1
- CocoaPods 1.12.1 以降
- @miosakuma
- [UPDATE] WebRTC 115.5790.7.0 に上げる
- [ADD] 転送フィルター機能を追加する
ConfigurationにforwardingFilterを追加する- @szktty
- [ADD] 映像コーデックパラメーターの設定を追加する
ConfigurationにvideoVp9Params,videoAv1Params,videoH264Paramsを追加する- @miosakuma
- [ADD] サイマルキャストを VP9 / AV1 に対応する