对签署 Android APK 感到困惑?

2023-12-12

我已按照以下步骤操作官员说要对我的 Android 应用程序进行数字签名。要在发布模式下签名,他们说要使用.keystore文件及其凭据,例如this.我正在使用 android studio,所以我得到了.jks文件代替。那么我需要在哪里保存.jks文件根据docs用于构建我的签名 APK?请对此进行简单的阐述。并说明我是否做错了什么?

Thanks.


你可以把.jks随处归档。
这意味着您可以将文件放在项目中,也可以将文件放在外部文件夹中(只需查看下面的路径)。 这取决于您的政策。

只需使用 gradle 来配置 apk 的签名即可。

android {

    signingConfigs {
        release
    }

    buildTypes {
            release {
                signingConfig signingConfigs.release
            }
    }
}

简单的方法:只需在 build.gradle 文件中定义凭据即可。

signingConfigs {
     release {
            //Pay attention to the path. You can use a relative path or an absolute path
            storeFile file("../your_key_store_file.jks")
            storePassword 'some_password'
            keyAlias 'alias_name'
            keyPassword 'key_password'

     }
  }

使用 .properties 文件将凭据存储在脚本之外(例如,如果您不想将凭据推送到 git 存储库中)。

例子:signing.properties

STORE_FILE=/path/to/your.keystore
STORE_PASSWORD=yourkeystorepass
KEY_ALIAS=projectkeyalias
KEY_PASSWORD=keyaliaspassword

然后在 build.gradle 文件中获取这些值:

signingConfigs {
        release
 }

然后定义:

