Unity SDK のトラブルシューティング
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
ポータルに分析データが表示されない
- SDK モジュールが正しく統合されていることを確認します。
- プロジェクトに "App Center" オブジェクトが含
AppCenterBehavior
まれていて、アプリ シークレットが [インスペクター] ウィンドウの対応するフィールドに追加されていることを確認します。 また、使用する予定の App Center サービスごとに [{service}を使用する] ボックスもチェックしてください。 - "App Center SDK が正常に構成されました" というログ (詳細ログ レベル) を確認し、HTTPS 要求ログが表示される場合はチェックします。
- デバイスがオンラインであることを確認します。
- 場合によっては、ログがポータルに表示されるまで数分かかる場合があります。 その場合はしばらく待ちます。
- App Center バックエンドがデータを受信したかどうかをチェックするには、Analytics サービスの [ログ フロー] セクションに移動します。 送信されると、イベントが表示されます。
クラッシュがポータルに表示されない
- SDK モジュールが正しく統合されていることを確認します。
- プロジェクトに "App Center" オブジェクトが含
AppCenterBehavior
まれていて、アプリ シークレットが [インスペクター] ウィンドウの対応するフィールドに追加されていることを確認します。 また、使用する予定の App Center サービスごとに [{service}を使用する] ボックスもチェックしてください。 - クラッシュ後にアプリを再起動します。 App Center のクラッシュは、再起動後にのみクラッシュ ログを転送します。 デバッガーをアタッチした場合、SDK ではクラッシュ ログは保存されません。 アプリをクラッシュさせたときにデバッガーがアタッチされていないことを確認します。
- "App Center SDK が正常に構成されました" というログ (詳細ログ レベル) を確認し、HTTPS 要求ログが表示される場合はチェックします。
- デバイスがオンラインであることを確認します。
- 場合によっては、ログがポータルに表示されるまで数分かかる場合があります。 その場合はしばらく待ちます。
- SDK が次回のアプリの起動時にクラッシュを検出した場合にチェックする場合は、API を呼び出して、最後のセッションでアプリがクラッシュしたかどうかをチェックし、アラートを表示できます。 または、クラッシュ コールバックを拡張して、サーバーに正常に送信されたかどうかを確認することもできます。
- App Center バックエンドでクラッシュが発生した場合にチェックするには、Analytics サービスの [ログ フロー] セクションに移動します。 送信されると、クラッシュが表示されます。
- アプリが実際にクラッシュして再起動されたことを確認します。Unity は既定で、ハンドルされない例外の大部分をキャッチします。つまり、アプリは終了せず、クラッシュとは見なされません。 Unity によってクラッシュがキャッチされた場合、SDK によって "エラー" として報告されます。
Android プロジェクトのビルドが失敗する
Distribute モジュール バージョン 4.1.0 以降には、Android 11 をサポートするための新しいマニフェスト タグがあります。 以前のバージョン 2019.4
の Unity を使用している場合は、エラー AAPT: error: unexpected element <queries> found in <manifest>.
を回避するために gradle バージョンを明示的に指定する必要があります。
プロジェクト mainTemplate.gradle
のビルドに関する問題を回避するには、 と launcherTemplate.gradle
(このファイルは Unity 2019.4 を使用する場合にのみ追加する必要があります) ファイルを追加して gradle バージョンを明示的に指定する必要があります。 [Project Settings Player]\(プロジェクト設定>プレーヤー>\) [Android] タブ [Publishing Settings Build]\(発行設定>ビルド\) を>開き、[Custom Main Gradle Template]\(カスタム メイン Gradle テンプレート\) と [Custom Launcher Gradle Template]\(カスタム ランチャー Gradle テンプレート\) を選択してください。 ファイルを生成した後、ファイルの先頭に次の行を挿入します。
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.3'
}
}
allprojects {
repositories {
google()
mavenCentral()
flatDir {
dirs 'libs'
}
}
}
Unity を使用した Android 11 のビルドの詳細については、ガイドラインを参照してください。
App Center シークレット値を保護する
app_secret
はアプリの識別子であり、トラフィックが適用されるアプリを知る必要があり、既存のデータを取得または編集するために使用できません。 app_secret
が公開されている場合、最も大きなリスクはアプリに不適切なデータを送信することですが、データのセキュリティには影響しません。
機密データを取得するには、クライアント側で生成されるアプリ/ユーザー トークンを指定する必要があります。 クライアント側のデータを完全にセキュリティで保護する方法はありません。
環境変数を使用してアプリ シークレットをコードに挿入することで、アプリのセキュリティを向上させることができます。 そうすることで、シークレットはコードに表示されません。