【问题标题】:firebase sha1 changed in same projectfirebase sha1 在同一个项目中更改
【发布时间】:2018-05-24 12:29:34
【问题描述】:

我使用 react-native-firebase 构建 react native 应用程序,并通过这些步骤生成 sha1

  1. 在 android studio 中运行项目
  2. 点击 Gradle 菜单。
  3. 扩展 Gradle 任务树
  4. 双击android -> signingReport 然后获取sha1

问题是一些开发人员在项目上工作 不同的计算机,相同的项目,但 apk 的 sha1 已更改 每次我需要从调试 apk 中获取 sha1 并上传 到 firebase 控制台,然后下载新的 google-service.json 到 android 和 googleInfo.plist 到 ios。

没有它我会收到身份验证错误,因为它无法识别谷歌服务..

我该如何解决这个问题?我做错了什么?

【问题讨论】:

    标签: android firebase react-native


    【解决方案1】:

    您可以在 build.gradle 中添加签名配置进行调试,例如

    signingConfigs {
            debug {
                storeFile file("***.jks")
                storePassword "***"
                keyAlias "***"
                keyPassword "***"
            }
    }
    

    如果多个开发人员正在开发同一个项目,它将为每个人使用相同的密钥库。

    【讨论】:

    • 不确定是否相关。我的意思是应用程序的sha1,apk。 keyAlias 和 keyPassword 是另一回事,不是吗?
    • SHA1 用于签署您正在使用的证书,因此您必须指定要在调试版本中使用的签名证书
    【解决方案2】:

    默认情况下,Android Studio 使用 Android SDK 为您创建的默认、未受保护的 debug.keystore 对所有 .apk 文件进行签名。

    您可以手动创建一个所有开发人员从现在开始都将使用的新密钥库,或者将每个开发人员的 debug.keystore 签名 (SHA-1) 作为授权密钥添加到 Firebase 项目。

    要创建新的密钥库,请使用以下命令:

    keytool -genkey -v -keystore keystore_name.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
    

    然后将其添加到您的项目中,方法是右键单击应用程序的模块,然后选择“打开模块设置”。在“签名”选项卡上,您可以看到以下内容:

    在此处添加新创建的密钥库凭据和路径,一切顺利。

    【讨论】:

    • 我不需要每次为每个开发人员生成更多内容?
    • 您只需生成一次密钥库并将其 SHA-1 签名添加到 Firebase 控制台一次。但是您必须将该密钥库分发给所有开发机器并设置 build.gradle 以使用该密钥库对项目进行签名。
    【解决方案3】:

    有两种方式:

    第一种方式:
    一种是您可以在您的 Firebase 控制台中添加所有开发人员密钥的 SHA 密钥,然后共享 JSON 文件。

    第二种方式:
    1. 创建密钥库
    2. 使用该密钥库生成 SHA。 See Here
    3.在firebase控制台添加生成的SHA并下载最新的json文件。
    4. 与其他开发者共享密钥库。
    5. 最后,要求将以下代码放入您的 build.gradel 文件的 android 部分,如下所示

    buildTypes {
            debug {
                storeFile file("your keystore path")
                storePassword "keysotre-password"
                keyAlias "keystore-alias"
                keyPassword "keystore-password"
            }
        }
    

    【讨论】:

    • 我做的第一种方法是一个开发人员,他的 sha1 每次都改变,我们的 firebase 控制台有 10 个不同的 sha1,每次更新到每个开发人员都需要时间
    • 是的,我知道它的恐慌,只做第二件事,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2015-10-09
    • 2017-07-22
    • 2022-01-26
    • 2021-10-13
    相关资源
    最近更新 更多