Android SDK のトラブルシューティング
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
どのような Android アクセス許可が必要ですか?
使用するサービスに応じて、次のアクセス許可が必要です。
- すべてのサービス:
INTERNET
、ACCESS_NETWORK_STATE
- 配布:
REQUEST_INSTALL_PACKAGES
、DOWNLOAD_WITHOUT_NOTIFICATION
必要なアクセス許可は、SDK によってアプリのマニフェストに自動的にマージされます。
これらのアクセス許可のいずれも実行時にユーザーの承認を必要としません。これらはすべてインストール時のアクセス許可です。
ポータルに分析データが表示されない
SDK モジュールが正しく統合されていることを確認します。
メソッド呼び出しと共に正しいアプリ シークレットが含まれていることを
start()
確認します。 ポータルでアプリを開き、ページに移動することで、正確なstart()
コードはじめにコピーできます。バックエンドに送信されるログを表示する場合は、アプリケーションでログ レベルを Verbose に変更すると、SDK によってコンソールにログが出力されます。 SDK を開始する前に、以下の API を呼び出します。
AppCenter.setLogLevel(Log.VERBOSE);
AppCenter.setLogLevel(Log.VERBOSE)
"App Center SDK が正常に構成されました" というログ (情報ログ レベル) を確認し、HTTPS 要求ログが表示される場合はチェックします。
デバイスがオンラインであることを確認します。
場合によっては、ログがポータルに表示されるまで数分かかる場合があります。 その場合はしばらく待ちます。
App Center バックエンドがデータを受信したかどうかをチェックするには、Analytics サービスの [ログ フロー] セクションに移動します。 送信されると、イベントが表示されます。
クラッシュがポータルに表示されない
SDK モジュールが正しく統合されていることを確認します。
メソッド呼び出しと共に正しいアプリ シークレットが含まれていることを
start()
確認します。 ポータルでアプリを開き、ページに移動することで、正確なstart()
コードはじめにコピーできます。クラッシュ後にアプリを再起動します。 SDK は、再起動後にのみクラッシュ ログを転送します。
バックエンドに送信されるログを表示する場合は、アプリケーションでログ レベルを Verbose に変更すると、SDK によってコンソールにログが出力されます。 SDK を開始する前に、以下の API を呼び出します。
AppCenter.setLogLevel(Log.VERBOSE);
AppCenter.setLogLevel(Log.VERBOSE)
"App Center SDK が正常に構成されました" というログ (情報ログ レベル) を確認し、HTTPS 要求ログが表示される場合はチェックします。
デバイスがオンラインであることを確認します。
場合によっては、ログがポータルに表示されるまで数分かかる場合があります。 その場合はしばらく待ちます。
SDK が次回のアプリの起動時にクラッシュを検出した場合にチェックする場合は、API を呼び出して、最後のセッションでアプリがクラッシュしたかどうかをチェックし、アラートを表示できます。 または、クラッシュ コールバックを拡張して、サーバーに正常に送信されたかどうかを確認することもできます。
App Center バックエンドがクラッシュを受信したかどうかをチェックするには、Analytics サービスの [ログ フロー] セクションに移動します。 送信されると、クラッシュが表示されます。
配布とアプリ内の更新によって自動 UI テストがブロックされている
自動 UI テストを実行している場合、アプリ内更新を有効にすると、App Center バックエンドに対して認証が試行されるため、自動 UI テストはブロックされます。 UI テストでは、App Center の配布を有効にしないことをお勧めします。
App Center SDK が Android アプリのサイズに与える影響は何ですか?
App Center SDK は、アプリケーションのインストール サイズに与える影響を最小限に抑えるために設計されています。
これを説明するために、Android Studio の "空のアプリ" テンプレートを使用して空の Java アプリケーションを作成しました。 リリース構成でアプリをビルドし、Android 7.0 を実行しているデバイスにアプリをインストールしました。
テストは Proguard を有効にせずに実行されました。
以下の数値は、ビルド設定によって異なる場合があるため、大まかなガイドと考えてください。 Proguard を使用すると、アプリに対する SDK の影響はさらに低くなります。
使用される App Center モジュール | エクスポートされた APK サイズ | インストール サイズ (デバイスによって報告される) |
---|---|---|
なし (空のアプリ) | 1.3 MB | 3.43 MB |
App Center Analytics | 1.4 MB | 3.63 MB |
App Center のクラッシュ | 1.4 MB | 3.70 MB |
App Center の配布 | 1.4 MB | 3.71 MB |
すべての App Center モジュール | 1.4 MB | 3.82 MB |
App Center シークレット値を保護する
app_secret
はアプリの識別子であり、トラフィックが適用されるアプリを知る必要があり、既存のデータを取得または編集するために使用できません。 app_secret
が公開されている場合、最も大きなリスクはアプリに不適切なデータを送信することですが、データのセキュリティには影響しません。
機密データを取得するには、クライアント側で生成されるアプリ/ユーザー トークンを指定する必要があります。 クライアント側のデータを完全にセキュリティで保護する方法はありません。
環境変数を使用してアプリ シークレットをコードに挿入することで、アプリのセキュリティを向上させることができます。 そうすることで、シークレットはコードに表示されません。
jCenter から Maven Central への移行
jCenter サポートが終了したため、すべてのアセンブリが Maven Central リポジトリに移動されました。
App Center を使用するには、次のように Gradle ファイルのリポジトリに を追加 mavenCentral()
する必要があります。
repositories {
google()
mavenCentral()
}