【问题标题】:Flutter iOS build failure after upgrading Flutter to 2.3.0-1.0.pre.267 or Firebase packages将 Flutter 升级到 2.3.0-1.0.pre.267 或 Firebase 软件包后,Flutter iOS 构建失败
【发布时间】:2021-05-10 05:37:17
【问题描述】:

我最近刚刚将 Flutter 版本更新为 2.3.0-1.pre.267,并按照 IDE 的建议更新了软件包。现在我无法构建 iOS 应用程序。我确实尝试了几乎所有提供的关于颤振、谷歌登录和堆栈溢出的 GH 问题的建议/修复。我做了 pod clean、pod 重新集成、xcworkspacesetting 文件删除以及其他一些建议。

请在下面找到详细信息并提供可以帮助我解决此问题的建议/帮助/反馈。应用构建适用于 Android,并且运行良好。

Flutter 版本详情

Flutter 2.3.0-1.0.pre.267 • 频道主 • https://github.com/flutter/flutter.git 框架 • 修订 411eeb4155(22 小时前) • 2021-05-08 23:34:01 -0700 引擎 • 修订版 1825befbc7 工具 • Dart 2.14.0(构建 2.14.0-74.0.dev)

扑医生

医生总结(要查看所有详细信息,请运行 flutter doctor -v): [✓] Flutter(Channel master,2.3.0-1.0.pre.267,macOS 11.2.3 20D91 darwin-x64,locale en-IN) [✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.2) [✓] Xcode - 为 iOS 和 macOS 开发 [✓] Chrome - 为网络开发 [✓] Android Studio(4.1版) [✓] 已连接设备(2 个可用)

• 未发现任何问题!

请找到 pubspec.yaml 文件 here。 (由于格式问题,上传到pastebin)

复制步骤

  • 只需在项目根目录中运行命令flutter build ios
flutter build ios命令输出

在儿童中运行“flutter pub get”... 1,311 毫秒 为设备构建 dev.bipin.kids (ios-release)... 在 Xcode 项目中使用指定开发团队自动签署 iOS 进行设备部署:xxxxx 运行 pod install... 7.0s 运行 Xcode 构建...
└─编译、链接和签名... 16.4s Xcode 构建完成。 281.0s 无法构建 iOS 应用 Xcode 构建的错误输出: ↳ ** 构建失败 **

