セットアップ

システム条件

Sora iOS SDK を利用するアプリケーションの開発に必要なシステム条件を次に示します。

  • iOS 10.0 以降

  • アーキテクチャ arm64, x86_64 (シミュレーターの動作は未保証)

  • macOS 10.15 以降

  • Xcode 11.6

  • Swift 5.2.4

  • CocoaPods 1.8.4 以降

  • WebRTC SFU Sora 2020.1 以降

重要

Carthage のサポートは廃止されました。今後は CocoaPods に移行してください。

Xcode プロジェクトのセットアップ

CocoaPods を利用する

Spec リポジトリを登録する (初回のみ)

Sora iOS SDK は専用の Spec リポジトリで配布しています。 CocoaPods を利用する際は、次の手順で Spec リポジトリをローカルの環境に登録してください。

  1. Spec リポジトリをローカルの Spec リポジトリに登録します。

    $ pod repo add sora-ios-sdk-specs https://github.com/shiguredo/sora-ios-sdk-specs.git
    
  2. Spec のリストを更新します。

    $ pod repo update
    

以上の操作が必要になるのは初回のみです。 プロジェクト生成のたびに実行する必要はありません。

Podfile を用意する

  1. 先頭に次の記述を追加します。 Sora iOS SDK の Spec リポジトリから検索するようにします。

    source 'https://github.com/shiguredo/sora-ios-sdk-specs.git'
    source 'https://github.com/CocoaPods/Specs.git'
    
  2. Sora iOS SDK を利用するターゲットに pod 'Sora', VERSION の形式で Sora ライブラリを追加します。以下に例を示します。

    source 'https://github.com/shiguredo/sora-ios-sdk-specs.git'
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '10.0'
    
    target 'SoraQuickStart' do
      use_frameworks!
      pod 'Sora', '2020.5'
    end
    
  3. pod install を実行してライブラリをインストールします。

Carthage を利用する (2020.1 以前)

重要

Carthage のサポートは 2020.1 で終了しました。今後は CocoaPods を利用してください。

Cartfile を用意する

Xcode プロジェクトファイル (.xcodeproj) と同じディレクトリに、次の内容を記述した Cartfile を配置します。

Cartfile:

github "shiguredo/sora-ios-sdk" "2.6.0"
github "shiguredo/shiguredo-webrtc-ios" "78.8.0"
github "shiguredo/SocketRocket" "0.5.1-carthage.1"

ライブラリをダウンロードする

Cartfile のあるトップレベルのディレクトリで次のコマンドを実行し、 Carthage でライブラリをダウンロードします。 ライブラリのダウンロードが完了すると、 Carthage ディレクトリが生成されます。 エラーが出た場合は、 Carthage によるビルドの失敗 や Carthage のドキュメントを参照してください。

$ carthage update --platform iOS
*** Fetching sora-ios-sdk
...

Carthage の設定を行う

重要

このドキュメントでは Carthage のパスに /usr/local/bin/carthage を想定しています。

Carthage のドキュメントに従って設定を行います。

  1. プロジェクトでアプリケーションのターゲットを選択し、 Carthage/Build/iOS 以下にある次のフレームワークを "General" タブ > "Linked Frameworks and Libraries" にドラッグして追加します。

    _images/link_carthage_frameworks.png
  2. アプリケーションのターゲットを選択し、 "Build Phases" タブを選択します。 "+" アイコンをクリックし、 "New Run Script Phase" を選択して新しいフェーズを追加します。

    _images/select_script_phase.png
    1. で追加したフェーズのシェルに次のコードを記述します。 Carthage のパスが異なる場合は変更してください。

    /usr/local/bin/carthage copy-frameworks
    
  3. 同フェーズの "Input Files" に次のパスを追加します。

    $(SRCROOT)/Carthage/Build/iOS/Sora.framework
    $(SRCROOT)/Carthage/Build/iOS/WebRTC.framework
    $(SRCROOT)/Carthage/Build/iOS/SocketRocket.framework
    
  4. 同フェーズの "Output Files" に次のパスを追加します。 以下の画像は設定後の状態です。

    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Sora.framework
    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/WebRTC.framework
    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SocketRocket.framework
    
    _images/run_script_phase.png

プロジェクトのビルド設定を編集する

プロジェクトの "Build Settings" の次の項目を編集します。

  • プロジェクトもしくはアプリケーションのターゲットの "Linking" > "Other Linker Flags" に "-ObjC" を追加します。

    _images/linker_flags.png

Info.plist ファイルを編集する

Info.plist ファイルにカメラとマイクの用途を記述します。 この記述を追加しないとアプリケーションが強制終了するので、必ず記述してください。

  • カメラの用途: "Privacy - Camera Usage Description"

  • マイクの用途: "Privacy - Microphone Usage Description"

設定例:

_images/privacy_settings.png