web-dev-qa-db-ja.com

Google Playのアップロードの問題:「Android App Bundleのパッケージ名はcom.x.x.baseである必要があります」

開発中のアプリケーションを内部テストトラックであるGoogle Play Consoleにアップロードしようとしています。アプリケーションには2つのフレーバーディメンションと2つの動的機能があり、最後の2つはリソースのみです(コードなし)。 Android Studioを使用してディレクトリ構造と署名済みバンドルを生成しています。

パッケージの名前はcom.something.somethingです。アップロードが失敗し、「APKまたはAndroid App Bundleにはパッケージ名com.something.something.baseが必要です。」というメッセージが表示されます。

問題の原因を追跡することはできませんが、フレーバーディメンションと関係があるようです。一方、動的な機能がなければ、1つのapkをアップロードしても問題ありませんでした。

コードのどの部分がここに関連しているかはわかりませんが、これはおそらく私の問題の一部ですが、私のメインのビルドグラドルは次のようになります

apply plugin: 'com.Android.application'

Android {

    compileSdkVersion 27
    defaultConfig {
        applicationId 'com.something.something'
        ....
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
        debug {
            //testCoverageEnabled false
        }
    }

    flavorDimensions "version"
    productFlavors {
        small {
            dimension "version"
        }
        full {
            dimension "version"
        }
    }

    dynamicFeatures = [":feat1", ":feat2"]

}

dependencies {
    ...
}

私は無関係なコードで質問に負担をかけたくありませんが、問題がどこにあるかについて直感がある場合は、もっと多くを提供できます。

ここでデバッグを行う方法についての提案はありがたいです。 (アップロードは非常に遅く、試行錯誤はあまり選択肢になりません。)

5
celaeno

あなたの問題はコードに関連していないので、パッケージ名を他の何か、より「ユニーク」なものに変更してみてください。 com.myname.myappnameは一例です。この場合、パッケージ名に関連するすべてを変更する必要があります。試して報告してください

1
Ali Eid

答えで写真を撮ってくれてありがとう。これがこの問題について私が学んだことと、私がそれをどのように「解決」したかです。

私の問題は、Google Play Console(GPC)が アプリ名はアップロードした最初のパッケージ名に関連付けられている と主張することから始まります。これは 1つのアプリ= 1つのパッケージ名ルール に加えてです。まだドラフト段階にある場合は、GPCの[すべてのアプリケーション]リストからパッケージを削除し、別の名前のパッケージをアップロードできますが、一度公開されると、そのような運はありません。 GPCの設計方法により、今後のすべてのアップロードには、「。base」というサフィックスが必要です(これが私の最初のアップロードの場合)。

次に、Android Studio(AS)、何か呼ばれる manifest file merging 。(@Fantômas、あなたの聴衆はあなたほど全知ではないかもしれません-ASの動作ここに関連し、あなたの許可があればタグを返します。)バンドルのフレーバーを選択すると、マージされたAndroidManifestファイルにパッケージ名を作成するために、フレーバーの名前に接尾辞が付けられます。メインのAndroidManifest.xml。「分析」(バンドルが生成された後のリンクの名前)を選択したかどうかを確認できるため、新しく作成されたバンドル:

screenshot of Android Studio with bundle contents open

したがって、最初のアップロードでは、baseというフレーバーがありましたが、ASがパッケージ名のサフィックスとしてそれをタックしていることに気付きませんでした。その時点から、GPCは他の名前で私のアプリのパッケージを取得しなくなります。

isとは関係のないことの1つは動的な機能です-たまたま私の2回目のアップロード試行の一部でした。

最初からやり直すことができるように、アプリを削除するようGoogleに依頼しました。

0
celaeno