開発者(Developer)向け情報
本アプリの Runtime と Sample(後述)を利用してアプリの開発を行う開発者(Developer)向けの情報です。
本ページでは、サンプルアプリをビルド・実行するまでの流れをまとめています。
必要なデバイス
デバイスとして、iPhoneとMacが必要です。 下記に動作確認済みの環境を示します。
| 種別 | デバイス | 機種名 | OS |
|---|---|---|---|
| 実機 (実行用) | iPhone | iPhone 13 Pro | iOS 18.3 |
| ビルド環境 | Mac | MacBook Pro (M1) | macOS Sonoma 14.7 |
Note
- iPhone は ARKit / ARCore 対応の機種が必要です
- Mac は Xcode がインストールされている必要があります
構成 (Architecture)
本アプリは Unity(開発プラットフォーム)で開発しています。 以下の構成になっています。
- Runtime (ランタイム)
- アプリ開発に必要なランタイムが含まれています
- アーキテクチャは MVP (Model View Presenter)を採用していますが Presenter は含まれていません
- Sample (サンプル)
- UI、シーン等のリソースを含むサンプルアプリです
- 前述のランタイムが必要です
- アーキテクチャは MVP (Model View Presenter)を採用しています
Runtime/
├── Model/
└── View/
Samples/Scripts/
├── Define/ (定数やenumを含む定義関連)
├── Generated/ (OpenAPIで生成したソースコード)
├── LifetimeScope/ (VContainerでのDI)
├── Model/ (MVPのModel)
├── Parameter/ (シーン間でのパラメータの受け渡し)
├── Presenter/ (MVPのPresenter)
├── Repository/ (データの永続化 - シーン間でのデータの受け渡し用)
└── View/ (MVPのView)
Runtime (ランタイム)
Version (バージョン)
Support (サポート対象)
Dependencies (依存パッケージ)
Sample (サンプル)
Dependencies (依存パッケージ)
サーバとの通信 API も含めたコードの詳細仕様は、本ドキュメントの画面上部の「API」タブを選択してご確認ください。
環境設定について
環境設定の概要
サンプルアプリではアプリの動作環境として、開発環境・リリース環境を用意しており、以下の ScriptableObject で管理しています。
- EnvironmentDevelopment (開発環境)
Assets/Samples/Synesthesias.Snap/Resources/Environment/EnvironmentDevelopment.asset
- EnvironmentRelease (リリース環境)
Assets/Samples/Synesthesias.Snap/Resources/Environment/EnvironmentRelease.asset
環境の設定
使用する環境を切り替えるには、以下の手順で参照を設定します。
- Project View から RootLifetimeScope の prefab を選択し
Environment Scriptable Objectのフィールドに前述の環境設定の ScriptableObject の参照をドラッグ&ドロップで設定します - デフォルトで
Environment Development(開発環境) を指定済みです
Assets/Samples/Synesthesias.Snap/Resources/VContainer/RootLifetimeScope.prefab
Note
環境を追加する方法
- Project View で右クリックします
- Create > Synesthesias > Snap > Sample > EnvironmentScriptableObject
ARCore の設定方法 (iOS)
本アプリは iOS の AR 機能を使用するため、Unity プロジェクト側で ARCore 関連の設定が必要です。
プラグインの設定
まず、Unity のプロジェクト設定で ARCore 関連の機能を有効化します。
- Unity プロジェクトを開きます
- Edit > Project Settings
- XR Plug-in Management > iOS タブを選択します
Apple ARKitにチェックを入れます
- XR Plug-in Management > ARCore Extensions
- iOS Support Enabled にチェックを入れます
- Geospatial にチェックを入れます
ARCore の API キーの設定方法
次に、Google Cloud Platform で発行した API キーをプロジェクトに設定します。
- 以下のドキュメントの手順に従い ARCore の API キー作成の手順まで完了させます
- Project Settings > XR Plugin-in Management > ARCore Extensions
- iOS Authentication Strategy を API Key に設定します
- 本来であれば Authentication Token を使用することを推奨します
- iOS API Key に先ほど発行した API キーを設定します
Important
【重要】ARCore の API キーの管理について API キーの取り扱いには十分注意してください。
- API キーは git で管理しないようにしてください
- API キーをアプリに組み込まないようにしてください
- API キーはあくまで暫定対応です
- Android: Keyless を使用してください
- iOS: API Key を選択します
- API キーを間違ってコミットしないように以下の設定ファイルは.gitignore で除外しています
/ProjectSettings/ARCoreExtensionsProjectSettings.json
サーバーの API 設定
本アプリはサーバーと通信を行うため、API キーの設定が必要です。 以下の手順に従って設定を行ってください。
サーバーリポジトリについて
クライアント(Unity)は以下のサーバー側の API を利用しています。
保存用ディレクトリの準備
API キーを含む設定ファイルを保存するための、Git 管理外のディレクトリを用意します。
Assets/Resources/GitIgnoreディレクトリが存在することを確認します(なければ作成します)。- 念のため
.gitignoreに以下の記述があるか確認します(本リポジトリでは設定済みです)。
Assets/Resources/GitIgnore
API キー設定アセットの作成
保存用ディレクトリの中に、API キー情報を保持する設定ファイル(ScriptableObject)を作成します。
Assets/Resources/GitIgnoreディレクトリで右クリックし、メニューを開きます- Create > Synesthesias > Snap > Sample > ApiKeyScriptableObject を選択します
- 作成されたアセットを選択し、Inspector で以下を入力します
- End Point: サーバーのエンドポイント URL
- Api Key Type: キーの種類(例:
Bearer,X-API-Key) - Api Key Value: API キーの値
環境設定への適用
作成した API キー設定を、アプリの環境設定(EnvironmentScriptableObject)に紐付けます。
- 使用する環境設定アセット(例:
EnvironmentDevelopment.asset)を選択します- 場所:
Assets/Samples/Synesthesias.Snap/Resources/Environment/
- 場所:
- Inspector の
Api Configurationフィールドに、手順 2 で作成したApiKeyScriptableObjectをドラッグ&ドロップします
Important
【重要】API キーの取り扱いについて セキュリティ上の理由から、API キーは以下のように管理してください。
- Git で管理しない(.gitignore で除外されたフォルダに保存する)
- アプリ本体のコードに直接埋め込まない
iOS 機能用途の説明の記載
本アプリは iOS のカメラと位置情報の機能を使用するため、申請時やビルド時に用途の説明が必要です。 サンプルアプリでは既に設定が含まれていますので、設定が正しいか確認してください。
Player Settings の確認
- Edit > Project Settings > Player Settings (左側のメニューの Player)
- iOS タブを選択
Camera Usage Descriptionにカメラの用途が記載されているか確認します- 例:
建物検出機能に使用します
- 例:
Location Usage Descriptionに位置情報の用途が記載されているか確認します- 例:
建物検出機能に使用します
- 例:
iPhoneへのビルド
ここまでの設定が完了したら、以下の 2 ステップでアプリをiPhoneにインストールします。
Step 1: Unity から Xcode プロジェクトを書き出す
Unity から iOS アプリのプロジェクトを出力します。
Build Settings の設定
- サンプルをインポートして前述の API キーの設定を一通り完了させます
- File > Build Settings
iOSを選択してSwitch Platformを選択します- 以下のシーンを順番に開いて Build Settings の
Add Open Scenesを選択して各種シーンをScenes In Buildに追加します- BootScene (必ず 0 番目にしてください)
- MobileDetectionScene
- GuideScene
- MainScene
- ValidationScene
Run in Xcode asはReleaseが選択されていることを確認しますDevelopment Buildのチェックが外れていることを確認します- *
Development Buildの場合はアプリが起動できません - (Development Build でもアプリが実行する方法があれば情報共有をお願いします)
- *
Buildを選択して iOS のアプリをビルドします
Step 2: Xcode でのビルド
Unity でビルドしたプロジェクトを Xcode で開き、iPhoneにインストールします。 以下は必要最低限アプリをビルドするまでの手順です。 Xcode の詳細な使い方については触れないため、必要に応じて適宜調査をお願いします。
- Mac に iPhone 端末を有線で事前に接続しておきます
- ドロップダウンから接続している iPhone を選択しておきます
- 初回ビルドの場合 Signing でビルドエラーになるので以下のいずれかを設定します
- Automatically manage signing
- Provisioning Profile
- 再生アイコンを押すと再度ビルドが開始されます
- ビルドが完了すると iPhone にアプリが自動でインストールされアプリが起動します
サンプルアプリを使用する
インストールされたサンプルアプリの具体的な使い方は、利用者向けドキュメントを参照してください。
Note
上記以外にもテストフライトやAdHocなどの配信方法があります。