Google Play App Signing
时,我同意messsage: DEVELOPER_ERROR
,error code: 10
注意1:我的应用不使用firebase
注意2:如果我将apk直接安装到我的设备中,登录似乎可以正常工作
我确定问题与使用Google Play App Signing签署应用程序的方式有关,但我无法隔离问题
google-services.json
并将其添加到/android/app
下,如果我从发布管理页面下载并手动安装,该应用现在可以正常运行。如果我直接从Google Play商店安装它仍然无效。答案 0 :(得分:5)
google-services.json
时,需要提供App signing certificate
SHA-1 certificate fingerprint
;我提供了Upload certificate
的{{1}},这就是为什么它不能用于制作。 SHA-1 certificate fingerprint
,另一个包含App Signing certificate
和一个oauth客户端ID类型为Upload certificate
且在使用web
时,您需要指定react-native-google-signin
。答案 1 :(得分:3)
这非常简单,请转到播放商店帐户,在该帐户中上传已签名的APK。选择您的应用,然后转到发布管理部分,然后应用签名。
复制App Signing证书的SHA1密钥。
转到此链接https://developers.google.com/identity/sign-in/android/start-integrating
点击配置项目按钮
选择您的应用,选择Android,应用您的应用包名称,然后粘贴SHA1证书
然后单击创建。就是这样。
现在您可以在应用中使用Google登录
答案 2 :(得分:1)
您在调试模式下为应用添加了sha-1密钥,此时您将可以在应用中使用Google登录。 但随着应用程序投入生产,它需要sha-1密钥才能生产。 而且你需要在firebase控制台上添加。 您可以检查您的firebase控制台并检查Android应用程序。
#include <array>
#include <iostream>
template <std::size_t ...>
struct indexSequence
{ };
template <std::size_t N, std::size_t ... Next>
struct indexSequenceHelper : public indexSequenceHelper<N-1U, N-1U, Next...>
{ };
template <std::size_t ... Next>
struct indexSequenceHelper<0U, Next ... >
{ using type = indexSequence<Next ... >; };
template <std::size_t N>
using makeIndexSequence = typename indexSequenceHelper<N>::type;
template <std::size_t N>
struct foo
{
std::array<int, N> arr;
template <std::size_t I>
int & bit ()
{ return arr[I]; }
};
template <std::size_t Sh, typename T, std::size_t ... Is>
void shiftValHelper (T & t, indexSequence<Is...> const &)
{
using unused = int[];
(void)unused { 0,
(t.template bit<Is+Sh>() = t.template bit<Is>(), 0)... };
}
template <std::size_t Sh, std::size_t N, typename T>
void shiftVal (T & t)
{ shiftValHelper<Sh>(t, makeIndexSequence<N>{}); }
int main ()
{
foo<10U> f { { { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 } } };
for ( auto const & i : f.arr )
std::cout << i << ' ';
std::cout << std::endl;
shiftVal<2, 10-2>(f);
for ( auto const & i : f.arr )
std::cout << i << ' ';
std::cout << std::endl;
}
上面的commad有助于为调试版创建sha-1密钥。
您需要为生产sha-1提供已签名的密钥库文件路径。 这将通过命令
完成keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
您只需要为已发布的apk提供密钥库文件的特定路径。
答案 3 :(得分:1)
昨天我也遇到了同样的问题。
Google在Playstore发布控制台中发布了一项新的签名服务,其中Google会使用其密钥库登录您的应用。签名后,它将为您提供一个新的SHA,您必须将其添加到您的fire enter image description here基本帐户中。看到图片以获得更好的理解