Xcode 的输出: ↳ /Users/bipinvaylu/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.7.4/ios/Classes/FLTImagePickerPlugin.m:149:20:警告:'UIAlertView' 是 deprecated:首先在 iOS 9.0 中弃用 - UIAlertView 已弃用。将 UIAlertController 与 UIAlertControllerStyleAlert 的首选样式一起使用 而是 [-Wdeprecated-declarations] [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) ^ 在从导入的模块“UIKit”中 /Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Target Support 文件/image_picker/image_picker-prefix.pch:2: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/System/Library/Frameworks/UIKit.framework/Head ers/UIAlertView.h:27:12:注意:“UIAlertView”已在此处明确标记为已弃用 @interface UIAlertView : UIView ^ 生成 1 个警告。 /Users/bipinvaylu/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.7.4/ios/Classes/FLTImagePickerPhotoAssetUtil.m:17:44:警告: 'UIImagePickerControllerReferenceURL' 已弃用:在 iOS 11.0 中首次弃用 - 将在未来版本中删除,请使用 PHPicker。 [-Wdeprecated-declarations] NSURL *referenceURL = [info objectForKey:UIImagePickerControllerReferenceURL]; ^ 在从导入的模块“UIKit”中 /Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Target Support 文件/image_picker/image_picker-prefix.pch:2: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/System/Library/Frameworks/UIKit.framework/Head ers/UIImagePickerController.h:62:51:注意:“UIImagePickerControllerReferenceURL”已在此处明确标记为弃用 UIKIT_EXTERN UIImagePickerControllerInfoKey const UIImagePickerControllerReferenceURL API_DEPRECATED("将在未来的版本中移除,使用 PHPicker.", ios(4.1, 11.0)) API_UNAVAILABLE(tvos); // 引用 AssetsLibrary 框架中资产的 NSURL ^ /Users/bipinvaylu/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.7.4/ios/Classes/FLTImagePickerPhotoAssetUtil.m:21:47:警告: 'fetchAssetsWithALAssetURLs:options:' 已弃用:首先在 iOS 11 中弃用 - 将在未来版本中删除 [-Wdeprecated-declarations] PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[referenceURL] ^ 在从导入的模块“照片”中 /Users/bipinvaylu/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.7.4/ios/Classes/FLTImagePickerPhotoAssetUtil.h:6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/System/Library/Frameworks/Photos.framework/Hea ders/PHAsset.h:74:1: 注意: 'fetchAssetsWithALAssetURLs:options:' 已在此处明确标记为弃用 + (PHFetchResult *)fetchAssetsWithALAssetURLs:(NSArray *)assetURLs options:(nullable PHFetchOptions *)options API_DEPRECATED("将在未来的版本中移除", ios(8, 11), tvos(8, 11)) API_UNAVAILABLE(macos); ^ 生成 2 个警告。 /Users/bipinvaylu/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_analytics-8.0.3/ios/Classes/FLTFirebaseAnalyticsPlugin.m:49:19:警告: 'setScreenName:screenClass:' 已弃用:改用 +[FIRAnalytics logEventWithName:kFIREventScreenView parameters:]。 [-Wdeprecated-declarations] [FIRAnalytics setScreenName:screenName screenClass:screenClassOverride]; ^ 在从导入的模块“FirebaseAnalytics”中 /Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Headers/Public/Firebase/Firebase.h: 22: /Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/build/ios/Release-iphoneos/XCFrameworkInterm ediates/FirebaseAnalytics/FirebaseAnalytics.framework/Headers/FIRAnalytics.h:128:5: 注意:'setScreenName:screenClass:' 已被明确标记 此处已弃用 DEPRECATED_MSG_ATTRIBUTE( ^ 在从导入的模块“UIKit”中 /Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Target Support 文件/firebase_analytics/firebase_analytics-prefix.pch:2: 在从导入的模块“Foundation”中 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/System/Library/Frameworks/UIKit.framework/Head ers/UIKit.h:8: 在从导入的模块“CoreFoundation”中 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/System/Library/Frameworks/Foundation.framework /Headers/Foundation.h:6: 在从导入的模块“达尔文”中 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/System/Library/Frameworks/CoreFoundation.frame 工作/标题/CoreFoundation.h:16: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk/usr/include/AvailabilityMacros.h:184:64:注意: 从宏“DEPRECATED_MSG_ATTRIBUTE”扩展而来 #define DEPRECATED_MSG_ATTRIBUTE(s) 属性((已弃用)) ^ 生成 1 个警告。 生成 1 个警告。 /Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Runner/AppDelegate.swift:12:58:警告: 从“AppDelegate”到“UNUserNotificationCenterDelegate”的条件转换总是成功 UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate ^ 架构 arm64 的未定义符号: “OBJC_CLASS$_GIDSignIn”,引用自: google_sign_in(FLTGoogleSignInPlugin.o) 中的 objc-class-ref “OBJC_CLASS$_FIRAnalytics”,引用自: firebase_analytics (FLTFirebaseAnalyticsPlugin.o) 中的 objc-class-ref ld:未找到架构 arm64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) /Users/bipinvaylu/Library/Developer/Xcode/DerivedData/Runner-efwdggeuqdlcxigsyoofyzkuohyf/Build/Intermediates.noindex/Runner.build/Release-iphoneos/R unner.build/Script-8B19FE6325D23E5800A5735D.sh:第 3 行:BUILT_PRODUCTS_DIR:找不到命令 /Users/bipinvaylu/Library/Developer/Xcode/DerivedData/Runner-efwdggeuqdlcxigsyoofyzkuohyf/Build/Intermediates.noindex/Runner.build/Release-iphoneos/R unner.build/Script-8B19FE6325D23E5800A5735D.sh:第 3 行:INFOPLIST_PATH:找不到命令 在构建阶段模式下运行上传符号 正在验证 Crashlytics 的构建环境... 警告:所有配置的 DEBUG_INFORMATION_FORMAT 应设置为 dwarf-with-dsym。这也可能是时间问题,请确保 Fabric 运行脚本构建阶段是最后一个构建阶段,并且没有其他脚本将 dSYM 从 Xcode 生成它的位置移动。无法处理 Runner.app.dSYM 在路径 /Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/build/ios/Release-iphoneos/Runner.app.dSYM 确保您的项目构建设置正在生成 dSYM 文件。

Validation succeeded. Exiting because upload-symbols was run in validation mode
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Analyzing workspace
note: Constructing build description
note: Build preparation complete
/Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Pods.xcodeproj: warning: The iOS
deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target
'Toast' from project 'Pods')
/Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Pods.xcodeproj: warning: The iOS
deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target
'TOCropViewController-TOCropViewControllerBundle' from project 'Pods')
/Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Pods.xcodeproj: warning: The iOS
deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target
'TOCropViewController' from project 'Pods')
/Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Pods.xcodeproj: warning: The iOS
deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target
'AppAuth' from project 'Pods')
/Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Pods.xcodeproj: warning: The iOS
deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target
'GoogleSignIn' from project 'Pods')
/Users/bipinvaylu/Documents/Work/Workspaces/kids-flutter-mobile-app/kids/ios/Pods/Pods.xcodeproj: warning: The iOS
deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target
'Flutter' from project 'Pods')

为设备构建时遇到错误。

【问题讨论】:

    标签: ios xcode firebase flutter


    【解决方案1】:

    这里发生了两件事。

    1. 关于不匹配的 iOS 部署目标的警告。 See this answer 让它消失。

    2. 与 dsym 文件丢失有关的错误。您正在使用需要 dsym 文件的 Crashlytics。现在,在任何 Xcode 项目中默认处于调试模式下,这些 dsym 文件都不会生成,如下图所示。

    但是,您可以在此处为整个项目手动设置它,也可以将 Crashlytics 更新到最新版本,因为 podfile 中有 as of 2.5.0 they set it themselves

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 2022-07-16
      • 2023-02-02
      • 2021-02-26
      • 1970-01-01
      • 2022-10-05
      • 2019-02-23
      • 2021-06-29
      • 2020-12-28
      相关资源
      最近更新 更多