1

したがって、これは完全で完全な初心者の質問のように聞こえるかもしれませんが、とにかく何を見つけたかを尋ねて確認します。

EclipseIDEを使用してAndroidアプリケーションに取り組んでいます。私が使用している開発マシンは2台あり(1台は仕事用、もう1台は家庭用)、1台は64ビット、もう1台は32ビットです。アプリケーションのテストに使用している電話は、Google Nexus(Verizonフレーバー、最新のドライバー)です。一方のマシンを使用してアプリケーションをビルドして実行すると、もう一方のマシンでも同じことを実行しようとすると、署名が変更されたためにADBコマンドを実行してアプリをアンインストールするように指示するコンソールエラーが発生します。

「debug.keystrore」(%USER_HOME%/。androidにあります)がマシンごとに異なるためだと私は理解しています。なぜこれを行うのですか?アプリケーションの署名は、アプリと開発マシンではなく、アプリに固有のものであると想定しました。これは正常な動作ですか?もしそうなら、それを回避するために私ができることはありますか?マシン間でファイルをコピー/貼り付けすると問題が発生するのではないかと心配なので、まだ試していません。マシンを切り替えるたびにこのファイルを移動する必要がありますか?また、アプリを公開すると、次に、コンピューターを失い、新しいコンピューターの使用を開始する必要があります(したがって、アプリケーションsigを変更します)。アプリケーションsigが異なるため、アプリをインストールしたすべてのユーザーがアプリをアンインストールする必要がありますか?

ボーナスラウンド:マシンを切り替えるたびにEclipseがSDKを検索する場所を変更する必要がないようにIDEを構成する方法はありますか(つまり、ProgramFilesディレクトリとProgramFiles(x86)ディレクトリの両方で検索するようにします) 。

4

4 に答える 4

4

アプリが同じ開発者によって作成されたことを確認するために、Androidは署名が同じであることを望んでいます。マシン間でデバッグキーを自由にコピーしてください。それはあなたのマシンやそれが32/64ビットであるかどうかとは何の関係もありません。それはあなたが同じ開発者であることを証明するだけです。

アプリをリリースするときは、次のことに十分注意する必要があります。

  1. リリースキーを非公開にして、
  2. リリースキーはいくつかの場所にバックアップしておいてください。

リリースキーを紛失した場合、疑わしいようにアプリを更新することはできません。

更新:私の答えをより完全にするために、使用するキーをEclipseに指示する方法は、[設定]->[Android]->[ビルド]の下にあるように見えます。

私はLinuxを使用しており、Eclipseは使用していません。私がやっていることは~/.android/debug.keystore、マシンからマシンにコピーするだけで、antビルドツールはそれを自動的に使用して、厄介な「証明書が一致しません」というインストールエラーを回避します。

私のリリースキーストアでは、次の行がありますant.properties

key.store=../private/my-release-key.keystore

my-release-key.keystore同じ効果を得るには、プライベートリポジトリに保管してください。

于 2012-07-11T20:34:24.110 に答える
1

プラットフォームごとに、Googleチームがさまざまなデバッグキーを作成したと思います(追跡目的のためだと思います)。これらのデバッグキーは、アプリケーションに依存しません。アプリケーションを配布する場合は、独自のキーを作成する必要があります。独自の証明書を使用してアプリケーションに署名する場合、そのような問題は発生しないはずです(この場合、証明書は、証明書の作成時に入力した属性にのみ依存するため)。[設定]->[Android]->[ビルド]で、使用するキーストアを選択できます。

于 2012-07-11T20:35:33.997 に答える
1

署名は各開発者に固有です。私の理解では、デバッグキーを使用している場合は、MACアドレスまたはその他の固有の特性を使用して任意のキーを作成します。そのため、あるマシンを搭載したデバイスにアプリをビルドしてインストールし、別のマシンを使用する場合、署名が異なるため、問題が発生します。

この問題が発生しないようにするには、他の人が述べているように、独自のキーを作成し、それを使用してビルド時に署名する必要があります。

デバッグキーを使用してアプリをリリースすることは決してありません。これは開発用であり、アプリをリリースするときは、作成した一意のキーを使用する必要があります。

これらのキーは、他のユーザーが許可なくアプリを更新しないようにするために使用されるため、独自の開発キーを作成すれば、この問題は発生しません。

開始して正しい方向に向けるのに役立つリンクは次のとおりです:http://developer.android.com/tools/publishing/app-signing.html

于 2012-07-11T20:44:46.337 に答える
0

「debug.keystore」をあるマシンから別のマシンにコピーしましたが、悪影響はありません。一方を他方で上書きするだけで、アンインストール/再インストールの問題が修正されます。デバッグキーは、開発者自身のデバイスを他の開発者のバイナリから保護するためだけにあります。

他の人が述べているように、デバッグキーを使用してアプリを公開するのではなく、developer.android.comの指示に従って、リリースキーを作成して署名する必要があります。

また、「debug」キーは、作成日(SDKのインストール時)から1年間のみ有効であることに注意してください。1年後、SDKは期限切れと通知し、新しいデバッグキーを生成します。新しいキーを他のマシンに再コピーする必要があり、古いデバッグキーで署名されたアプリをアンインストールする必要があります。

あなたが言及する他の問題に関しては、異なるSDKの場所を使用して、両方が同じAndroidプロジェクトを参照する別々のEclipseワークスペースが必要です。プロジェクトはワークスペースのサブフォルダーにある必要はないので、この分離を行うことができます。

于 2012-07-11T21:05:44.700 に答える