app-release-unsigned.apk未签名

时间:2014-07-28 18:07:31

标签: android github android-studio digital-signature

我在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。 我该怎么办?

16 个答案:

答案 0 :(得分:367)

如果有人想使用Android Studio调试发布版本,请按以下步骤操作:

  1. 将构建变体设置为释放模式。
  2. enter image description here

    1. 右键单击左侧导航窗格中的应用,然后点击打开模块设置

    2. 转到签名标签。添加签名配置并填写信息。选择你的钥匙串。

    3. enter image description here

      1. 转到构建类型标签。选择发布模式并设置:
      2. -Debuggable to true

        - 将配置设置为 config 。 (你刚刚创建的那个)。

        enter image description here

        同步你的gradle。享受!

答案 1 :(得分:90)

确保在Android Studio中将构建变体设置为 debug (而不是 release )(检查构建变体< / em> panel)。

如果设置为debug,它应该使用自动生成的调试密钥库自动签署应用程序,而不编辑构建脚本。

但是,您需要创建和配置特定的密钥库以供发布。

官方文档,涵盖调试和发布模式:https://developer.android.com/tools/publishing/app-signing.html

答案 2 :(得分:46)

始终使用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 Plugin User Guide

答案 3 :(得分:32)

我已成功调试已签名的APK,请按照以下步骤操作: -

  1. 选择&#34;发布&#34;版本&#34;构建变体&#34;工具栏
  2. 在发布版本类型
  3. 的模块集Build.gradle的{​​{1}}中
  4. 转到文件 - &gt;项目结构 - &gt;在签名标签下填写所有信息 - &gt;在Flavors下 tab-&gt;选择签名您刚刚创建的配置
  5. 设置断点
  6. 以调试模式运行应用程序

答案 4 :(得分:13)

如果您想在调试模式下运行应用

1)看左侧底部,收藏夹上方有构建变体

2)单击Build Variants。点击发布,然后选择调试

它完美无缺!!!

答案 5 :(得分:5)

出于安全原因,您无法在Android上安装未签名的apk。因此,如果您只有未签名的apk:您必须签名。以下是如何执行此操作:link

请注意,您可以使用自签名证书对apk进行签名。

替代方案可以是:

  • 下载已签名的apk(如果有)。
  • 下载源代码,编译它们(使用Android-Studio或gradle或...)。它将生成多个apks,其中一个将使用您的调试密钥签名(因此您将能够安装它)

答案 6 :(得分:5)

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

答案 7 :(得分:5)

如果有人想使用Android Studio 3.5调试和发布单独的构建版本,请执行以下步骤: 1.将构建变体设置为发布模式。

Build Variant

  1. 转到>>文件>>项目结构>>
  2. 选择签名配置 4.单击“签名配置”下的加号图标

Signing Config

  1. 选择发布部分,并提供您的发布应用信息,然后单击“应用”,然后确定。

signin

  1. 转到您的应用级别build.gradle,然后更改您的buildTypes>“发布”部分,如下图所示。

final

然后运行您的项目。编码愉快。

答案 8 :(得分:2)

在工具窗口栏中选择Build Variants 将构建变体从发布更改为调试

答案 9 :(得分:2)

我的问题是通过改变Stéphane建议的构建变体来解决的,如果有人在努力寻找“构建变体”,我在这里做的是截图,你可以找到它。

enter image description here

答案 10 :(得分:1)

我如何解决此问题

发生此错误是因为您已将构建变体设置为发布模式。将其设置为构建模式并再次运行项目。

如果要在发布模式下运行,只需在发布应用程序时按照我们通常的方式生成签名的apk

答案 11 :(得分:0)

我的解决方案是将签名配置的名称从默认的“config”更改为“debug”。为了验证,我将其更改为其他随机名称并再次出现错误,然后将其更改回“debug”并且错误消失了。因此,虽然它似乎是人为的,我倾向于不相信这是整个故事,但试试这个解决方案。

答案 12 :(得分:0)

我也出现了这个问题,我的代码在下面

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

原因是属性名称错误,应该是keyPassword而不是keypassword

答案 13 :(得分:0)

最终对我有用的,我不知道为什么,是:

  • 进入LastPass(我用来保留所有密码的服务)
  • 通过将光标放在密码上方并双击来选择我的密码
  • 选择后,我按cmd C复制
  • 参加Android研究并粘贴cmd V

注意,我确实尝试过多次复制,方法是单击密码的末尾以选择密码,然后通过移动鼠标选择密码。

这很奇怪,但是只能通过双击密码顶部的副本来工作。

我也确实使用了@NightFury在这篇文章中介绍的“打开模块设置”>“签名...”方法。

答案 14 :(得分:0)

对于Gradle Kotlin 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")
    }
}

答案 15 :(得分:-1)

在build.gradel文件中添加下面的代码行对我有用,如图所示在发布下面的buildTypes块下添加它们

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        applicationIdSuffix ".debug"
        debuggable true
    }