web-dev-qa-db-ja.com

アップロードキーを使用してアプリに署名する方法

アプリをGoogleプレイストアに公開しようとしていますが、 https://developer.Android.com/studio/publish/appに記載されているように、アップロードキーを使用してアプリに署名する方法がわかりません-signing.html

Android Studioを使用し、ビルド->署名済みAPKを生成してapkに署名し、独自のキーストアパス/ファイルに独自のキーを作成しました。リリースを行うには、 Googleアップロードキーを使用するため、混乱しました。

  1. google Playコンソールのアップロードキーはどこにありますか?このアプリのアプリ署名の下に、MD5、SHA-1、SHA-256のアップロード証明書が表示され、upload.pemファイルをダウンロードすることもできます。私はそれで何をしますか?

  2. 次に、ビルド->署名付きAPKをAndroid Studioで生成して、このいわゆるアップロードキーで署名するにはどうすればよいですか?

私のアプリはGoogleサインインを使用してユーザーを認証します。現在、自分のapkをインストールするだけで機能します。しかし、Googleストアからダウンロードすると、Google認証を実行できません。そのため、公開手順を台無しにしたと思います。

参考までに、「Google Playアプリの署名を使用」プロセスを使用しています。

助けてください。

22
Michael

私はこれを理解したと思う...

Google App Signingプロセスの使用を選択すると、Google Playはアップロードされたアプリの署名を、App Signing証明書のSHA-1証明書のフィンガープリントに変更します(アップロード証明書に対して)。プロセスフローについては、図1 このStudioドキュメント を参照してください。

[ところで、両方のアプリの証明書は、Google Play Console->リリース管理->アプリの署名]で見つけることができます]

つまり、Oauth=を機能させるには、新しいOAuth 2.0資格情報を作成する必要があります(コンソールで.developers.google.com)同じパッケージ名でアプリ署名証明書のフィンガープリントを使用する(アップロード証明書のフィンガープリントに対して).

これで、パッケージには2 Oauthクレデンシャル、1つは製品リリース用、もう1つは開発/テスト用になります。両方とも同じパッケージ名になります。開発/テスト資格情報は、アップロード(またはローカルキーストア)フィンガープリントを使用します。

明らかに、アプリが最初にGoogle Playに展開されるまで(GPが割り当てます)、アプリの署名の指紋はわかりません。そのため、Google Playに初めてアップロードした後、「プロダクションへのロールアウト」をクリックする前に、プロダクションクレデンシャルを作成する必要があります。

8
RudyF

新しいシステムでは、アップロードキーはシンプルで通常のキーストアであり、Android studio。で作成できます。APKに署名してプレイストアに送信してください。

Googleはこのキーを削除し、宣言された(およびGoogle Playで生成された)アプリケーションキーを使用します

2
Pauland

どのプロセスに従うべきか、利用可能な2つの方法があります-

  1. 自分でキーとキーストアを管理する、または
  2. Googleアプリの署名を使用します(キーをなくした場合でも、後でキーを取得するためのサポートを提供します)。

最も頻繁に使用される最初の1つについて簡単に説明します。手順:-

  1. キーストアファイルを作成し、安全な場所にパスワード、エイリアス、エイリアスパスワードを保存します。
  2. 上記の資格情報でファイルを保管したのと同じ場所に、そのキーストアファイルを保管します。
  3. ビルド->署名済みAPKの生成->作成したキーストアファイルの選択に進み、パスワード、エイリアス、エイリアスパスワードなどの必要な資格情報をすべて入力します。
  4. Androidスタジオが署名済みAPKを生成し、同じものをプレイストアにアップロードできます。
  5. 次回APKを再度生成するときは、アプリの更新をプッシュするため、キーストアファイルは以前と同じように使用するため、手順3と手順4のみを実行する必要があります。アプリを更新する場合、APKは同じキーストアで署名するか、同じSHA証明書。

Cammandでプロセス全体を実行する場合は、app.gradleファイルにbuildTypeを追加できます。これは、より適切で適切な方法です。

BuildType構成を追加するには、gradleコードを参照してください:

Android{
buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }

        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            storeFile file("path for release.keystore")
            storePassword keystore_password
            keyAlias keystore_alias
            keyPassword keystore_alias_password
        }
    }
} 

上記の構成では、リリースキーストアファイルのファイルパスをstoreFileタグで指定する必要があり、前述のようにstorePassword、keyAlias、およびkeyPasswordで資格情報を指定する必要もあります。

上記の構成を追加したら、簡単なgradlewコマンドで署名済みapkを生成できます:-./gradlew clean assembleRelease

2番目の方法を使用する場合は、Googleアプリで署名するキーの詳細を利用できます こちら いずれかのステップで問題が発生した場合は、問題を解決できるようにそのステップをお知らせください。

最初にアップロードキーを生成するには、これを行う必要があります–

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

次に、次を使用してapkに署名します。

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keys

Github libを使用して here からプロセス全体を自動化することもできます。

または、詳細について here を参照できます。

0
Avi