Flutter flatter google_sign_in crash:_例外预处理+;294

Flutter flatter google_sign_in crash:_例外预处理+;294,flutter,Flutter,我正在使用Flitter应用程序中的插件登录。使用代码中的代码登录只是: GoogleSignIn _googleSignIn = new GoogleSignIn( scopes: <String>[ 'email', 'https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive.metadata', ], ); Future<Nu

我正在使用Flitter应用程序中的插件登录。使用代码中的代码登录只是:

GoogleSignIn _googleSignIn = new GoogleSignIn(
  scopes: <String>[
    'email',
    'https://www.googleapis.com/auth/spreadsheets',
    'https://www.googleapis.com/auth/drive.metadata',
  ],
);

Future<Null> _handleSignIn() async {
    print("_handleSignIn");
    try {
      await _googleSignIn.signIn();
    } catch (error) {
      print("We failed");
      print(error);
    }
  }
我没有构建iOS应用程序的经验,所以我可能做错了什么。我遵循并添加了firebase.com上的
GoogleService Info.plist
,并按照指示更新了我的
Info.plist


有什么想法吗?有没有办法获得更好的错误消息,以便我能找出可能的错误?

不确定问题出在哪里。我把它重新做了一遍,现在它成功了。可能是剪切粘贴错误

我做的唯一一件新事情是在General选项卡中将团队设置为我的个人团队。以前它是未设置的。不知道这是否重要


也有同样的问题。这是因为我添加了谷歌和Facebook登录

解决方案: 调整Info.plist。搜索
CbundleUrlTypes
。你会看到你有两次。这是错误的。从Facebook部分复制
fb????
部分,并将其粘贴到Google部分的相同数组中。然后从Facebook部分删除
CFBundleURLTypes

背景: 如果您只是按照Google登录和Facebook登录的说明操作,那么您将为Google粘贴一个
CFBundleURLTypes
部分,为Facebook粘贴一个部分。只有后一个会被接走。所以谷歌的那个不在里面。因此,当尝试使用谷歌登录登录时,它将引发异常,因为它的设置不正确。因为谷歌url方案被facebook方案覆盖了

帮助我解决问题的相关问题:


如果您成功地将
GoogleService Info.plist
移动到正确的目录,并将
CFBundleURLTypes
添加到您的
Info.plist
中,但仍然遇到崩溃,那么原因可能在于软件包本身的谷歌签名

iOS设备上的此软件包存在已知问题()

长话短说:一个名为@buuth的用户发现,对于属性
hostedDomain
clientId
,只需要显式地设置它们,就可以简单地进行空检查

GoogleSignIn googleSignIn = GoogleSignIn( 
  scopes: ['email','profile'],
  hostedDomain: "", 
  clientId: "",);

我的案例是,我更新了
GoogleService Info.plist
,但忘记了根据
Info.plist中的
REVERSED\u CLIENT\u ID
更新
CFBundleURLTypes
,很高兴您能够修复它。如果你能找到一个可靠的方法来重现崩溃,尽管考虑到这个问题,我不知道到现在为止我是怎么意识到的,但是非常感谢,我用VS代码使用的PLIST插件应该已经警告过我一个理想的重复条目,但是现在我会更小心一些。谢谢兄弟,这个解决方案对我来说是有效的。但每一次,它都要求提供不显示以前登录帐户的凭据。。你注意到了吗?
GoogleSignIn googleSignIn = GoogleSignIn( 
  scopes: ['email','profile'],
  hostedDomain: "", 
  clientId: "",);