web-dev-qa-db-ja.com

app-release-unsigned.apkは署名されていません

私は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を使っています。私はどうしたらいいですか?

155
andrew

誰かがAndroid Studioを使用してデバッグリリースビルドする場合は、次の手順に従います。

  1. ビルドバリアントをリリースモードに設定します。

enter image description here

  1. 左側のナビゲーションペインでappを右クリックし、Open Module Settingsをクリックします。

  2. 署名タブに移動します。署名設定を追加して情報を入力します。キーチェーンも選択してください。

enter image description here

  1. ビルドタイプタブに移動します。リリースモードを選択して設定します。

- trueにデバッグ可能。

- Configをconfigに署名します。 (作成したもの).

enter image description here

グラドルを同期してください。楽しい!

372
NightFury

ビルドバリアントdebugに設定されていることを確認します(releaseは設定されません)。 Android Studioで(ビルドバリアントパネルを確認してください)。

Debugに設定すると、ビルドスクリプトを編集せずに、自動生成されたデバッグキーストアを使用してアプリに自動的に署名する必要があります。

ただし、リリース用に特定のキーストアを作成して設定する必要があります。

デバッグとリリースモードをカバーする公式ドキュメント: https://developer.Android.com/tools/publishing/app-signing.html

91
Stéphane

次のように常に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ビルドシステムについてもう少し理解したい場合は、以下のサイトにアクセスしてください。

Gradleプラグインユーザーガイド

48
Martin Revert

私は正常に署名されたAPKをデバッグすることができました、この手順に従ってください -

  1. "Build Variant"ツールバーで "release"バージョンを選択してください
  2. モジュールのBuild.gradleで、リリースビルドタイプのdebuggable trueを設定します。
  3. [ファイル] - > [プロジェクト構造] - > [署名]タブの下にある[すべての情報を入力] - > [フレーバー]タブの下にあります。
  4. ブレークポイントを設定する
  5. デバッグモードでアプリケーションを実行する
33
Mohammad Khan

アプリをデバッグモードで実行したい場合

1)左側の下を見て、お気に入りの上に---がありますBuild Variants

2)Build Variantsをクリックしてください。リリースをクリックしてdebugを選択してください

それは完璧に動作します!

13

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
        }
    }
6
NickUnuchek

セキュリティ上の理由から、Androidにunsigned apkをインストールすることはできません。あなたが唯一の未署名のapkを持っているのであれば:あなたはそれに署名する必要があります。これを行う方法は次のとおりです。 link

自己署名証明書でapkに署名することができます。

代替手段は以下のいずれかです。

  • 利用可能な場合は、署名付きAPKをダウンロードします。
  • ソースをダウンロードするには、それらをコンパイルします(Android-Studioまたはgradleまたは...を使用)。それは複数のAPKを生成し、それらのうちの1つはあなたのデバッグキーで署名されるでしょう(そしてあなたはそれをインストールすることができるでしょう)
5
ben75

あなたがダウンロードしたアプリプロジェクトはbuild.gradleのファイルに署名された情報を含むかもしれません。あなたがこれらのようなコードを見たならば:

buildTypes {
    debug {
        signingConfig signingConfigs.release
    }
    release {
        signingConfig signingConfigs.release
    }
}

それらを削除してやり直してください。

4
Alex Tam

ツールウィンドウバーで、[バリアントのビルド]を選択し、[ビルドバリアントをリリースからデバッグ]に変更します。

2
Bhaskar Vaddadi

私がここでやったように誰かが "Build variant"を見つけるのに苦労していたら、私の問題はStéphaneが示唆しているようにbuild variantを変更することで解決されました。

enter image description here

2
yehyatt

どのように私はこれを解決しました

このエラーは、ビルドバリアントをリリースモードに設定したために発生します。ビルドモードに設定してプロジェクトを再実行してください。

リリースモードで実行したい場合は、アプリをリリースするときに通常の方法で署名付きapkを生成してください。

1
Benja

私はまたこの問題、そして私のコードの下に表示されます

        storeFile file(properties.getProperty("filepath"))
        storePassword properties.getProperty("keypassword")
        keyAlias properties.getProperty("keyAlias")
        keyPassword properties.getProperty("keypassword")

その理由はプロパティ名の誤りです。keypasswordではなくkeyPasswordであるべきです。

0
xmliu

グラドルコトリン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")
    }
}
0
Evgenii Vorobei

私の解決策は私の署名している設定の名前をデフォルトの "config"から "debug"に変更することでした。確認するために、私はそれを他のランダムな名前に変更してエラーを再取得し、それからそれを "debug"に戻してエラーがなくなりました。したがって、それは人工的で、私はこれが全体の話であるとは思わないが、この解決策を試してみてください。

0
elliptic1

ついに私のために働いた、そして私はその理由がわからない。

  • LastPassに行った(私が使用しているすべてのパスワードを保持するサービス)
  • パスワードの上にカーソルを置いてダブルクリックしてパスワードを選択します。
  • 選択したら、コピーするcmd Cを押します
  • アンドロイドスタディとcmd Vに貼り付けに行きました

パスワードの末尾をクリックしてパスワードを選択し、マウスを動かしてパスワードを選択して、何度もコピーしようとしたことに注意してください。

それは奇妙ですが、それはそれをコピーするためにパスワードの上でダブルクリックすることによってだけ働いた。

また、この投稿で@NightFuryが説明したOpen Module Settings> Signing ...メソッドを使用しました。

0
Rudy Espadas