Microsoft Authentication Library (MSAL) for Android Native には、Package Inspector というツールが含まれています。 このツールは、Android デバイスにインストールされているパッケージを一覧表示し、ユーザーがアプリケーションのパッケージの署名に使用する署名ハッシュを表示、コピー、貼り付けることができます。 Package Inspector は、Android デバイスにインストールされているアプリケーションの署名ハッシュのトラブルシューティングと検証に非常に役立ちます。 この記事では、パッケージ インスペクターのインストール、使用方法、および一般的な問題について説明します。
Package Inspector を使用するためのシナリオ
MSAL を使用するアプリケーションは正常に開発されましたが、アプリを Google Play ストアにデプロイした後、アプリは認証を実行できません。
このシナリオでは、Package Inspector は、Google がアプリ パッケージに署名するために使用する新しい署名ハッシュを検出するのに役立ちます。
Android アプリケーションで MSAL を実装していますが、次のエラーが発生します。
構成ファイル内のリダイレクト URI が、パッケージ名と署名ハッシュで生成されたリダイレクト URI と一致しません。 構成ファイルの URI と Azure portal でのアプリの登録を確認してください。
このシナリオでは、Package Inspector を使用してパッケージ署名ハッシュが何であるかを確認し、Azure portal とアプリケーションの両方で正しい署名ハッシュを使用するように構成できます。
Android アプリケーションで MSAL を実装していますが、次のエラーが発生します。
意図フィルター: BrowserTabActivity が見つかりません
このエラーは、AndroidManifest.xml ファイルで指定された署名ハッシュが、APK ファイルの署名に使用される署名ハッシュと一致しないために発生します。 このシナリオでは、Package Inspector は署名ハッシュが何であるかを確認するのに役立ちます。
前提条件
開始する前に、次のことを確認してください。
最新バージョンの Android Studio がインストールされています。
Android Studio には AVD マネージャーが付属しています。 詳細については、「仮想デバイスの作成と管理」を参照してください。
アプリケーションがインストールされている仮想 Android デバイス。
開発者オプション、USB デバッグが有効な物理デバイス、および USB ケーブル。 詳細については、「デバイス上の開発者オプションの構成」を参照してください。
検査対象のアプリケーションがインストールされている。
パッケージインスペクターをインストールする
Package Inspector をインストールするには、次の 2 つの方法があります。
オプション 1: Android MSAL リポジトリを Android Studio に直接複製する
Android Studio を開き、開いているプロジェクトをすべて閉じます。
[バージョン管理から取得 を選択します。
の [バージョン管理から取得] オプションを示すスクリーンショット
ウィンドウの上部 Git が選択されていることを確認し、Android MSAL リポジトリの URL
https://github.com/AzureAD/microsoft-authentication-library-for-android.git
を貼り付け、複製選択します。で Git リポジトリを複製する方法を示すスクリーンショット
オプション 2: Android MSAL リポジトリをダウンロードし、Android Studio で開く
Android MSAL リポジトリをダウンロードします。
選択したディレクトリに zip ファイルを抽出します。
Android Studio を開き、開いているプロジェクトをすべて閉じます。
[既存のプロジェクト 開く] を選択します。
Android Studioスクリーンショット
Android MSAL リポジトリの msal-android ルート パッケージを選択します。 [OK] をクリックします。
Android Studioスクリーンショット
注
- ルート パッケージの既定の名前は
microsoft-authentication-library-for-android-dev
です。 この例では、名前がmsal-android
に変更されています。 - package-inspector ディレクトリを選択しないでください。
- ルート パッケージの既定の名前は
Package Inspector を使用する
Android Studio で Android MSAL プロジェクトを開いた状態で、目的の Android デバイスを接続します。 コンピューターの USB ポートに接続されている物理デバイス、または Android Studio の AVD マネージャーから起動したエミュレーターを使用できます。 Android Studio の上部にあるドロップダウン リストにデバイスが表示されていることを確認し、選択します。
デバイスのドロップダウン リストの左側には、別のドロップダウン リストがあります。 package-inspector を選択します。
再生 ボタン (右側に緑色の円で示されています) を選択して、選択したデバイスでパッケージ インスペクターをビルド、インストール、実行します。
Package Inspector アプリでパッケージの一覧を参照し、パッケージを選択して署名ハッシュを表示します。 アクセス可能なすべてのパッケージがこの一覧に表示されます。
でのパッケージの選択を示すスクリーンショット
一般的な問題
Android Studio にパッケージ インスペクターを読み込む際の問題
これらの問題を解決するには、パッケージインスペクターではなく、MSAL リポジトリからルート パッケージを読み込みます。 Android Studio に読み込む Android MSAL プロジェクトの名前が microsoft-authentication-library-for-android-dev
であることを確認します。または、package-inspector
ではなく、システムのルート ディレクトリの名前を変更したことを確認します。 詳細については、「Install Package Inspector」セクションの オプション 2 の手順 5 を参照してください。
一部のパッケージがパッケージインスペクターに表示されない
パッケージ インスペクターをインストールして開くと、パッケージの一覧がアプリに表示されます。 ただし、デバイスにインストールしたアプリのパッケージは表示されません。 この問題は、Android 11 (API 30) の変更が原因で発生する可能性があります。 詳細については、「パッケージの表示」を参照してください。
この問題を解決するには、次の手順に従ってください。
Android Studio の左側にある
package-inspector
ディレクトリ内の AndroidManifest.xml ファイルを開きます。<manifest></manifest>
タグ間に次のアクセス許可とクエリを追加します。<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.microsoft.inspector"></manifest> ... <permission android:name="android.permission.QUERY_ALL_PACKAGES" /> <queries> <intent> <action android:name="android.intent.action.MAIN" /> </intent> </queries>
Android Studio からアプリケーションを再実行して、変更を適用します。 その後、インストールしたパッケージを確認できます。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。