EOS SDK for iOS Samples

iOS サンプルと Apple ログイン フローの概要

6 分で読めます

現在提供されている Login Sample は、SDK でログインするための Auth インターフェース の使用方法を実演します。

このサンプルではネイティブの Apple でサインイン (SIWA: Sign in with Apple) サポートを有効にすることも可能ですが、この機能を有効にするとバンドルIDプロビジョン を使用する必要があります。必要な追加設定については後述します。この機能はデフォルトではオフになっています。

このページでは、iOS 上で標準ログイン フローと Apple でサインインによるフローを使って Login Sample の使用を説明します。このサンプルの開発には Xcode 11.3.1iOS SDK 13.2 が使用されました。

始める前に

Login/Settings/settings.json にアプリケーションと関連づいた値が正しく設定されていることを確認してください。正しく設定されていないと、SDK が正しく実行されません。必要な設定は以下の通りです。

  • productId: 使用する product id
  • sandboxId: 使用する sandbox id
  • deploymentId: 使用する deployment id
  • clientId: 使用する client id
  • clientSecret: 使用する client secret

これらの設定値については、Developer Portal で詳細を確認することができます。

Xcode での追加設定が必要な場合もあります。

  1. Login/Info.plist を選択して [URL types (URL タイプ)] > [Item 0] > [URL Schemes (URL スキーム)] > [Item 0] を選択します。この値を eos.clientId に設定する必要があります (clientId は json ファイルのデータと同じ)。これにより、ウェブから得たログイン データを使って、アカウント ポータルが使用しているアプリケーションを再度トリガーすることができます。

  2. EOSSDK.framework を「Login/Frameworks」フォルダにコピーします。

  3. サンプルのビルドと署名ができるように、[Signing & Capabilities] 設定のバンドル ID も設定する必要があります。

Apple でサインイン

「Apple でサインイン」は iOS 13+ でのみ可能です。

このサンプルで SIWA サポートを有効にするために、Xcode での追加設定が必要です。

  1. 使用するバンドル ID は Apple でサインイン 機能を有効にする必要があります。これは、Apple Developer portal の [Certificates, Identifiers & Profiles][Identifiers] で行います。

  2. 使用するアプリケーションをサポートするために、プロジェクトの [Signing & Capabilities][+ Capability] オプションを使って [Sign in with Apple] を追加します。

  3. [Build Settings (バンドル設定)][Swift Compiler - Custom Flags (Swift コンパイラ - カスタムフラグ)] > [Active Compilation Conditions (アクティブ] を選択し、[Debug (デバッグ)] フィールドと [Release] フィールドの両方に定義 EOS_ENABLE_SIWA を追加します。

ログイン

アプリケーションを最初に開始すると、ログイン ボタンの付いた画面が表示されます。「Apple でサインイン」を有効にしている場合、ログイン方法が 2 種類あります (これについては後述します)。

Login Screen with EOS_NotFound message.

クリックしてフルサイズ表示

アプリケーションを開くたびに、認証状態の永続性を使って、最後のログインに使用した資格情報でのログインが自動的に行われます。まだログインしたことがない場合、永続的な認証は既存の資格情報を見つけることはできません。

アカウント ポータルを使ってログインする

[Login (ログイン)] ボタンを押すと、セキュア セッションが開始されます。ブラウザ上でログイン プロセスを続けるように促されます。このプロンプトからアプリケーション名と、ブラウザで開くターゲット ドメインが確認できます。

Logging in with the Account Portal.

クリックしてフルサイズ表示

[Continue (続ける)] を押すと、ブラウザで Epic アカウント ポータルが開いて Epic アカウントへのサイン インを促されます。

クリックしてフルサイズ表示

クリックしてフルサイズ表示

クリックしてフルサイズ表示

クリックしてフルサイズ表示

このフローを完了すると、ログインが確認されてアプリケーションへ戻ります。

クリックしてフルサイズ表示

ここから、ログアウトするか、またはアプリケーションを終了して永続的なログイン フローを確認するために再度開くことができます。

「Apple でサインイン」を使ってサインインする

「Apple でサインイン」を有効にしてサンプルをビルドした場合、アプリケーション開始時に 2 つのログイン ボタンが画面に表示されます。上のボタンを選択すると、前のセクションで説明したアカウント ポータルのログイン フローになります。[Sign in with Apple] ボタンを押すと、Apple でサインインのフローになります。

クリックしてフルサイズ表示

Apple でサインインを初めて使用すると、アプリケーションと共有するデータ (名前 / メールアドレスなど) について尋ねられます (詳細は Apple の公式ドキュメント を参照してください)。次にサインインとなり、ID の確定を求められます。

クリックしてフルサイズ表示

このフローを完了すると、ログインの接続が確定されてアプリケーションへ戻ります。

クリックしてフルサイズ表示

ここから [Back (戻る)] を選べば、別のログイン方法に戻ることができます。