ios - 在iOS中反应原生谷歌登录失败反应原生
问题描述
我运行 react-native 升级来修复 play store base 64 问题。Android 运行良好,这是我在使用 iOS 时面临的唯一问题。为构建运行时,React Native google sing in 失败。
我已经运行了以下命令:
反应原生升级@0.59.1
rm -rf node_modules && npm i
将 google sdk 4.4.0 升级到 5.0.0 和
cd ios && pod 安装 && cd ..
以下是错误:
1) 'GIDSignIn' 没有可见的@interface 声明选择器'signInSilently'
[[GIDSignIn sharedInstance] signInSilently];
2) 'GIDSignIn' 没有可见的@interface 声明选择器'hasAuthInKeychain'
RCT_REMAP_METHOD(isSignedIn,
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
{
BOOL isSignedIn = [[GIDSignIn sharedInstance] hasAuthInKeychain];
resolve([NSNumber numberWithBool:isSignedIn]);
}
3) 'GIDSignIn' 没有可见的@interface 声明选择器'handleURL:sourceApplication:annotation:'
+ (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation: (id)annotation {
return [[GIDSignIn sharedInstance] handleURL:url
sourceApplication:sourceApplication
annotation:annotation];
}
4) 使用未声明的标识符“kGIDSignInErrorCodeNoSignInHandlersInstalled”
case kGIDSignInErrorCodeNoSignInHandlersInstalled:
请让我知道是否有人可以帮助我...谢谢!
解决方案
我不是专家并且完全理解,但在从文档中了解详细信息后提出了我自己的方法。
第 4 点在 5.0.0 中已弃用,因此请注释掉或删除它。第 1 点和第 2 点您需要在 GoogleSignIn.h 文件中输入,但根据文档,hasAuthInKeychain 被替换为 hasPreviousSignIn 并且 signInSilently 已被替换为 hasPreviousSignIn。
您可以通过将 signInSilently 和 hasAuthInKeychain 条目添加到 GoogleSignIn.h 文件来克服该错误。
您可以参考https://developers.google.com/identity/sign-in/ios/release中的详细信息。
推荐阅读
- java - 使用 Morphia 的 MongDB Atlas SRV 连接
- php - Codeigniter(3) 表单验证对于 GET 方法总是返回 FALSE
- javascript - 在javascript中使用split函数后如何推送变量?
- android - 找不到 react-native-fs 路径?
- python - 使用正则表达式提取日期和文件名
- powershell - 在 powershell $null 属性中过滤或查询
- angular - Angular 不会在 api 中发布数据
- c# - 在 Visual Studio 中针对多个配置运行单个测试
- javascript - 使用 lodash 和日期对数组对象进行排序
- python - 训练yolo自定义检测以及如何制作应用?