gpt4 book ai didi

gradlew assembleDebug 需要我的发布 key 密码

转载 作者:行者123 更新时间:2023-12-03 04:53:21 25 4
gpt4 key购买 nike

我将签名设置添加为 the guide说。现在当我运行 ./gradlew assembleDebug ,它需要我的 keystore 和 key 密码,最后有两个APK文件:

  • ./Main/build/outputs/apk/Main-debug.apk
  • ./Main/build/outputs/apk/Main-debug-unaligned.apk

  • 所以 Gradle 构建了我的模块的调试版本,但需要发布 key 。

    构建模块的 build.gradle 文件如下。
    apply plugin: 'android'

    android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'

    signingConfigs {
    release {
    storeFile file("my-release-key.keystore")
    storePassword System.console().readLine("\nKeystore password: ")
    keyPassword System.console().readLine("Key password: ")
    keyAlias "my_key"
    }
    }

    defaultConfig {
    minSdkVersion 9
    targetSdkVersion 19
    versionCode 1
    versionName "1.0"
    }

    buildTypes {
    release {
    runProguard true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    signingConfig signingConfigs.release
    }
    }
    }

    dependencies {
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'
    compile project(':Log-Wrapper')
    compile 'com.google.android.gms:play-services:+'
    }

    更新#1。

    https://stackoverflow.com/a/24281294/1065835上的解决方案有效,我接受了答案。但我个人更喜欢使用 here 描述的方法.发布 key 安全地存储在本地,编译发布版本时无需每次都输入密码。

    最佳答案

    似乎我可以合并一些在这里和那里收集的建议......并且我得到了它的工作。

    问题似乎是在 build.gradle 中编写 ANYWHERE 类似的事实:

    storePassword System.console().readLine("\nKeystore password: ")

    它将随时执行。

    我放在一起的解决方案是,在 buildTypes block 之前创建一个 signingCongif block :
    signingConfigs {
    release {
    storeFile file("c://my.keystore")
    storePassword "" // REQUIRED otherwise cannot be overwritten
    keyAlias "myAlias"
    keyPassword "" // REQUIRED otherwise cannot be overwritten
    }
    }

    buildTypes {
    [...]

    并使用以下方法调整 gradle 配置:
    gradle.taskGraph.whenReady { taskGraph ->
    if(taskGraph.hasTask(assembleRelease) || taskGraph.hasTask(installRelease)) {
    // Only execute when we are trying to assemble a release build
    def passKeystore = System.console().readLine("\nKeystore password: ")
    def passKey = System.console().readLine("\nKey password: ")
    android.signingConfigs.release.storePassword = passKeystore
    android.signingConfigs.release.keyPassword = passKey
    }

    }

    注意:
    1. 这个 block 在“android {}” block 之前。
    2. 这仅在命令行执行中进行了测试。在没有可用控制台的情况下,似乎需要进行一些修复。

    关于gradlew assembleDebug 需要我的发布 key 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109047/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com