M1 上的 Flutter:GoogleMapsBase 和 Flutter.h 从 Windows 移至 mac 后未发现错误

Posted

技术标签:

【中文标题】M1 上的 Flutter:GoogleMapsBase 和 Flutter.h 从 Windows 移至 mac 后未发现错误【英文标题】:Flutter on M1: GoogleMapsBase & Flutter.h not found errors after moving to mac from windows 【发布时间】:2021-12-05 01:55:08 【问题描述】:

我已经在我的 Windows 机器上开发了一段时间的 Flutter 应用程序,最近切换到了带有 M1 芯片的 mac mini。该应用程序使用谷歌地图,但当我尝试在 ios 设备上运行它时,出现以下错误:

Launching lib/main.dart on iPhone 13 Pro Max in debug mode...
Xcode build done.                                           72.1s
Failed to build iOS app
Error output from Xcode build:
↳
    --- xcodebuild: WARNING: Using the first of multiple matching destinations:
     platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device 
     platform:iOS Simulator, id:1BBC3B77-3A9D-4F09-892A-34C7059C2430, OS:15.0, name:iPad (9th generation) 
     platform:iOS Simulator, id:BD58EEBD-CC57-418D-B33A-B381EB89E4BE, OS:15.0, name:iPad Air (4th generation) 
     platform:iOS Simulator, id:01C2C865-7ED0-4B1E-B391-6546DE9FA12B, OS:15.0, name:iPad Pro (9.7-inch) 
     platform:iOS Simulator, id:C0F1BFE8-AC98-487F-8AD2-7A7821D0B1BF, OS:15.0, name:iPad Pro (11-inch) (3rd generation) 
     platform:iOS Simulator, id:A9E3236E-DC77-44FD-A18E-8F0326A8D1B1, OS:15.0, name:iPad Pro (12.9-inch) (5th generation) 
     platform:iOS Simulator, id:FC86621E-900F-4D94-B709-592D19CCF5C1, OS:15.0, name:iPad mini (6th generation) 
     platform:iOS Simulator, id:DF9C52D5-29AE-4048-9EC4-D801ABED90AF, OS:15.0, name:iPhone 8 
     platform:iOS Simulator, id:905D86FA-A373-4DC5-8761-9F20D9573F7E, OS:15.0, name:iPhone 8 Plus 
     platform:iOS Simulator, id:FF07BF67-7EB0-4050-98F5-90937B55C083, OS:15.0, name:iPhone 11 
     platform:iOS Simulator, id:1ADD94F5-AFA9-489A-933B-7A01C29A1F80, OS:15.0, name:iPhone 11 Pro 
     platform:iOS Simulator, id:F5120FD7-77DE-4BE7-AE09-075A7D08DE80, OS:15.0, name:iPhone 11 Pro Max 
     platform:iOS Simulator, id:3198F3B5-25EC-41F9-8A0E-801F17325095, OS:15.0, name:iPhone 12 
     platform:iOS Simulator, id:5BABC83A-DB25-4040-AB2E-65DFC204D8E2, OS:15.0, name:iPhone 12 Pro 
     platform:iOS Simulator, id:63451408-2F20-4B65-8E05-570CAA3AAA97, OS:15.0, name:iPhone 12 Pro Max 
     platform:iOS Simulator, id:54E2E527-C85D-47F5-ADDE-BA4CF861BE9A, OS:15.0, name:iPhone 12 mini 
     platform:iOS Simulator, id:ADD48A2B-3DF4-432E-8561-D566DB2E6FB4, OS:15.0, name:iPhone 13 
     platform:iOS Simulator, id:91162948-B850-494D-A496-E73DBCBC89B4, OS:15.0, name:iPhone 13 Pro 
     platform:iOS Simulator, id:9EA1FC3C-1D81-4B6A-8E03-16D634FD64A7, OS:15.0, name:iPhone 13 Pro Max 
     platform:iOS Simulator, id:01F0486F-D6B3-4BFF-88AD-5D151293F6A9, OS:15.0, name:iPhone 13 mini 
     platform:iOS Simulator, id:BA8A8DF2-519A-4AD1-BED3-F4BCC0DAD591, OS:15.0, name:iPhone SE (2nd generation) 
     platform:iOS Simulator, id:7322D286-C468-4FE7-9B82-929CB072CA59, OS:15.0, name:iPod touch (7th generation) 
     platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00008103-001148C13679001E 
     platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device 
    ** BUILD FAILED **
