【问题标题】:Android Studio - Run signed apk on emulatorAndroid Studio - 在模拟器上运行签名的 apk
【发布时间】:2014-09-13 17:44:30
【问题描述】:

这听起来可能非常微不足道,但作为一个 android 新手,我发现自己被大量的哈希令牌密钥库和密钥工具所淹没,这可能有点让人不知所措。

我正在尝试让 android studio 在使用我的自定义密钥库而不是 debug.keystore 签名的模拟器上运行我的应用程序

这是一个选项,还是我每次进行更改时都必须生成一个签名的 .apk,然后通过 adb 安装它,然后从模拟设备的菜单中运行它?

这也是测试应用程序时的一种好习惯还是我应该避免它?

【问题讨论】:

  • 为什么要使用自定义密钥库构建?
  • @ScottBarta 我的应用程序使用 facebook 登录,所以我需要向他们注册一个有效的密钥哈希,所以我想使用准备好后发布的那个
  • 我对编写 Facebook API 应用程序不太熟悉,因此我无法评论这是否是正确的做法。但我在下面回答了你的问题。
  • @ScottBarta 我实际上有同样的问题,但因为我想运行 MapFragment(谷歌地图),因为它需要一个注册的密钥(由 SHA1 从密钥库获得),因此我需要签署 apk文件我部署到我的设备(用于测试和开发)。 Afaik 没有其他办法,所以我敢说这是一个有效的问题。

标签: android android-studio apk


【解决方案1】:

在使用 Android Studio UI 创建签名配置时遇到问题后,我成功地通过 gradle 构建文件进行了设置。

打开您的项目 build.gradle 文件。它应该包含如下内容:

android{
    //signingConfigs goes here
    defaultConfig{
        //SDK version, version code etc
    } 

     //Some more stuff
}

如果还没有,请在 android {

下方添加以下 sn-p
signingConfigs {
    debug {
        storeFile file(project.property("MyApp.signing"))
        storePassword project.property("MyApp.signing.password")
        keyAlias project.property("MyApp.signing.alias")
        keyPassword project.property("MyApp.signing.password")
    }
}

现在在您的 build.gradle 文件所在的同一目录中,您应该有一个 gradle.properties 文件(如果没有,请创建它)。我们现在将上面使用的属性添加到属性文件中以映射值:

MyApp.signing=RelativeOrAbsolutePathToKeystore
MyApp.signing.password=yourPassword
MyApp.signing.alias=aliasNameOfYourKeystore

keystore.jsk 文件(通过 Android Studio 生成)位于 app 目录(属性文件所在的目录)上方的一个示例:

MyApp.signing=../myapp.keystore.jsk
MyApp.signing.password=helloworkd
MyApp.signing.alias=myapp_alias

然后,上述配置将使用密钥对调试版本进行签名(因为我们的 signingConfigs 是为调试版本制作的)。

因此,请确保在 Android Studio 中,将您的构建变体设置为“调试”。如果您想为发布构建执行所有这些操作,请将您的构建变体切换为发布,并将您的签名配置切换为发布 {...} 而不是调试{...},或者如果您想在它们之间切换,只需添加两者。

【讨论】:

  • 很好的答案!谢谢!
  • 为了完整性,我已经 +1 了,但完全衡量山羊为什么 Android Studio 如此糟糕。?使用 Eclipse,这是一键式解决方案。
  • 这行得通,但我不喜欢清楚地显示密码。有没有办法避免它? (例如,使用加密密码)
【解决方案2】:

您只需将签名配置添加到调试构建类型,它就会使用它。您可以通过“项目结构”对话框执行此操作 - 在您的模块中,选择“签名”选项卡并配置您的签名信息,然后在“构建类型”选项卡中,为“签名配置”弹出窗口选择它。

【讨论】:

  • 更改了这些设置(Android Studio 0.8.2),一旦我保存它们,我的 gradle 构建就惨遭失败(调试 - gradle 配置中的符号突然为空),无法真正进行签名。将尝试修复它,但直接编辑 gradle 文件似乎更好。
  • 完美地为我工作
  • 这应该是 OP 想要的答案,点击“运行”现在会为模拟器和 adb 设备生成一个签名的应用程序
【解决方案3】:

现在在 Android Studio 3 中非常简单

在您的build.gradle 文件中配置signingConfigsrelease buildTypes 并转到构建菜单。

构建 -> 选择构建变体

有两个选项模块和构建变体。

模块为app,构建变体为release

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    相关资源
    最近更新 更多