私はgithubでAndroidアプリのZipファイルをダウンロードして実行しようとしていますが、このメッセージのダイアログが表示されます。
app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
私はAndroid Studioを使っています。私はどうしたらいいですか?
ビルドバリアントがdebugに設定されていることを確認します(releaseは設定されません)。 Android Studioで(ビルドバリアントパネルを確認してください)。
Debugに設定すると、ビルドスクリプトを編集せずに、自動生成されたデバッグキーストアを使用してアプリに自動的に署名する必要があります。
ただし、リリース用に特定のキーストアを作成して設定する必要があります。
デバッグとリリースモードをカバーする公式ドキュメント: https://developer.Android.com/tools/publishing/app-signing.html
次のように常にbuild.gradle DSLスクリプトを使用してビルドに署名してください。
Android {
signingConfigs {
debug {
storeFile file("debug.keystore")
}
myConfig {
storeFile file("other.keystore")
storePassword "Android"
keyAlias "androidotherkey"
keyPassword "Android"
}
}
buildTypes {
bar {
debuggable true
jniDebugBuild true
signingConfig signingConfigs.debug
}
foo {
debuggable false
jniDebugBuild false
signingConfig signingConfigs.myConfig
}
}
}
Android Studioに関連するGradleビルドシステムについてもう少し理解したい場合は、以下のサイトにアクセスしてください。
私は正常に署名されたAPKをデバッグすることができました、この手順に従ってください -
Build.gradle
で、リリースビルドタイプのdebuggable true
を設定します。アプリをデバッグモードで実行したい場合
1)左側の下を見て、お気に入りの上に---がありますBuild Variants
2)Build Variantsをクリックしてください。リリースをクリックしてdebugを選択してください
それは完璧に動作します!
signingConfigsはbuildTypesより前にする必要があります
signingConfigs {
debug {
storeFile file("debug.keystore")
}
myConfig {
storeFile file("other.keystore")
storePassword "Android"
keyAlias "androidotherkey"
keyPassword "Android"
}
}
buildTypes {
bar {
debuggable true
jniDebugBuild true
signingConfig signingConfigs.debug
}
foo {
debuggable false
jniDebugBuild false
signingConfig signingConfigs.myConfig
}
}
セキュリティ上の理由から、Androidにunsigned apkをインストールすることはできません。あなたが唯一の未署名のapkを持っているのであれば:あなたはそれに署名する必要があります。これを行う方法は次のとおりです。 link
自己署名証明書でapkに署名することができます。
代替手段は以下のいずれかです。
あなたがダウンロードしたアプリプロジェクトはbuild.gradleのファイルに署名された情報を含むかもしれません。あなたがこれらのようなコードを見たならば:
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release
}
}
それらを削除してやり直してください。
ツールウィンドウバーで、[バリアントのビルド]を選択し、[ビルドバリアントをリリースからデバッグ]に変更します。
どのように私はこれを解決しました
このエラーは、ビルドバリアントをリリースモードに設定したために発生します。ビルドモードに設定してプロジェクトを再実行してください。
リリースモードで実行したい場合は、アプリをリリースするときに通常の方法で署名付きapkを生成してください。
私はまたこの問題、そして私のコードの下に表示されます
storeFile file(properties.getProperty("filepath"))
storePassword properties.getProperty("keypassword")
keyAlias properties.getProperty("keyAlias")
keyPassword properties.getProperty("keypassword")
その理由はプロパティ名の誤りです。keypasswordではなくkeyPasswordであるべきです。
グラドルコトリンDSL用
signingConfigs {
create("releaseConfig") {
storeFile = file("your keystore file path")
storePassword = "storePassword"
keyAlias = "keyAlias"
keyPassword = "keyPassword"
}
}
buildTypes {
getByName("release") {
signingConfig = signingConfigs.getByName("releaseConfig")
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(getDefaultProguardFile("proguard-Android.txt"), "proguard-rules.pro")
}
}
私の解決策は私の署名している設定の名前をデフォルトの "config"から "debug"に変更することでした。確認するために、私はそれを他のランダムな名前に変更してエラーを再取得し、それからそれを "debug"に戻してエラーがなくなりました。したがって、それは人工的で、私はこれが全体の話であるとは思わないが、この解決策を試してみてください。
ついに私のために働いた、そして私はその理由がわからない。
パスワードの末尾をクリックしてパスワードを選択し、マウスを動かしてパスワードを選択して、何度もコピーしようとしたことに注意してください。
それは奇妙ですが、それはそれをコピーするためにパスワードの上でダブルクリックすることによってだけ働いた。
また、この投稿で@NightFuryが説明したOpen Module Settings> Signing ...メソッドを使用しました。