gpt4 book ai didi

ios - 为什么我的 Flutter 应用在​​ iOS 上启动时会崩溃?

转载 作者:行者123 更新时间:2023-12-01 16:12:22 25 4
gpt4 key购买 nike

我正在尝试使用 Flutter for iOS 和 Android 构建一个简单的应用程序,但是当我尝试在 iPhone 上运行它时,该应用程序在启动时崩溃(Android 运行良好)。我没有 Mac,所以我使用 Codemagic 编译发布版本并部署到 TestFlight,然后从那里安装到​​ iPhone 上。据我所知,Apple 只在 Xcode 中显示了他们的崩溃日志(App Store Connect 在线中什么都没有?),因为我没有 Mac,所以我看不到这些。关于我可能会遇到什么问题,或者我可以收集哪些信息来调试问题的任何想法?

谢谢!

编辑:我一直在挖掘更多,看起来崩溃与 Firebase 依赖项有关。如果我创建 Flutter 演示项目(flutter create),它在 iOS 上运行良好。但是,如果我随后将 Firebase 包添加到 pubspec.yaml,并手动添加 GoogleServices-info.plist,则应用程序会在启动时崩溃。 (我还没有添加任何使用 Firebase 的代码。) GoogleServices-info.plist 应该与 Xcode 一起添加,但由于我没有 Xcode 或 mac,这很难。这个问题的第二个答案给出了一个建议:Where to save GoogleService-Info.plist in Flutter without Xcode?
我尝试进行这些更改,但得到了相同的结果。有没有人有任何关于在没有 Mac 的情况下添加 Firebase 的建议?

最佳答案

好的,这就是发生的事情。最初,该应用程序在 iOS 上崩溃是因为 GoogleServices-info.plist 文件(可能)存在问题。没有错误消息,所以我不知道在哪里看。我终于回到了简单的演示应用程序并开始重新分层以隔离问题。演示应用程序可以毫无问题地在 iOS 上构建和运行,但是当我添加 Firebase 依赖项(作为一个组)时,它失败了。我已经手动添加了 GoogleServices-info.plist 文件(在 Xcode 之外)并使用文本编辑器调整了 ios/Runner.xcodeproj/project.pbxproj 中的引用,但这并没有奏效。
在这一点上,我终于崩溃了,得到了一台 MacBook。在 Mac 上调试时,我现在可以看到应用程序在模拟器上的 Debug模式下以及在设备上的 Release模式下崩溃,但仍然没有有用的错误消息。我使用 Xcode 添加了 GoogleServices-info.plist 文件,所以至少那部分是正确的,但应用程序仍然立即崩溃。翻阅文档后,我意识到在制作示例应用程序时,我忘记在 AdMob 的 info.plist 文件中添加应用程序 ID。此时只是 AdMob 导致了崩溃,而不是其他 Firebase 依赖项。我把它加回去了,一切都很好。我希望我在一个月前看过那个。啊。
感谢@Mikhail Tokharev 和@season 对如此含糊的问题提出质疑。我希望我最初能分享更多细节,但我知道的还不够多,不知道可能出了什么问题。
TL;DR

  • 买个 Mac 就行了。尝试通过 Codemagic 进行调试是行不通的。
  • 对于 Firebase,请确保您确实通过 Xcode 添加了 GoogleServices-info.plist 文件。尝试手动添加它并破解 project.pbxproj 文件可能不起作用(这是一个实用的建议,我没有最终证明这一点)。
    https://firebase.google.com/docs/flutter/setup?platform=ios#add-config-file
  • 对于 AdMob,请务必将您的应用程序 ID 添加到 info.plist。 https://pub.dev/packages/firebase_admob
  • 关于ios - 为什么我的 Flutter 应用在​​ iOS 上启动时会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61580053/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com