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

应该是格拉德。属性是否在gitignore中,以便react本机项目隐藏发布密码?

谷梁楚青
2023-03-14

我正在开发一个windows上的react本地应用程序。为了能够生成签名的发布apk,我已经将< code > MYAPP _ RELEASE _ STORE _ PASSWORD = * * * 和< code > MYAPP _ RELEASE _ KEY _ PASSWORD = * * * 添加到我的< code >/project name/Android/grad le . properties 文件中(就像这里所说的那样)。现在我在想,是不是应该把文件添加到gitignore,防止上传到github,或者有没有办法把密码保存在不同的文件里?

共有3个答案

宿衡虑
2023-03-14

您可以创建${HOME}/.gradle/gradle。属性,因为它在默认情况下不存在,至少在Windows上不存在。

将密钥放在那里,就像您在项目gradle.properties中一样。您可以在此处看到优先级顺序。

顾学真
2023-03-14

您可以将该信息添加到${HOME}/. gradle/gradle.properties上的超级gradle.properties文件中,它应该已经为您准备好了。

您还可以在 app/build.gradle 上重命名这些属性,并在需要时对不同的项目使用不同的属性。

例如,我的项目FOO有

112         release {
113             storeFile file(FOO_RELEASE_STORE_FILE)
114             storePassword FOO_RELEASE_STORE_PASSWORD
115             keyAlias FOO_RELEASE_KEY_ALIAS
116             keyPassword FOO_RELEASE_KEY_PASSWORD
117         }

在我的${HOME}/.gradle/gradle.properties上,我有:

1 FOO_RELEASE_STORE_FILE=foo-release-key.keystore
2 FOO_RELEASE_KEY_ALIAS=foo.android
3 FOO_RELEASE_STORE_PASSWORD=******************
4 FOO_RELEASE_KEY_PASSWORD=***************
公羊学义
2023-03-14

我在这里找到了将密码存储在单独文件中的解决方案:在不将密钥库信息放入build.gradle的情况下签署APK

内置。gradle添加:

// Load keystore
def keystorePropertiesFile = rootProject.file("keystores/release.keystore.properties");
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

再往下一点:

signingConfigs { 
    release { 
        storeFile file(keystoreProperties['MYAPP_RELEASE_STORE_FILE'])
        storePassword keystoreProperties['MYAPP_RELEASE_STORE_PASSWORD']
        keyAlias keystoreProperties['MYAPP_RELEASE_KEY_ALIAS']
        keyPassword keystoreProperties['MYAPP_RELEASE_KEY_PASSWORD']
    }
}

然后将< code > release . keystore . properties 添加到< code >中。gitignore文件定义如下:

MYAPP_RELEASE_STORE_FILE=x
MYAPP_RELEASE_STORE_PASSWORD=y
MYAPP_RELEASE_KEY_ALIAS=z
MYAPP_RELEASE_KEY_PASSWORD=t

(抱歉回答我自己的问题,我讨厌那样做..)

 类似资料:
  • 我们有多模块的Android应用程序,用gradle kotlin dsl编写构建逻辑。我们使用BuildSrc来提取公共逻辑,如依赖关系版本。我们有这样的东西: : 然后,我们可以在模块的依赖项块中使用这些值,以避免硬编码/重复值: : 我们也用在settings.gradle.kts: : 这在gradle 5.6中运行正常。当我升级到6.0时,我会在设置中获得。格拉德尔。kts文件。我发现《

  • 问题内容: 我正在尝试设置一些环境变量(用于对dev / prod端点进行API调用,取决于dev / prod等的键等),我想知道使用dotenv是否行得通。 我已经安装了dotenv,并且正在使用webpack。 我的webpack条目是,因此在该文件中 然后,在我的webpack配置中,输入以下内容: 但是,它仍未定义。如何正确执行此操作? 问题答案: 最简洁的答案是不。浏览器无法访问本地或

  • 目标:开发一个跨平台设计系统,将其导入任何平台(React、React Native、Android、iOS)。 我们得到的工作:在React Native中开发的一个项目,其中开发了一些核心UI组件,以确保视觉效果在所有其他项目中保持一致。该项目作为依赖项导入到另一个成功使用这些组件的React Native应用程序中。到目前为止还不错。 我们卡住的地方:我们想在原生项目(Android和iOS

  • Spring Boot使用属性文件,至少在默认情况下,密码是纯文本的。有可能以某种方式隐藏/解密这些吗?

  • 问题内容: 我正在使用Selenium RC自动执行一些浏览器操作,但我希望浏览器不可见。这可能吗?怎么样?selenium网格呢?我也可以隐藏Selenium RC窗口吗? 问题答案: 有几种选择: 您可以使用Selenium Grid,以便在完全不同的计算机(或虚拟机)上打开浏览器,然后如果您想查看浏览器,则可以通过VNC或远程桌面连接连接到该计算机。另外,还有一个选择:如果在该远程服务器上运

  • 问题内容: Spring Boot使用属性文件,并且至少在默认情况下,密码为纯文本。是否可以以某种方式隐藏/解密这些内容? 问题答案: 你可以使用Jasypt加密属性,因此可以使属性如下所示: Jasypt允许你使用不同的算法对属性进行加密,一旦获得加密的属性,就可以将其放入。例如,你可以使用终端通过Jasypt以这种方式进行加密: 要使用Spring Boot轻松配置它,可以将其启动器jasyp