欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mac下flutter项目导入、编译、本地及网络插件集成

程序员文章站 2022-06-01 17:47:03
...

开发环境:

[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.6 18G103, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[!] Xcode - develop for iOS and macOS (Xcode 10.3)
[✓] Android Studio (version 3.5) (以下简称AS)

- flutter工程在Mac下导入及编译

- 导入工程

  • 导入新工程,使用AS的import方式导入主工程的根目录(直接打开会导致一些flutter库不加载)。
  • 导入后打开pubspec.yaml,右上角会出现Packages get等选项,如果没有则需要配置flutter库的路径。配置见下方。
  • 配置flutter库路径时一般会自动配置Dart路径,如果没有则可手动配置。配置见下方。
  • 路径配置完成后在pubspec.yml中点击Packages get,即可获取依赖的插件。

AS工程中flutter 库路径配置。如图:
Mac下flutter项目导入、编译、本地及网络插件集成

AS工程中Dart库路径配置。如图:
Mac下flutter项目导入、编译、本地及网络插件集成

- 编译

选择模拟器或者真机都可以,执行编译。
Mac下flutter项目导入、编译、本地及网络插件集成

- 编译错误

  • ** BUILD FAILED ** note: Using new build systemnote: Planning buildnote: Constructing build description
    此错误是xcode的编译器问题。将工程在xcode中打开,并修改即可。
    Mac下flutter项目导入、编译、本地及网络插件集成
    xcode中选择 file->Workspace Settings。将New Build System(default) 修改为Legacy Build System。
    Mac下flutter项目导入、编译、本地及网络插件集成

- flutter 集成网络插件及一些错误

- 集成方式

Mac下flutter项目导入、编译、本地及网络插件集成

- 集成中的一些错误

  • amap_base编译错误
Runner/GeneratedPluginRegistrant.m:6:9: fatal error: 'amap_base/AMapBasePlugin.h' file not found
    #import <amap_base/AMapBasePlugin.h>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
    

此错误为pod库未安装,在主工程ios目录下pod install即可,如图。(如安装过程中本地库有问题需先解决,否则无法安装成功)
Mac下flutter项目导入、编译、本地及网络插件集成

  • 附加:amap_base 安卓编译报错
...\flutter\.pub-cache\hosted\pub.flutter-io.cn\amap_base-0.3.5\android\src\main\kotlin\me\yohom\amapbase\m\apMapHandler.kt

此错误为安卓编译时的错误,需修改插件源码解决方法见此贴

- flutter 集成本地插件及一些错误

- 集成方式

如图,将插件工程放在和主工程同级目录,并在主工程的pubspec.yaml中配置插件路径。
Mac下flutter项目导入、编译、本地及网络插件集成

- 集成中的一些错误

  • iOS platform冲突
 [!] CocoaPods could not find compatible versions for pod "flutter_aes":
  In Podfile:
    flutter_aes (from `.symlinks/plugins/flutter_aes/ios`)

Specs satisfying the `flutter_aes (from `.symlinks/plugins/flutter_aes/ios`)` dependency were found, but they required a higher minimum deployment target.

主工程或主工程Podfile 的iOS platform参数和插件工程platform冲突。如图,修改至一直即可,这里修改至11.0
Mac下flutter项目导入、编译、本地及网络插件集成

  • swift 版本及配置错误
[!] Unable to determine Swift version for the following pods:

- `flutter_step` does not specify a Swift version and none of the targets (`Runner`) integrating it have the `SWIFT_VERSION` attribute set. Please contact the author or set the `SWIFT_VERSION` attribute in at least one of the targets that integrate this pod.

由于本地插件中使用了swift,而主工程是只有oc,所以需要在主工程中配置SWIFT_VERSION。并且由于oc调用swift需要桥接文件,如果没有可自行在主工程中创建,名字必须是Runner-Bridging-Header.h
Mac下flutter项目导入、编译、本地及网络插件集成

相关标签: ios flutter