セットアップ

システム条件

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

  • iOS 10.0 以降
  • アーキテクチャ arm64, armv7 (シミュレーターは非対応)
  • macOS 10.14 以降
  • Xcode 10.1
  • Swift 4.2.1
  • Carthage 0.29.0 以降、または CocoaPods 1.5.2 以降
  • WebRTC SFU Sora 18.10.0 以降

パッケージ管理について

Sora iOS SDK をプロジェクトに組み込むには Carthage か CocoaPods のいずれかが必要です。

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

重要

2.0.0 から Unbox.framework をリンクする必要がなくなりました。

Carthage を利用する

Cartfile を用意する

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

Cartfile:

github "shiguredo/sora-ios-sdk" "2.2.1"
github "shiguredo/sora-webrtc-ios" "66.8.0"
github "shiguredo/SocketRocket" "0.5.1-carthage.1"
github "shiguredo/SDWebImage" "4.2.2"

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

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
    $(SRCROOT)/Carthage/Build/iOS/SDWebImage.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
    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SDWebImage.framework
    
    _images/run_script_phase.png

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-spec.git'
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '10.0'
    
    target 'SoraQuickStart' do
      use_frameworks!
      pod 'Sora', '2.2.1'
    end
    
  3. pod install を実行してライブラリをインストールします。

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

プロジェクトの "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

Sora iOS SDK をソースコードからビルドする

Sora iOS SDK をソースコードからビルドする場合は、リポジトリをクローンして手動でビルドを行う必要があります。 Carthage (--no-use-binaries オプション指定時) や CocoaPods では Sora iOS SDK をソースコードからビルドできません。 これは弊社が提供する WebRTC ライブラリ (WebRTC.framework) の リポジトリ にソースコードが含まれず、ビルド済みのバイナリのみが配布されているためです。 WebRTC ライブラリのソースコードのサイズは約 6 GB と非常に大きく、ビルド手順も自動化しにくいのでリポジトリに含めていません。

次の手順でソースコードをビルド可能です。

  1. Sora iOS SDK のリポジトリ をクローンします。 リリース版なら master ブランチを、開発版なら develop ブランチをチェックアウトします。 master 以外のブランチの動作は保証されません。
  2. リポジトリのトップディレクトリで carthage update を実行します。
  3. Xcode でプロジェクト (Sora.xcodeproj) を開き、 Sora ターゲットを実機向けにビルドします。 Sora iOS SDK はシミュレーターに対応していません。
  4. ビルドに成功したら、プロジェクトナビゲーターの "Products" グループに含まれる Sora.framework を Finder で開き、 Sora.framework ファイルを任意のプロジェクトの Carthage/Build/iOS ディレクトリ下にコピーして使用してください。