Android アプリケーションのアップグレード中に、パッケージ名を変更しました。ただし、Android マーケットでは、パッケージ名を変更したアプリケーションをアップグレードとしてアップロードすることは許可されていません。アプリケーションを新しいアプリケーションとしてアップロードした場合、ユーザーのデバイスには 2 つのアプリケーションがありますか? パッケージ名の変更を元に戻さずに、ユーザーがアプリケーションを最初からダウンロードし直す必要がないようにするにはどうすればよいですか?
3 に答える
2つのパッケージ=市場での2つの異なるアプリケーション。1つのアプリをアップロードすると、そのパッケージは同じになります。また、キーは同じである必要があります。
Android マーケットは、ソース内の実際のパッケージ名ではなく、マニフェスト内のパッケージ名のみを考慮します。
マニフェスト属性で古いパッケージ名を指定してから、アクティビティに相対ではなく新しいパッケージ名を指定することができます (つまり、.MainActivity)
このような:
<manifest package="your.old.package" ...>
...
<application android:name="your.new.package.MainActivity" ...>
働くことができた..
この方法で、同じプロジェクトとコードを使用して、アプリの 2 つのバージョン (有料/無料) を提供する予定です。
パッケージ名を変更すると、それは別のアプリとして扱われます-市場だけでなく、apkは一般に、同じパッケージ名を「置き換える」だけです(両方が同じキーで署名されている場合のみ)。
両方のキーを使用して中間パッケージに署名することで新しいキーに段階的に移行することは可能ですが、現在、パッケージ名を段階的に移行する簡単な方法はありません。
できる最善のことはこれです:
- 新しいapkバージョンは同じキーで署名されていますが、パッケージ名が異なります。
- インストールすると、新しいapkは
shared_prefs
古いパッケージ名でを使用するように調整されます。 - データは新しいパッケージ名にコピーされます。
- 新しいバージョンは古いバージョンの削除を要求し、ユーザーにはアンインストールダイアログが表示されます。
通常、アプリのデータはここに保存されます。
/data/data/pac.kage.name/
私はこれを試したことがないので、これ以上詳細を説明することはできません。パッケージ名をシームレスに移行する方法についての私のリクエストにも興味があるかもしれません。