Xcode's output:
↳
    ld: building for iOS Simulator, but linking in object file built for iOS, file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Pods/GoogleMaps/Base/Frameworks/GoogleMapsBase.framework/GoogleMapsBase' for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    note: Using new build system
    note: Planning
    note: Build preparation complete
    note: Building targets in parallel
    note: Removed stale file '/Users/steliospapamichail/Library/Developer/Xcode/DerivedData/Runner-czjbhkfeqllyfpfkhbtzrnpkcvgk/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Script-BAB43F53538FCAAA1B752783.sh'
    note: Removed stale file '/Users/steliospapamichail/Library/Developer/Xcode/DerivedData/Runner-czjbhkfeqllyfpfkhbtzrnpkcvgk/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/PromisesObjC.build/Script-023FA270521F1C5E3ED8F5839885EEA7.sh'
    note: Removed stale file '/Users/steliospapamichail/Library/Developer/Xcode/DerivedData/Runner-czjbhkfeqllyfpfkhbtzrnpkcvgk/Build/Products/Debug-iphonesimulator/google_maps_flutter/google_maps_flutter.framework'
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.0.99. (in target 'leveldb-library' from project 'Pods')
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.0.99. (in target 'FMDB' from project 'Pods')
Could not build the application for the simulator.
Error launching application on iPhone 13 Pro Max.
Exited (sigterm)

这个错误是否意味着我安装的谷歌地图与我的 M1 芯片不兼容?如果是这样,我该怎么做才能绕过它?

更新:在尝试了评论者在下面添加的链接中提出的解决方案后,我收到了关于 googlemaps.h 的错误,我过去也遇到过。这是日志:

Launching lib/main.dart on iPhone 13 Pro Max in debug mode...
Xcode build done.                                           11.3s
Failed to build iOS app
Error output from Xcode build:
↳
    --- xcodebuild: WARNING: Using the first of multiple matching destinations:
     platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device 
     platform:iOS Simulator, id:1BBC3B77-3A9D-4F09-892A-34C7059C2430, OS:15.0, name:iPad (9th generation) 
     platform:iOS Simulator, id:BD58EEBD-CC57-418D-B33A-B381EB89E4BE, OS:15.0, name:iPad Air (4th generation) 
     platform:iOS Simulator, id:01C2C865-7ED0-4B1E-B391-6546DE9FA12B, OS:15.0, name:iPad Pro (9.7-inch) 
     platform:iOS Simulator, id:C0F1BFE8-AC98-487F-8AD2-7A7821D0B1BF, OS:15.0, name:iPad Pro (11-inch) (3rd generation) 
     platform:iOS Simulator, id:A9E3236E-DC77-44FD-A18E-8F0326A8D1B1, OS:15.0, name:iPad Pro (12.9-inch) (5th generation) 
     platform:iOS Simulator, id:FC86621E-900F-4D94-B709-592D19CCF5C1, OS:15.0, name:iPad mini (6th generation) 
     platform:iOS Simulator, id:DF9C52D5-29AE-4048-9EC4-D801ABED90AF, OS:15.0, name:iPhone 8 
     platform:iOS Simulator, id:905D86FA-A373-4DC5-8761-9F20D9573F7E, OS:15.0, name:iPhone 8 Plus 
     platform:iOS Simulator, id:FF07BF67-7EB0-4050-98F5-90937B55C083, OS:15.0, name:iPhone 11 
     platform:iOS Simulator, id:1ADD94F5-AFA9-489A-933B-7A01C29A1F80, OS:15.0, name:iPhone 11 Pro 
     platform:iOS Simulator, id:F5120FD7-77DE-4BE7-AE09-075A7D08DE80, OS:15.0, name:iPhone 11 Pro Max 
     platform:iOS Simulator, id:3198F3B5-25EC-41F9-8A0E-801F17325095, OS:15.0, name:iPhone 12 
     platform:iOS Simulator, id:5BABC83A-DB25-4040-AB2E-65DFC204D8E2, OS:15.0, name:iPhone 12 Pro 
     platform:iOS Simulator, id:63451408-2F20-4B65-8E05-570CAA3AAA97, OS:15.0, name:iPhone 12 Pro Max 
     platform:iOS Simulator, id:54E2E527-C85D-47F5-ADDE-BA4CF861BE9A, OS:15.0, name:iPhone 12 mini 
     platform:iOS Simulator, id:ADD48A2B-3DF4-432E-8561-D566DB2E6FB4, OS:15.0, name:iPhone 13 
     platform:iOS Simulator, id:91162948-B850-494D-A496-E73DBCBC89B4, OS:15.0, name:iPhone 13 Pro 
     platform:iOS Simulator, id:9EA1FC3C-1D81-4B6A-8E03-16D634FD64A7, OS:15.0, name:iPhone 13 Pro Max 
     platform:iOS Simulator, id:01F0486F-D6B3-4BFF-88AD-5D151293F6A9, OS:15.0, name:iPhone 13 mini 
     platform:iOS Simulator, id:BA8A8DF2-519A-4AD1-BED3-F4BCC0DAD591, OS:15.0, name:iPhone SE (2nd generation) 
     platform:iOS Simulator, id:7322D286-C468-4FE7-9B82-929CB072CA59, OS:15.0, name:iPod touch (7th generation) 
     platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00008103-001148C13679001E 
     platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device 
    ** BUILD FAILED **
