使用 Codemagic 构建的 Success Apk 不适用于 Firebase

Posted

技术标签:

【中文标题】使用 Codemagic 构建的 Success Apk 不适用于 Firebase【英文标题】:Success Apk built with Codemagic does not work with Firebase 【发布时间】:2021-08-03 05:17:10 【问题描述】:

我已经使用 Codemagic 成功创建了一个使用 Firebase Google Sign In 和 Cloud Firestore 的 android Flutter 应用程序的构建。我只使用 Android(不是 ios)。 Firebase 的 google-services.json 用于使用 Codemagic 构建 apk。我不发布,只创建构建。 问题是应用程序在 Flutter 运行(在 VSCode 上)完美运行,但使用 Codemagic 的 apk 构建,我无法从 Cloud Firestore 登录/获取数据。

用Android Studio调试后报错如下:

2021-05-13 11:58:08.006 7011-7011/com.luisbarqueira.expenses_control E/libEGL: call to OpenGL ES API with no current context (logged once per thread)
2021-05-13 11:58:29.297 7011-7475/com.luisbarqueira.expenses_control E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: PlatformException(network_error, com.google.android.gms.common.api.ApiException: 7: , null, null)
    #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:581:7)
    #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:158:18)
    <asynchronous suspension>
    #2      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:358:43)
    <asynchronous suspension>

【问题讨论】:

【参考方案1】:

这可能是因为您没有在 android 上添加互联网权限。在调试模式下默认启用,但在发布模式 (apk) 下,您必须在 AndroidManifest.xml 中添加以下行:

<manifest xmlns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET" />
 <application ...
</manifest>

Reference on flutter.dev

【讨论】:

我正在调试模式下在 Codemagic 上构建 apk,因此我认为您的回答不适用。顺便说一句,我在进入 Codemagic 时使用的是我的应用程序的调试版本。 好的,但是你试过了吗?因为我认为这一定是互联网的问题。 由于我处于调试模式,因此默认情况下它存在,就像您告诉我的那样。我查过了,没错。

以上是关于使用 Codemagic 构建的 Success Apk 不适用于 Firebase的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在为 Flutter 使用 codemagic 构建代码时出现“无法为 iOS 构建”?

尝试使用 codemagic 构建我的颤振应用程序时“App.framework 不支持配置文件”

Flutter:无法在 codemagic 上为 ios 构建

Codemagic 自动构建没有被触发

构建在本地工作,但在 codemagic 上失败 |任务“:app:stripDebugDebugSymbols”执行失败

如何避免在codemagic中从git触发构建