在 pubspec.yaml 中添加 Google Maps 包后,Flutter iOS 应用程序将无法构建

Posted

技术标签:

【中文标题】在 pubspec.yaml 中添加 Google Maps 包后,Flutter iOS 应用程序将无法构建【英文标题】:Flutter iOS app won't build after adding Google Maps package in pubspec.yaml 【发布时间】:2020-12-04 15:15:12 【问题描述】:

在 pubspec.yaml 中添加 Google 地图包后,无法构建 Flutter ios 应用 删除谷歌地图包后应用程序构建良好 (https://pub.dev/packages/google_maps_flutter) 请帮忙!!

错误日志:

在 iPhone 8 Plus 上以调试模式启动 lib/main.dart...

运行 pod install... 7.2s 正在运行 Xcode 构建...

└─编译、链接和签名... 4.0s Xcode 构建完成。 49.6s 无法构建 iOS 应用 Xcode 构建的错误输出: ↳ 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/Models/TOActivityCroppedImageProvider.h”是多个成员 组(“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。仅有的 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。 如果您想在多个组中引用同一文件,请添加另一个引用到 相同的路径。 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/Views/TOCropOverlayView.h”是多个组的成员 (“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。只有 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。如果 您想在多个组中引用同一文件,请添加另一个相同的引用 小路。 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/Models/TOCroppedImageAttributes.h”是多个组的成员 (“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。只有 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。如果 您想在多个组中引用同一文件,请添加另一个相同的引用 小路。 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/Views/TOCropScrollView.h”是多个组的成员 (“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。只有 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。如果 您想在多个组中引用同一文件,请添加另一个相同的引用 小路。 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/Views/TOCropToolbar.h”是多个组的成员 (“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。只有 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。如果 您想在多个组中引用同一文件,请添加另一个相同的引用 小路。 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/Views/TOCropView.h”是多个组的成员 (“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。只有 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。如果 您想在多个组中引用同一文件,请添加另一个相同的引用 小路。 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/TOCropViewController.h”是多个组的成员 (“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。只有 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。如果 您想在多个组中引用同一文件,请添加另一个相同的引用 小路。 2020-08-14 10:36:17.831 xcodebuild[5254:93706] 警告:文件参考 “Objective-C/TOCropViewController/Models/TOCropViewControllerTransitioning.h”是多个的成员 组(“TOCropViewController”和“TOCropViewController”);这表明项目格式不正确。仅有的 其中一个组的成员资格将被保留(但目标中的成员资格将不受影响)。 如果您想在多个组中引用同一文件,请添加另一个引用到 相同的路径。 ** 构建失败 **

Xcode 的输出: ↳ /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/Classes/FlutterPDFView.m:25:5: 警告:“FLTPDFViewController”仅适用于 iOS 11.0 或 较新的 [-Wunguarded-availability-new] FLTPDFViewController* pdfviewController = [[FLTPDFViewController alloc] initWithFrame:frame ^~~~~~~~~~~~~~~~~~~~ 在包含的文件中 /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/类/FlutterPDFView.m:4: /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/Classes/FlutterPDFView.h:11:12:注意:“FLTPDFViewController”已被标记为在 这里是 iOS 11.0,但部署目标是 iOS 9.0.0 @interface FLTPDFViewController : NSObject ^ /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/Classes/FlutterPDFView.m:25:5:注意:将“FLTPDFViewController”括在@available 检查中以 使此警告静音 FLTPDFViewController* pdfviewController = [[FLTPDFViewController alloc] initWithFrame:frame ^~~~~~~~~~~~~~~~~~~~ /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/Classes/FlutterPDFView.m:25:49:警告:“FLTPDFViewController”仅适用于 iOS 11.0 或 较新的 [-Wunguarded-availability-new] FLTPDFViewController* pdfviewController = [[FLTPDFViewController alloc] initWithFrame:frame ^~~~~~~~~~~~~~~~~~~~ 在包含的文件中 /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/类/FlutterPDFView.m:4: /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/Classes/FlutterPDFView.h:11:12:注意:“FLTPDFViewController”已被标记为在 这里是 iOS 11.0,但部署目标是 iOS 9.0.0 @interface FLTPDFViewController : NSObject ^ /Users/chrisflection/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_pdfview-1.0.3+2/io s/Classes/FlutterPDFView.m:25:49:注意:将“FLTPDFViewController”括在@available 检查中以 使此警告静音 FLTPDFViewController* pdfviewController = [[FLTPDFViewController alloc] initWithFrame:frame ^~~~~~~~~~~~~~~~~~~~ 生成 2 个警告。 ld:目标操作系统版本不支持在 __ZN9GMSx_absl9GMSx_Cord9InlineRep10AppendTreeEPNS_13cord_internal12GMSx_CordRepE 用于架构 x86_64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) 注意:使用新的构建系统 注意:并行构建目标 注:规划建设 注意:构建构建描述 警告:将架构 armv7 映射到 i386。确保此目标的体系结构和有效 为 iOS 模拟器平台正确配置了体系结构构建设置。 (在目标 来自项目“Pods”的“flutter_pdfview”) 警告:将架构 arm64 映射到 x86_64。确保此目标的体系结构和有效 为 iOS 模拟器平台正确配置了体系结构构建设置。 (在目标 来自项目“Pods”的“flutter_pdfview”) 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/Models/TOActivityCroppedImageProvider.h(在目标“TOCropViewController”中 来自项目'Pods') 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/Views/TOCropOverlayView.h(在项目的目标“TOCropViewController”中 '豆荚') 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/Models/TOCroppedImageAttributes.h(在目标“TOCropViewController”中 项目“豆荚”) 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/Views/TOCropScrollView.h(在项目的目标“TOCropViewController”中 '豆荚') 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/Views/TOCropToolbar.h(在项目的目标“TOCropViewController”中 '豆荚') 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/Views/TOCropView.h(在项目“Pods”的目标“TOCropViewController”中) 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/TOCropViewController.h(在项目的目标“TOCropViewController”中 '豆荚') 警告:在 Copy Headers 构建阶段跳过重复的构建文件: /Users/chrisflection/Desktop/Mischief.nosync/mischief_flutter_app/ios/Pods/TOCropViewController/Object ive-C/TOCropViewController/Models/TOCropViewControllerTransitioning.h(在目标 来自项目“Pods”的“TOCropViewController”) 警告:签名和功能的功能可能无法正常运行,因为它的权利 使用占位符团队 ID。要解决此问题,请在 Runner 编辑器中选择一个开发团队。 (在目标 来自项目“Runner”的“Runner”)

无法为模拟器构建应用程序。 在 iPhone 8 Plus 上启动应用程序时出错。

这是我的 pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.3
  image_cropper: ^1.2.3
  table_calendar: ^2.2.3
  substring_highlight: ^0.1.2
  intl: ^0.16.1
  shared_preferences: ^0.5.4+5
  image_picker: ^0.6.7
  mime_type: ^0.3.2
  flutter_pdfview: ^1.0.0+10
  path_provider: ^1.6.5
  pdf_flutter: ^1.1.2
  http: ^0.12.0+4
  multi_image_picker: ^4.6.9
  outline_material_icons: ^0.1.1
  fading_edge_scrollview: ^1.1.4
  sticky_headers: ^0.1.8+1
  flutter_tindercard: ^0.1.9
  google_maps_flutter: ^0.5.30

【问题讨论】:

嘿,你有什么解决办法吗? @VickySingh nope...我最终删除了谷歌地图插件 【参考方案1】:

我在我的应用中添加了 google_maps_flutter: ^0.5.30,但在 iOS 上运行该应用没有遇到任何问题。我建议运行flutter clean 以清除构建缓存并尝试再次运行该应用程序。如果您仍然遇到问题,请运行 flutter doctor 以检查是否有任何错误或警告。

【讨论】:

以上是关于在 pubspec.yaml 中添加 Google Maps 包后,Flutter iOS 应用程序将无法构建的主要内容,如果未能解决你的问题,请参考以下文章

在 pubspec.yaml 文件中添加 firebase_auth 或 cloud_firestore 时构建失败并出现异常(firebase_core 正在工作):

Flutter 的 pubspec.yaml 版本更改自动提交标记

Flutter pubspec.yaml,音频播放器无法正常工作

在颤振中运行我的 Pubspec.yaml 文件时出错

从 Dart 应用访问 pubspec.yaml 属性(版本)

更新/安装最新的 Flutter 包 (pubspec.yaml)