Xcode's output:
↳
In file included from /Users/steliospapamichail/development/flutter/.pub-cache/hosted/pub.dartlang.org/google_maps_flutter-2.0.11/ios/Classes/JsonConversions.m:5:
/Users/steliospapamichail/development/flutter/.pub-cache/hosted/pub.dartlang.org/google_maps_flutter-2.0.11/ios/Classes/JsonConversions.h:6:9: fatal error: 'GoogleMaps/GoogleMaps.h' file not found
    #import <GoogleMaps/GoogleMaps.h>
            ^~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
    note: Using new build system
    note: Planning
    note: Build preparation complete
    note: Building targets in parallel
    note: Removed stale file '/Users/steliospapamichail/Library/Developer/Xcode/DerivedData/Runner-czjbhkfeqllyfpfkhbtzrnpkcvgk/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/PromisesObjC.build/Script-E551D73C516C8F1E426DC570FE93233F.sh'
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/FBLPromises.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/FMDB.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/FirebaseAuth.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/FirebaseCore.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/FirebaseCoreDiagnostics.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/FirebaseDatabase.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/GTMSessionFetcher.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/GoogleDataTransport.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/GoogleUtilities.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/leveldb.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/nanopb.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/path_provider.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/share_plus.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/shared_preferences.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/sqflite.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/url_launcher.framework' is located outside of the allowed root paths.
    warning: Stale file '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/build/ios/Debug-iphonesimulator/Runner.app/GoogleMaps.bundle' is located outside of the allowed root paths.
    note: Removed stale file '/Users/steliospapamichail/Library/Developer/Xcode/DerivedData/Runner-czjbhkfeqllyfpfkhbtzrnpkcvgk/Build/Products/Debug-iphonesimulator/google_maps_flutter/google_maps_flutter.framework'
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.0.99. (in target 'FMDB' from project 'Pods')
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.0.99. (in target 'leveldb-library' from project 'Pods')
Could not build the application for the simulator.
Error launching application on iPhone 13 Pro Max.
Exited (sigterm)

更新 2:我意识到 VSCode 的终端没有在 Rosetta 中运行,所以当我尝试进行 pod update 或 pod install 时遇到了一堆错误。使用 Rosetta 打开一个单独的终端并运行这些命令通过执行 pod update google_maps_flutter 修复了谷歌地图错误。剩下的唯一问题是 Xcode 项目找不到 flutter.framework 目录,我在“框架、库和嵌入式内容”下也找不到它,这会导致 xcode 的构建失败。这是堆栈:

