Skip to content

Releases: shiguredo/sora-ios-sdk

2025.2.0

18 Sep 02:44

Choose a tag to compare

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] MediaChannelHandlersonDisconnect: ((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] MediaChannelHandlersonDisconnect: ((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 で通知する
      • ネットワークエラーや Sora がダウンした場合のエラー内容
    • この変更によって MediaChannelHandlers.onDisconnect で受信するメッセージの内容は変わるが、コールバックが発火するタイミングに変更はない
    • @zztkm

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 を汎用ターゲットとして指定した
    • WebRTC Non-public API チェックを Swift Package Manager のビルド成果物のパスに変更
    • 不要な Sora.xcodeproj、Podfile、Gemfile、を削除
      • Sora.xcodeproj があると、Package.swift の依存関係を参照しないため削除した
      • このリポジトリで CocoaPods を利用しなくなるため、Podfile と Gemfile を削除した
    • @zztkm
  • [UPDATE] jazzy の設定ファイルを更新する
    • swift_build_toolxcodebuild を指定して、xcodebuild が使われるように設定した
    • CocoaPods 削除に合わせて xcodebuild_arguments の更新
      • xcodebuild でのビルドのために -destination 'generic/platform=iOS' を追加した
      • Sora.xcworkspace がなくなったため -workspace オプションを削除した
      • xcodebuild 側で iOS 向け SDK を決定してくれるため、-sdk オプションを削除した
      • xcodebuild 側で Swift のコンパイルが行われるため Swift のバージョン指定は不要と判断し swift_version オプションを削除した
    • @zztkm
  • [UPDATE] actions/checkout@v4 を @v5 に上げる
  • [UPDATE] build.yml の release job は運用上利用していないため、削除する
  • [ADD] swift-format と SwiftLint 実行用の Makefile を追加する
    • lint-format.sh で実行していたコマンドを個別に実行できるようにした

2025.1.3

28 Jul 09:13
8f1523b

Choose a tag to compare

2025.1.3

リリース日: 2025-07-28

  • [FIX] Sora の設定が、DataChannel 経由のシグナリングの設定、かつ、WebSocket の切断を Sora への接続が切断したと判断しない設定の場合に、SDP 再交換に失敗することがある問題を修正する
    • WebSocket 経由から DataChannel 経由へのシグナリング切替時に type: switchedtype: re-offer をほぼ同時に受信した際、type: re-answer を WebSocket 経由で送信する前に WebSocket を切断してしまい type: re-answer の送信に失敗することがあるため
    • DataChannel 経由へのシグナリング切替後でも、まだ WebSocket 経由で送信中のメッセージが存在する可能性を考慮し、余裕を持って切断するために 10 秒の待機時間を設けるようにした
    • WebSocket を切断する前に PeerChannel の接続状態を確認する処理を追加し、既に切断されている場合は WebSocket の切断処理を呼ばないようにした
    • @zztkm

2025.1.2

リリース日: 2025-05-07

  • [FIX] マルチストリーム利用時に SDP 再ハンドシェイク中に SDK が終了処理をした際に EXC_BAD_ACCESS (不正なメモリアクセス) によりクラッシュする問題を修正する
    • SDP 再ハンドシェイク処理である createAndSendReAnswercreateAndSendReAnswerOverDataChannel で参照カウンタを加算する lock() の呼び出し位置を以下のように変更
      • 変更前: createAnswer 呼び出し前
      • 変更後: createAnswer の引数である handler (クロージャー) 内
    • これにより、SDP 再ハンドシェイク中に SDK が終了処理をした際に不正なメモリアクセスが発生することがなくなった
    • @zztkm

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 に上げる
  • [UPDATE] SignalingOffer に項目を追加する
    • 追加する項目
      • version
      • simulcastMulticodec
      • spotlight
      • channelId
      • sessionId
      • audio
      • audioCodecType
      • audioBitRate
      • video
      • videoCodecType
      • videoBitRate
    • @zztkm
  • [UPDATE] SignalingNotify に項目を追加する
    • 追加する項目
      • timestamp
      • spotlightNumber
      • failedConnectionId
      • currentState
      • previousState
    • @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

07 May 06:28
53b0a5c

Choose a tag to compare

2025.1.2

リリース日: 2025-05-07

  • [FIX] マルチストリーム利用時に SDP 再ハンドシェイク中に SDK が終了処理をした際に EXC_BAD_ACCESS (不正なメモリアクセス) によりクラッシュする問題を修正する
    • SDP 再ハンドシェイク処理である createAndSendReAnswercreateAndSendReAnswerOverDataChannel で参照カウンタを加算する lock() の呼び出し位置を以下のように変更
      • 変更前: createAnswer 呼び出し前
      • 変更後: createAnswer の引数である handler (クロージャー) 内
    • これにより、SDP 再ハンドシェイク中に SDK が終了処理をした際に不正なメモリアクセスが発生することがなくなった
    • @zztkm

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 に上げる
  • [UPDATE] SignalingOffer に項目を追加する
    • 追加する項目
      • version
      • simulcastMulticodec
      • spotlight
      • channelId
      • sessionId
      • audio
      • audioCodecType
      • audioBitRate
      • video
      • videoCodecType
      • videoBitRate
    • @zztkm
  • [UPDATE] SignalingNotify に項目を追加する
    • 追加する項目
      • timestamp
      • spotlightNumber
      • failedConnectionId
      • currentState
      • previousState
    • @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

23 Jan 08:54

Choose a tag to compare

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

2024.3.0

06 Sep 06:22

Choose a tag to compare

リリース日: 2024-09-06

  • [CHANGE] MediaChannelConfiguration を非推奨にする
    • SDK 内部では利用していないため
    • @zztkm
  • [UPDATE] WebRTC m127.6533.1.1 に上げる
  • [UPDATE] SignalingOffersimulcast を追加する
  • [FIX] SignalingConnect の metadata, signaling_notify_metadata が nil の場合に {} として送信されてしまう問題を修正する
  • [FIX] WrapperVideoEncoderFactory.shared.simulcastEnabled の値を type: offer の際に設定される simulcast の値で上書きする
    • 認証ウェブフック成功時に払い出された type: offer の simulcast の値が反映されない不具合への対応
    • @zztkm
  • [FIX] Configuration.spotlightEnabled はサイマルキャストを有効化するための条件ではないのに、判定条件に加わっていた問題を修正する
    • WrapperVideoEncoderFactory.shared.simulcastEnabled の判定条件から Configuration.spotlightEnabled を削除する
    • 44f3b81 の修正漏れ
    • @zztkm
  • [FIX] URL 構造体が TURN URI に対応していないのに、URL に変換していたのを修正する
    • 意図しないエスケープが発生しないようにした
    • @zztkm

2024.2.0

23 Apr 03:37

Choose a tag to compare

  • [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

26 Feb 08:01

Choose a tag to compare

  • [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

24 Oct 06:42

Choose a tag to compare

  • [FIX] AVCaptureDevice.Format の選択時にフレームレートを考慮するように修正する
    • フレームレートに 60 を設定しても、 AVFrameRateRange が 1-30 の AVCaptureDevice.Format が選択されてしまうケースがあった
    • 修正前は、カメラから同じ解像度の AVCaptureDevice.Format が複数取得された場合、最初に解像度が一致した AVCaptureDevice.Format を選択しており、フレームレートが考慮されていないという問題があった
    • @enm10k

2023.3.0

13 Sep 02:54

Choose a tag to compare

  • [CHANGE] @available(*, unavailable) は廃止になるため削除する
    • Swift 5.9 以降 @available(*, unavailable) が禁止された
    • Sora iOS SDK では廃止となったプロパティに対して @available(*, unavailable) を付与していたが、削除した
    • @torikizi
  • [CHANGE] @available(*, deprecated, ... ) としていた非推奨項目を削除する
  • [CHANGE] 廃止された onConnectHandleronConnect に置き換える
    • すでに廃止済みの onConnectHandler が残っていたので、onConnect に置き換えた
    • PeerChannel.swiftSignalingChannel.swift 以外はすでに onConnect に置き換えていた
    • @torikizi
  • [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 を元に値を設定するよう修正
    • @miosakuma

2023.2.0

01 Aug 07:22

Choose a tag to compare

  • [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] 転送フィルター機能を追加する
    • ConfigurationforwardingFilter を追加する
    • @szktty
  • [ADD] 映像コーデックパラメーターの設定を追加する
    • ConfigurationvideoVp9Params, videoAv1Params, videoH264Params を追加する
    • @miosakuma
  • [ADD] サイマルキャストを VP9 / AV1 に対応する