月: 2022年5月

[Android] aab(apk)ファイルを生成した時にアプリ情報をファイル名に設定する

AndroidStudioデフォルトの状態だとaabやapkファイルを生成すると、「app-release.aab」のようなファイル名になっています。これは「モジュール名-BuildVariant.aab」という規則になっているのですが、これはこれでちょっと不便で、いつ、どのBuildVariantでどのバージョンをビルドしたのかわかりません。

今回はこのファイル名にVersionName、VersionCode、日時、BuildVariantを入れたaabファイルが生成されるように変更します。

app/build.gradleに下記を追加します。

import java.text.SimpleDateFormat
import java.util.*

android {
    defaultConfig {
        def format = new SimpleDateFormat("yyyyMMdd_HHmmss")
        format.timeZone = TimeZone.getTimeZone("JST")
        archivesBaseName = "appname-${versionName}-${versionCode}-${format.format(new Date())}"
    }
}

KotlinDSLの場合は下記を追加します。

import java.text.SimpleDateFormat
import java.util.*

android {
    defaultConfig {
        val dateFormat = SimpleDateFormat("yyyyMMdd_HHmmss")
        dateFormat.timeZone = TimeZone.getTimeZone("JST")
        base {
            archivesBaseName = "appname-$versionName-$versionCode-${dateFormat.format(Date())}"
        }
    }
}

このようにすると「appname-1.0.0-2-20220522_102344-release.aab」のようなファイル名に変更されます。GooglePlayConsoleでリリースする時に間違ったファイルをアップロードしてしまったりするミスを防げるかもしれません。


GooglePlayConsoleの翻訳サービスに申し込むといくらかかるのか

GooglePlayConsoleでアプリの翻訳をしてくれるサービスがあるのをご存知でしょうか。GooglePlayConsoleの左側のドロワーから「成長」-「ストアでの表示」-「翻訳サービス」をクリックします。

すると画面右上に「注文する」ボタンがあるので押下します。

次の画面で翻訳元の言語と翻訳先の言語を選びます。翻訳元の言語はデフォルトで選択されていますが、もし違う場合は変更することも可能です。翻訳先の言語は複数選べます。その後「次へ」ボタンを押下します。

翻訳可能なものは「ストアの掲載情報」「アプリの文字列」になります。

「ストアの掲載情報」はチェックを入れると現在ストアに表示しているタイトル、簡単な説明、詳しい説明がデフォルトで入力されます。

「アプリの文字列」にはアプリ内で使用しているstrings.xmlファイルをアップロードします。複数ファイルのアップロードに対応していますが、すでに多言語対応していたり、マルチモジュール対応しているとstrings.xmlファイルが複数になると思いますが、同名のファイルを複数アップロードできないため、module_name_strings.xmlなどのようにファイル名を変更してアップロードすると良いでしょう。

「その他の情報」は翻訳をお願いする画面のスクリーンショットを送ると良いです。翻訳者の方がここに添付された画像を見て翻訳をしているようです。画面によって適切な表現が異なると思うので、ダイヤログやアプリ利用中のスクリーンショットなどを添付しましょう。

最後に「過去の注文の翻訳済み文字列を再利用する」ボタンがあります。これは過去にこの翻訳サービスを利用したことある場合はチェックを入れると同じ文字列があった場合、再度翻訳しないので、翻訳料が安くなります。基本的にはチェックを入れたほうが良いでしょう。

画面右下の「注文の確認」ボタンを押下します。

「翻訳プロバイダ」欄の「他のプロバイダを見る」を選択すると翻訳会社を変更できます。どこがどう良いのかわからないのですが、値段は各社違います。

翻訳内容、価格、翻訳プロバイダ、完了予定日を確認して注文すると完了予定日前後に翻訳結果がGooglePlayConsole上にお知らせが来ます。

翻訳結果からストアの掲載情報のテキストには適用ボタンを押すことですぐに適用することが可能です。strings.xmlはダウンロードボタンを押下してアプリ内に組み込みましょう。

ちなみに私は下記の内容で申し込みしました。

  • 日本語→英語(アメリカ合衆国)
  • ストアの掲載情報含む
  • アプリの文字列(strings.xmlを11ファイル、合計約14KB)
  • 翻訳プロバイダはTrusted Translations, Inc. 様

でお願いしたところ$178.20だったので大体22000円ぐらいです(2022年4月時点)

また翻訳結果を見ると

  <string name="tuesday_short">fire</string>
  <string name="wednesday_short">water</string>    
  <string name="thursday_short">wood</string>    
  <string name="friday_short">money</string>    
  <string name="saturday_short">soil</string>

のように曜日の略称がおかしかったりしたので、結局全ての翻訳結果を見直ししました(笑)ただそれ以外の文字列についてはうまく翻訳できていたので、機械的に翻訳してはいないと思いました。また「過去の注文の翻訳済み文字列を再利用する」機能があるので、次回以降の翻訳は安くなります。

個人開発で数万円の出費は痛いですが、英語に自信が無い方や何度も翻訳をする必要がある場合に利用してはいかがでしょうか。