iOS 版本的 Flutter 应用程序在启动时崩溃

问题描述 投票:0回答:7

我正在开发该应用程序,它正在以正确的方式运行。但后来我确实将 Mac 更新到了 macOS Monterey 12.2.1,并将我的 iPhone 设备更新到了最新的 15.2 和 Xcode 13.0,并使用了最新的 13.2.1。但现在应用程序在启动时运行崩溃,甚至在登录后崩溃,但这让我发疯。

重点是,在 xcode 上构建时它不起作用,但从 Android studio 运行时它工作正常。以下是我正在研究的规格:

[✓] Flutter (Channel stable, 2.8.1, on macOS 12.2.1 21D62 darwin-x64, locale en-GB)
    • Flutter version 2.8.1 at /Users/username/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 77d935af4d (3 months ago), 2021-12-16 08:37:33 -0800
    • Engine revision 890a5fca2e
    • Dart version 2.15.1

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/username/Library/Android/sdk
    • Platform android-31, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Users/username/Desktop/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] VS Code (version 1.63.2)
    • VS Code at /Users/neosoft/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 99.0.4844.51


Image for error on xcode

我一直使用 Firebase Firestore 作为数据存储。接下来我可以尝试什么?

android ios xcode firebase flutter
7个回答
9
投票

对于大多数情况,对我来说最终的解决方案始终是删除整个 ios 文件夹(确保备份徽标、资源等),运行

flutter create -i swift . 
重新创建 ios 文件夹,然后运行
flutter clean

每次遇到错误时,我都会以随机顺序执行这些步骤几次,然后问题就解决了。


9
投票

在 iOS > AppDelegate.swift 中,在 generatedPluginRegistrant.register(with: self) 之前添加 FirebaseApp.configure() 方法

 FirebaseApp.configure()
 GeneratedPluginRegistrant.register(with: self)

替代方案:

  1. 奔跑
    flutter clean
  2. 导航到 ios 文件夹,然后删除 pods 文件夹。
  3. 从终端命令
    cd ios
    ,然后运行 $pod install
  4. 完成后,右键单击 ios > 在 Xcode 中打开。
  5. 从应用程序窗口顶部菜单栏中,单击“产品”>“清理构建文件夹”
  6. 构建项目(产品>构建)
  7. 从您的项目终端命令
    flutter run

8
投票

经过一番阅读后,我发现就我而言,可能是这个问题:

https://github.com/flutter/flutter/issues/60657

因此,我通过将构建方案更改为生产方案来解决该问题,以防我需要一个无需将调试器附加到正在运行的应用程序即可工作的构建。 (例如,这样我的同事就可以测试该应用程序)

第1步: enter image description here

第2步: enter image description here


6
投票

在 iOS 14+ 中,调试模式 Flutter 应用程序只能 从 Flutter 工具、Flutter IDE 启动 插件或来自 Xcode。

或者,构建配置文件或发布模式以 启用从主屏幕启动。

也许因为flutter没有向你显示这段文字,你认为这是一个错误

或者也许

rm -rf Podfile.lock
然后
pod install


1
投票

请备份项目,删除

pubSpec.lock
,然后从 ios 文件夹中删除“Podfile.lock”、
pods
目录和 Xcworkspace。然后运行
flutter pub get
然后导航到 ios 文件夹并运行
pod install
。然后尝试在 xcode 中构建它。


0
投票

似乎在构建时参考了ios的派生数据。 希望按照以下步骤操作,这会起作用

  1. 删除 ios
    Derive data
  2. 删除
  3. podfile.lock
    
    
  4. 在您的项目终端上执行
  5. flutter clean
    
    
  6. 执行
  7. flutter pub get
    
    
  8. 移动到ios目录并执行
  9. pod install
    
    
然后尝试从 Xcode 构建。


0
投票
如果您使用电话身份验证,请注意,您需要将 Firebase 控制台中的编码应用程序 ID 添加到 Xcode>Targets>Info>Url Scheme

第1步:转到Firebase控制台>项目设置> iOS找到您的iOS应用程序编码的应用程序ID

Firebase iOS Encoded App Id

然后,复制并粘贴 Xcode Workspace>Runner>Targets>Runner>Info>Add URL Types>URL Scheme

Xcode Url Scheme

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.