我正在尝试使用Flutter为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?
答案 0 :(得分:6)
好的,这就是发生了什么。最初,该应用在iOS上崩溃是因为GoogleServices-info.plist文件存在问题(可能是)。没有错误消息,所以我不知道在哪里看。我终于回到了简单的演示应用程序,开始将内容分层,以找出问题所在。该演示应用程序可以毫无问题地在iOS上构建和运行,但是当我添加Firebase依赖项(作为一个组)时,它失败了。我已经手动添加了GoogleServices-info.plist文件(在Xcode之外),并使用文本编辑器调整了ios / Runner.xcodeproj / project.pbxproj中的引用,但这并没有解决问题。
在这一点上,我终于崩溃了,得到了一台MacBook。在Mac上进行调试时,我现在可以看到该应用程序在模拟器上的调试模式下以及在设备上的发布模式下崩溃,但仍然没有有用的错误消息。我使用Xcode添加了GoogleServices-info.plist文件,因此至少该部分是正确的,但该应用仍然立即崩溃。浏览文档时,我意识到当制作示例应用程序时,我忘记将应用程序ID添加到AdMob的info.plist文件中。此时,造成崩溃的原因只是AdMob,而不是其他Firebase依赖项。我补充说,一切正常。我希望我一个月前已经看过了。 gh。
感谢@Mikhail Tokharev和@season在这个模糊的问题上采取了行动。我希望我能在开始时分享更多细节,但我还不了解可能出什么问题。
TL; DR
答案 1 :(得分:3)
自过去几天以来我一直面临这个错误,今天我碰巧解决了它。因此,我想与任何在将 iOS 应用连接到 Firebase 后遇到启动错误的人分享它。
我在使用 firebase 设置新的 iOS 应用程序时遵循了所有步骤,这正是导致错误的原因,就我而言。如果您在 Appdelegate.swift() 中放置了 import 'Firebase' 和 Firebase.configure(),请将其删除并再次运行您的应用程序。我删除了这两行,效果很好。使用 Cloud Firestore 对其进行测试(只需让按钮向您的 Cloud Firestore 写入一些内容)并确保添加“await Firebase.initializeApp();”按下按钮时也是如此。
我完成了所有这些步骤,而且效果很好。
附言我是在 Mac 上用 android studio 完成的。
答案 2 :(得分:1)
我遇到了同样的问题,我已经修复了它,因为我是ios部署的新手,我忘记添加功能,这确实使我的应用程序在testflight中崩溃了。 xcode
答案 3 :(得分:1)
对于像我这样的新手,请确保在 GeneratedPluginRegistrant
// This works without crashes, FirebaseApp.configure() after GeneratedPluginRegistrant crashes
FirebaseApp.configure()
GeneratedPluginRegistrant.register(with: self)
答案 4 :(得分:0)
最有可能您遇到了下一个Flutter问题https://github.com/flutter/flutter/issues/54707
答案 5 :(得分:0)
我遇到了同样的问题并如下解决:
在flutter sdk文件夹中, 我做了 git pull 然后再次运行应用程序,它解决了。