0

私はここで公開されている Android オープン ソース アプリケーションを持っていますhttps://github.com/evilsocket/dsploit ... ダウンロード セクションでわかるように、ユーザーにプリコンパイルされた apk パッケージを配布しています。

このアプリは、非常に単純な自動更新エンジンを実装しています。

  1. 起動時に、利用可能な最新バージョンの文字列を含む github リポジトリ内のファイル VERSION をチェックし、それを実行中のバージョン名と比較します。
  2. リモート バージョン > ローカル バージョンの場合、アプリはリポジトリから新しい apk をダウンロードします。

問題は、インストール プロセスの開始時に次のことを行うことです。

Intent intent = new Intent( Intent.ACTION_VIEW );
intent.setDataAndType( Uri.fromFile( file ), "application/vnd.android.package-archive" );
intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK );

mContext.startActivity(intent);

次のエラー メッセージが表示されます。

An existing package by the same name with a conflicting signature is already installed.

eclipse で apk を作成するには、署名済みの apk をエクスポートし、バージョンごとに新しいキーストアを作成します...常に同じキーストアを使用する必要がありますか?

ありがとう

4

1 に答える 1

1

はい!常に同じキーストアを使用する必要があります。実際、Google Play ストアを使用していた場合、更新が別のキーストアで署名されていると、更新を投稿できません。最初の apk の署名に使用したものと同じキーストアがなくなった場合は、ユーザーがアプリをアンインストールして新しいバージョンをインストールする必要があります。今後、同じキーストアを使用すると、プロセスはスムーズに進むはずです。

于 2012-10-02T19:16:39.683 に答える