def Properties props = new Properties()
def propFile = new File('signing.properties')
if (propFile.canRead()){
    props.load(new FileInputStream(propFile))

    if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
            props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
        android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
        android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
        android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
        android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
    } else {
        println 'signing.properties found but some entries are missing'
        android.buildTypes.release.signingConfig = null
    }
}else {
    println 'signing.properties not found'
    android.buildTypes.release.signingConfig = null
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对签署 Android APK 感到困惑? 的相关文章

随机推荐

  • 无法通过 Watir 连接到 Tor-Firefox

    我在通过 Ruby Watir webdriver 连接到 Tor 时遇到问题 我使用 Tor 浏览器捆绑包 问题是 当我尝试通过 Watir Selenium 连接时 我似乎无法打开 Tor 而不是常规的 Firefox 看着类似的问题
  • 两个 Android 应用和一个 Firebase 数据库

    我需要为两个 Android 应用程序使用一个 Firebase 数据库 一个应用程序将具有对数据库的写访问权限 另一个应用程序将具有对数据库的读访问权限 这两个应用程序必须分开 我无法合并它们 我可以为两个应用使用一个 Firebase
  • 如何检测 UI 和游戏对象上的点击/触摸事件

    如何在android中检测Canvas on Touch上的UI对象 例如 我有一个画布 其中有 5 个对象 例如Image RawImage Buttons InputField等等 当我触摸 Button UI 对象时然后执行某些操作
  • 根据对象属性值在 Cloudant (CouchDB) 中创建视图

    我一直在尝试找到满足此要求的解决方案 但遇到了很多死胡同 我在用着Cloudant作为我的用户文档的数据存储 每个用户文档都有一个名为 items 的字段 属性 它是一个对象数组 所以用户文档看起来像这样 id userid1 rev XX
  • 在 Swift 中创建 PDF

    我正在关注苹果的文档在 Swift 中使用 Xcode6 Beta6 创建 PDF 文件 var currentText CFAttributedStringRef CFAttributedStringCreate nil textView
  • 如何一次性将 df 列值映射到十六进制颜色?

    我有一个包含两列的 pandas 数据框 其中一列值需要映射到十六进制颜色 另一个绘图过程从那里接管 这是我到目前为止所尝试过的 部分玩具代码取自here import pandas as pd import matplotlib impo
  • 如何在R中使用fportfolio包进行非时间序列输入?

    对于 fportfolio 包 您需要将回报的时间序列作为输入 并在内部计算预期回报和时间序列的方差 然后在诸如 portfoliofrontier 或 tangencyportfolio 等函数中使用 但就我而言 我已经有了预期收益矩阵和
  • 打开键盘时无法滚动到结果末尾 (Windows Phone)

    我正在开发 Windows Phone 应用程序 但遇到了这个问题 我有一个显示搜索结果的列表控件 但是当打开键盘时 由于键盘原因 某些结果不可见 有没有办法将控件缩小到键盘边框 为了看到所有的结果 即使键盘打开 我也想滚动直到结果末尾 有
  • Java正则表达式:重复组?

    如何在 Java Regex 中定义重复组 假设一个 2 位数字 0 9 2 多次由 分隔 12 34 98 11 这是可能的还是唯一的机会 编辑 我喜欢验证和提取 在Java中你也可以使用Scanner用于此目的的 API final P
  • 持续交付的原则

    如上所述here 以下是持续交付的原则 Every build is a potential release Eliminate manual bottlenecks Automate wherever possible Have auto
  • 创建高级过滤器

    我正在尝试从 C 在 Excel 中创建高级过滤器 以将唯一数据从一张工作表复制到另一张工作表 至少我在 Excel 中得到它 并且如果我使用这样的互操作 Excel Range rang sheet2 get Range A2 Excel
  • 代码点火器 + HMVC + REST

    我正在开发基于 Codeigniter HMVC 的应用程序 我正在尝试添加一个新模块 我用菲尔 斯特金的REST 控制器 2 6 0 and Format用于将 REST API 创建为模块的库 当我尝试获取例如http api exam
  • PHP 分层数组 - 父级和子级

    我使用 PHP 和 mySQLIdiorm 这可能不相关 我的 PHP 数组 这是父母和孩子之间的关系 0 是根父级 示例 根父级 0 有子级 33 其子级 27 有 孩子 71 如果需要解决问题 可以更改此数组结构 array 33 gt
  • 更新资源管理器配置而不重新启动它

    我想知道是否有一种方法可以刷新 HKLM 注册表项 HKCU SOFTWARE Microsoft Windows CurrentVersion Policies Explorer 无需重新启动 shell 我希望能够在不重新启动资源管理器
  • NestJs/TypeORM:如何保存多对多

    我正在尝试保存多对多关系 每个实体本身都运行良好 这是我正在使用的两个实体文件 location entity ManyToMany type gt User user gt user locations eager true cascad
  • mod-rewrite 转发而不改变 URL

    创建 漂亮 URL 时 我的 Apache 配置有一个小问题 我已经到了输入 或链接 到的阶段 索引 html 将您转发至 index php pageID Forside 这正是我想要的 但是如何才能让index html留在浏览器的地址
  • 如何使用VS调试服务器实现基本的HTTP认证?

    我正在为 ActiveX HTTP 控件制作一个测试装置 并且需要创建一个可以安全发布的网站 为了简单起见 我使用 VS 调试服务器运行 Web 应用程序 Web 应用程序项目是测试应用程序解决方案的一部分 AX 控件不支持 NTLM 身份
  • 无法使用 swift 3 从其数据源获取单元格

    我将以下 UITableViewController 作为 searchResultsController 附加 import UIKit import MapKit class LocationSearchTable UITableVie
  • 如果我在一页上多次使用相同的#id,除了验证错误“ID 已定义”之外,我会遇到什么实际问题?

    首先 我总是使用一个 ID 只是问这个问题才能了解其背后的深层原因 这只是 W3C 验证的问题吗 或更多 我会遇到任何实际问题还是这只是验证逻辑 看这个例子http jsbin com aniqi它适用于所有浏览器 只是验证给出错误 upd
  • 对签署 Android APK 感到困惑?

    我已按照以下步骤操作官员说要对我的 Android 应用程序进行数字签名 要在发布模式下签名 他们说要使用 keystore文件及其凭据 例如this 我正在使用 android studio 所以我得到了 jks文件代替 那么我需要在哪里