flutter集成到iOS旧有项目中

1.复制flutter项目到ios项目统计目录中

2.在项目的podfile文件中添加下面的代码

flutter_application_path = '../hmc_flutter_module'

load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

install_all_flutter_pods(flutter_application_path)

其中hmc_flutter_module添加的flutter项目名称

3.打开Xcode关闭bitcode配置Build Settings->Build Options->Enable Bitcode

4.添加编译脚本,打开Xcode在 Build Phases中添加New Run Script Phase在里面填入如下脚本 【这一步不需要了】

"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build

"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed

5.项目的配置完成现在需要生成一些配置文件

a. 进入原生项目的flutter模块目录中执行flutter packages get命令

b. 回到原生项目根目录执行pod install

到此为止我们的原生项目就已经集成好了flutter项目了。


Flutter - 编译常见问题

   问题一: Flutter /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory

1.检查flutter项目路径下.iOS/Flutter/Generated.xcconfig文件里的路径是否配置正确

    2.检查build Settings -> User-defined下路径是否正确

3.因为我的flutter项目是用win系统下开发的,在编译的时候生成的ios文件夹下面的目录没有podfile文件

找到原win下的flutter项目的podfile文件,拷贝一份到mac该目录下,然后在mac下用Android studio进行编译,iOS的文件夹下面的目录结构是这样的


问题二:[!] The following Swift pods cannot yet be integrated as static libraries:

问题三:Apple Mach-O linker (id) Error



问题四:FlutterSDK/flutter **.h: No such file or directory



问题五:pod install 

错 [!] No podspec found for `device_info_plus` in `../hmc_flutter_module/.ios/.symlinks/plugins/device_info_plus/ios`


问题六:ios打包Adhoc,真机安装运行闪退

1:cd到flutter项目目录下,输入"flutter build ios"

配置

用Xcode打开工程项目,在Build Settings的最下方找到User-Defined,点击+按钮,添加一个键为FLUTTER_BUILD_MODE,值为release的配置。

再次运行到真机上,断开Xcode运行也不会崩溃了


问题七:flutter项目引入新的包后,要在原生项目运行pod install --no-repo-update

提示:

当你在 my_flutter/pubspec.yaml 改变了 Flutter plugin 依赖,需要在 Flutter module 目录运行 flutter pub get,来更新会被podhelper.rb 脚本用到的 plugin 列表,然后再次在你的应用目录 some/path/MyApp 运行 pod install.


问题八:运行pod install后,报【Invalid `Podfile` file: cannot load such file -- ../flutter_module/.ios/Flutter/podhelper.rb.】

检查iOS项目里的Podfile文件flutter依赖项目名称是不是正确的

问题九:Command PhaseScriptExecution failed with a nonzero exit code

这是由于flutter项目代码中有错误导致的Xcode中编译报错,检查flutter项目什么地方报错,将问题修改后,clear重新运行iOS项目即可。

问题十:E:\FlutterSDK\flutter3.0\flutter/packages/flutter_tools/bin/

具体报错

/Users/nihisashi/Library/Developer/Xcode/DerivedData/medicalBeauty-bfgfmeqbjiwtbpbynsgtimbhbrst/Build/Intermediates.noindex/medicalBeauty.build/Debug-iphoneos/medicalBeauty.build/Script-BD2E6E265A7AB38D434B0085.sh: line 5: E:\FlutterSDK\flutter3.0\flutter/packages/flutter_tools/bin/xcode_backend.sh: No such file or directory

原因分析:因为是从安卓同事拉取下来的项目,地址是安卓同事电脑的地址,需要切换到自己电脑地址

解决方法

问题十一:


Showing All Messages, Filtering for "Error".

[+2380 ms] lib%5Cmain.dart: Error: Error when reading 'lib%5Cmain.dart': No such file or directory

[+12706 ms] lib%5Cmain.dart: Error: No 'main' method found.

原因分析:因为是从安卓同事拉取下来的项目,地址是安卓同事电脑的目录,需要改回自己电脑的目录格式 


你可能感兴趣的:(flutter集成到iOS旧有项目中)