当前位置: 首页 > 知识库问答 >
问题:

将签名信息添加到gradle中的apk文件名

洪高刚
2023-03-14

在我的情况下,旧的apk文件名包含未对齐和未签名的签名信息。这些旧文件名在模块 gradle 文件中使用此方法重命名:

 applicationVariants.all { variant ->
    variant.outputs.each { output ->
        output.outputFile = new File(
                output.outputFile.parent,
                output.outputFile.name.replace(".apk", "-${variant.versionCode}-${variant.versionName}.apk"))
    }
}

版本代码和版本名称设置如下:

versionCode buildNumber()
versionName "${versionMajor}.${versionMinor}"

在此重命名的结果中,签名信息(未对齐或未签名)位于变体版本代码之前。

现在我使用的是gradle:3.0.0-beta6。因此,我无法再使用旧方法,因为outputFile已更改为只读,无法重命名。现在我尝试向gradle添加一个新的重命名方法,如下所示:

android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${archivesBaseName}-${variant.baseName}-${variant.versionCode}-${variant.versionName}.apk"
    }
}

这样,新的apk名称看起来几乎和旧的一样,但是在baseName和versionCode之间缺少签名信息。该应用程序仍未签名,所以应该有一个未签名的信息。

有人知道我如何在没有硬编码的情况下添加这些信息吗?

如果应用已签名,此信息应消失,但如果可能,则无需更改重命名方法。

共有1个答案

汪迪
2023-03-14

为了防止有人在搜索,我用以下代码解决了这个问题:

 android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${archivesBaseName}-${variant.baseName}${variant.variantData.isSigned()?"":"-unsigned"}-${variant.versionCode}-${variant.versionName}.apk"
    }
}
 类似资料:
  • 我正在制作长期签名。我试图将吊销信息(CRL、OCSP响应、证书链)作为未签名属性添加到签名中,但最终签名中未嵌入吊销信息。以下是代码片段: LTV验证。AddVerification()方法在响应中返回true。 请从以下链接找到签名文件:https://1drv.ms/b/s!AvIgyv7xAxxoihGn9aFbe9TQSps4? e=eKPdn8 在这方面的任何帮助都将受到高度赞赏。问候

  • 找到apk文件签名的最简单方法是什么?请注意,我不是在问代码。我只想从我的电脑上找到它。像这样的签名975yYkKAQF KST7g3ASHvHkYopq=

  • 由于对WP 4.1的更改,他们使用了添加主题支持(“标题标签”);允许wordpress处理标题标签。大多数情况下这很好,但我遇到了一个需要编辑它的实例。 我创建了一个简单的页面,并通过使用api动态更改页面上的内容。但当谈到搜索引擎优化,他们都有相同的网页标题。例子:http://vitaferm.com/product/?id=372 是否有一种方法可以通过配置WP的方式将我的产品标题添加到页

  • 我有一个密钥库文件,其中有两个密钥:一个用于调试构建,另一个用于发布构建类型。因此,我的gradle构建脚本根据需要生成两个APK。现在,要部署调试构建apk,android gradle插件中有installDebug任务,但是部署发布构建apk怎么样?Andorid gradle插件没有像installRelease这样的任务。如何使用gradle将版本构建apk直接部署到连接的设备?

  • 目前,我正在努力学习Gradle构建Android APK。如何在gradle中设置一个选项来构建一个未签名的APK?

  • 我有在DocuSign中创建的信封和签名者列表。我忘记在创建信封时添加唯一的ClientUserId。在应用程序中进行嵌入式签名需要Unique ClientUserId。 如何将ClientUserId添加到现有DocuSign信封的签名者?