为什么我的应用程序崩溃时,我试图登录谷歌在ios-prod风味?



我正在尝试设置不同的firebase项目,用于开发和生产口味和xCode方案。在Android上运行良好. 但是,在IOS中当我尝试使用prod flavor登录google_sign_in时它使应用程序崩溃,没有任何输出。在开发版本中它也能很好地工作.

为了设置这个,我遵循了这个帖子

我想问题可能在这里:

改变不同的REVERSED_CLIENT_ID取决于我这样做的味道(这也包括在我之前提到的帖子):

我将此添加到ios/Flutter/Debug.xcconfigios/Flutter/Release.xcconfig

GOOGLE_SERVICE_REVERSED_CLIENT_ID = {Your REVERSED_CLIENT_ID found in GoogleService-Info.plist file}

在我的ios/Runner/info.plist上,我改变了这个:

<key>CFBundleURLSchemes</key>
<array>
<string>myOldReversedClientId</string>
</array>

:

<key>CFBundleURLSchemes</key>
<array>
<string>$(GOOGLE_SERVICE_REVERSED_CLIENT_ID)</string>
</array>

最后在xCode在Build Settings -> User-Defined我定义了我的变量GOOGLE_SERVICE_REVERSED_CLIENT_ID根据每个环境:

Debug-dev = com.googleusercontent.apps.{dev client-id}
Debug-prod = com.googleusercontent.apps.{prod client-id}
Profile-dev = com.googleusercontent.apps.{dev client-id}
Profile-prod = com.googleusercontent.apps.{prod client-id}
Release-dev = com.googleusercontent.apps.{dev client-id}
Release-prod = com.googleusercontent.apps.{prod client-id}

(显然,使用每个GoogleService-Info.plist的REVERSED_CLIENT_ID)

另外,当我实现GoogleSignIn类时,我这样做:

GoogleSignIn(clientId: DefaultFirebaseOptions.currentPlatform.iosClientId).signIn()

我的ios/runner文件夹中没有GoogleService-Info.plist文件

因为它适用于开发风格,但它不适合产品风格,我认为当我实现GoogleSignIn类并定义clientId时,这可能是一个问题。也许我正在传递一个Id,它适用于开发风味,但不适合产品风味,但我不确定,我不知道我有哪个其他的选择。

已解决。

我必须这样签名:

GoogleSignIn().signIn()

最新更新