Google Playで公開しようとしているAndroidアプリケーションまたは既に公開されているAndroidアプリケーションがあり、開発中の場合、クローズドベータテスト中であり、顧客/テスターが定期的にアセンブリを組み立てて転送する必要がある場合は、このプロセスを自動化する
英語で
ドキュメントを個別に処理することもできますが、プロセスが難しいか何かうまくいかない場合は、出版物が役立つことを願っています
開始する前に、アプリケーションの最初のバージョンを手動で公開する必要があります
アクセス設定
Google Playデベロッパーコンソールを開き、
[設定] →
[ APIアクセス ]に移動し
ますコンソールはGoogle APIプロジェクトにリンクする必要があります。 プロジェクトがない場合、現時点では、[新しいプロジェクトの作成]ボタンのみがインターフェイスから利用できます。

ある場合、これらのプロジェクトのリストが利用可能になります。 もちろん、リンクボタンはそれらを接続します。

しかし、新しいプロジェクトを作成する例を見てみましょう。
Google APIコンソールから作成するか、既にお持ちのGoogle Playデベロッパーコンソールから直接
作成して、[
新しいプロジェクトを
作成 ]ボタンをクリックします。
Google APIプロジェクトを作成するのがこれが初めての場合、ポップアップウィンドウが表示されます。ここに
すべてを受け入れます
これでプロジェクトとサービスアカウントが作成されました。この場合は自動的に作成されます

次に、このアカウントがGoogle Playと連携して役割を付与できるようにする必要があります。 ここから直接行うこともでき
ます 。[
アクセスを許可 ]をクリックし
ます 。 ユーザーアカウントと右側のメニュー(バックグラウンドで表示)が表示され、電子メールやその他の必須フィールドが既に入力されているポップアップウィンドウが開きます。 [
ユーザーを追加]をクリックし
ます
これで、ユーザーが正常に追加されたことがわかります。

次に、ライブラリを操作してアプリケーションの新しいバージョンを公開できるように、公開キーと秘密キーのペアを生成する必要があります。 これを行うには、Google APIコンソール
でプロジェクトの
リストを開き、目的
のプロジェクトをクリックします。デフォルトでは、
Google Play Android Developerと呼ばれます。

次に、メニュー項目
資格情報 →
資格情報の 作成をクリックして、
サービスアカウントキーを選択し
ます
リストから
Compute Engineのデフォルトのサービスアカウントを選択し、ラジオボタンを
P12に転送します。
作成をクリックし
ます
設定により、
Google Play Android Developer-%slice id%.p12という名前のいくつかの公開鍵と秘密鍵がコンピューターに保存されました


プログラミングを始めましょう
Googleは現在、Google Play Developer APIを操作するためのjavaおよびpythonライブラリを提供しています。 Javaのバリアントを検討します。これを行うには、ライブラリとサンプルを含む
zipアーカイブを
ダウンロードします。
IDEを開き、プロジェクトを作成します。ProductionManagerを呼び出して、次のライブラリを接続します。
- google-api-client-1.19.0.jar
- google-api-services-androidpublisher-v2-rev20141111-1.19.0.jar
- google-http-client-1.19.0.jar
- google-http-client-jackson2-1.19.0.jar
- google-oauth-client-1.19.0.jar
- jackson-core-2.1.3.jar
Google Playファイル
Android Developer-%スライスid%.p12をプロジェクトのリソースフォルダーにコピーし、スペースがなくなるように名前を変更しました。読み込もうとすると例外が発生したようです。 多くの人がアクセスできるVCSでこのプロジェクトのソースコードを保持する場合は、おそらく継続的な統合サーバーにファイルを保存することをお勧めします。
それに応じてアプリケーションをビルドして公開する前に、最新バージョンのコード(versionCode)を見つけて更新するようにリクエストします。これは、ステップ1(これらは1、2、3 ...のみ)で算術的に進むことが好きだからです。裁量で、CIサーバーのbuildNumberまたはVCSのrevesionNumberに置き換えるだけです
更新バージョンprivate Edits getApplicationEdits() throws Exception { String applicationName = "ApplicationName"; String serviceAccountId = "--@developer.gserviceaccount.com" HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); KeyStore keyStore = SecurityUtils.getPkcs12KeyStore(); InputStream inputStream = ProductionManager.class.getResourceAsStream("/resources/key.p12"); PrivateKey privateKey = SecurityUtils.loadPrivateKeyFromKeyStore(keyStore, inputStream, "notasecret", "privatekey", "notasecret"); inputStream.close(); GoogleCredential credential = new GoogleCredential .Builder() .setTransport(httpTransport) .setJsonFactory(jsonFactory) .setServiceAccountId(serviceAccountId) .setServiceAccountScopes(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER)) .setServiceAccountPrivateKey(privateKey) .build(); AndroidPublisher androidPublisher = new AndroidPublisher .Builder(httpTransport, jsonFactory, credential) .setApplicationName(applicationName) .build(); return androidPublisher.edits(); } private void updateVersionCode() throws Exception { String packageName = "com.package.name"; Edits edits = getApplicationEdits(); String editId = edits .insert(packageName, null) .execute() .getId(); ApksListResponse apksResponse = edits .apks() .list(packageName, editId) .execute(); List<Integer> versions = new ArrayList<Integer>(); List<Apk> apks = apksResponse.getApks(); if (apks == null) { throw new Exception("responsed list of apks is null"); } for (Apk apk : apks) { versions.add(apk.getVersionCode()); } if (versions.isEmpty()) { throw new Exception("previous versions are not detected"); } int lastVersionCode = Collections.max(versions); if (lastVersionCode == 0) { throw new Exception("version is 0"); }
アプリケーション出版物 private void publishApplication() throws Exception { String packageName = "com.package.name"; String track = "beta";
実行可能jarをコンパイルします。 ここで、インストールファイルの作成とCIサーバーでの公開を構成する必要があります。TeamCityを使用します。 4つのビルドステップがあります。
- versionCodeを更新します。 処理中のパラメーターを使用してjarファイルを実行し、updateVersionCode()メソッドを呼び出します。 これがTeamCityの外観です

- versionNameを更新
- APKの生成。 コマンドラインを使用することができ、特別なステップを選択できます。gradleとIntelliJ IDEAがあります。2番目のケースでは、アーティファクト名を指定する必要があります
- アプリケーションを公開します。 また、jarファイルを別のパラメーターで実行し、publishApplication()メソッドを呼び出します
ご清聴ありがとうございました。