Xcode's output:
↳
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:9:
    note: in file included from /Users/steliospapamichail/Dropbox/Freelancing/Flutter
    Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:
    #import "GeneratedPluginRegistrant.h"
            ^
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/GeneratedPluginRegistrant.h:10:9:
    error: 'Flutter/Flutter.h' file not found
    #import <Flutter/Flutter.h>
            ^
    1 error generated.
    <unknown>:0: error: failed to emit precompiled header
    '/Users/steliospapamichail/Library/Developer/Xcode/DerivedData/Runner-czjbhkfeqllyfpfkhbtzrnpkcvgk/Build/Intermediates.noindex
    /PrecompiledHeaders/Runner-Bridging-Header-swift_MU0M9NUV63KT-clang_15TXGWK3O5BI2.pch' for bridging header
    '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h'
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:9:
    note: in file included from /Users/steliospapamichail/Dropbox/Freelancing/Flutter
    Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:
    #import "GeneratedPluginRegistrant.h"
            ^
    2 errors generated.
    error: generate-pch command failed with exit code 1 (use -v to see invocation)
    error: generate-pch command failed with exit code 1 (use -v to see invocation)
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:9:
    note: in file included from /Users/steliospapamichail/Dropbox/Freelancing/Flutter
    Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:
    #import "GeneratedPluginRegistrant.h"
            ^
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/GeneratedPluginRegistrant.h:10:9:
    error: 'Flutter/Flutter.h' file not found
    #import <Flutter/Flutter.h>
            ^
    1 error generated.
    <unknown>:0: error: failed to emit precompiled header
    '/Users/steliospapamichail/Library/Developer/Xcode/DerivedData/Runner-czjbhkfeqllyfpfkhbtzrnpkcvgk/Build/Intermediates.noindex
    /PrecompiledHeaders/Runner-Bridging-Header-swift_20I7K2PWHDC7X-clang_2NM9DJHUIVDYE.pch' for bridging header
    '/Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h'
    /Users/steliospapamichail/Dropbox/Freelancing/Flutter Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:9:
    note: in file included from /Users/steliospapamichail/Dropbox/Freelancing/Flutter
    Projects/JustPlay/just_play/ios/Runner/Runner-Bridging-Header.h:1:
    #import "GeneratedPluginRegistrant.h"
            ^
    2 errors generated.

【问题讨论】:

你试过这个***.com/a/63955114/4884119 吗? @AchmadJP 谢谢你的链接。我尝试了最佳答案和它下面的答案,但是现在当我尝试通过 vs-code 运行项目时,我得到了一个不同的错误,在我添加到我的帖子之前,我也遇到过这个错误` 【参考方案1】:

在这个问题上花了几天的时间后,我“修复”了它,但不是以我引以为豪的方式,但它可能对面临同样问题的人有用。

是什么原因造成的

我最初在 Windows 机器上开始开发,然后转移到 M1 Mac mini 以便在 iOS 模拟器上测试应用程序。系统提示我安装可可豆荚,然后进行豆荚安装。可悲的是,当我运行 pod install 时,我遇到了一个关于不兼容 pod 版本的错误,我惊慌失措,导致我取消了该过程。然后我开始尝试我在 *** 上找到的不同解决方案,但这只会让事情变得更糟。这些变化只是让我忘记了最初的问题是什么,因此,我无法从混乱中恢复过来。应用下面概述的步骤后,我发现最初的罪魁祸首是我在“pod install”失败后没有运行简单的 pod update 命令,并出现下面提到的错误。

解决方案

以下是我纠正此问题所遵循的步骤:
    创建了一个新的 Flutter 项目 复制了 android 和 lib 文件夹(因为它们没有引起任何问题)以及 pubspec.yml 和 .lock 文件。 然后,我将 firebase 相关文件与 SwiftDelegate 一起复制到 ios 目录中,因为我进行了一些更改以支持 google 地图。 完成后,我所要做的就是运行 pod install,当不可避免地出现 pod 依赖版本问题时,我只需运行 pod update 即可解决我在使用 pod 时遇到的任何问题。 最后一步是从 BOTH Runner 目标和 Pods 目标中排除 arm64 架构,并将最低 ios 版本更改为 9。

就是这样,一旦完成了这些事情,一切就正常了。

总结

总之,如果您和我一样在您第一次 macOS 体验时遇到类似的 pod 问题,请不要惊慌,更新您的 pod,然后就可以了。

【讨论】:

感谢您发布和回答这个问题。我一直面临着同样的问题。尝试了一切对我没有用。现在我只剩下最后一个选项来创建一个新项目了。

以上是关于M1 上的 Flutter:GoogleMapsBase 和 Flutter.h 从 Windows 移至 mac 后未发现错误的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 项目无法在 Mac M1 上构建

Flutter:如何在 Apple M1 芯片中安装 Flutter 及其所需的 SDK 元素?

如何更改适用于 M1 Mac 的 Flutter 应用程序的名称?

flutter-macos(M1)开发环境搭建

带有 Xcode 12.5 的 M1 Mac 从不运行 Flutter 项目

Flutter 运行和 ipa - Mac M1 - #import <Flutter/Flutter.h>