集成Flutter项目中.ios项目缺失或者不完整

截屏2023-08-17 09.55.33.png

1:第一步找到其他xcode项目,拷贝一份Runner.Xcodeproj文件到.iOS目录下,在cd到.iOS目录下执行

pod init
image.png

2:生成好Podfile文件后执行

pod install --verbose --no-repo-update

3:cd到原生项目下执行

pod install

可能遇到的问题
The current Dart SDK version is 2.12.0.
Because my_flutter requires SDK version >=2.17.0 <3.0.0, version solving failed.

解决方法:mac下配置Flutter环境变量

  1. 执行打开.bash_profile文件的命令:
open -e .bash_profile

2.打开.bash_profile文件后直接在最末尾处追加设置flutter环境变量:

export FLUTTER_HOME=/Users/nihisashi/Desktop/FlutterSDK3/flutter
export PATH=$PATH:/Users/nihisashi/Desktop/FlutterSDK3/flutter/bin
export PATH=$PATH:/Users/nihisashi/Desktop/FlutterSDK3/flutter/bin/cache/dart-sdk/bin

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

可能遇到的问题二
执行 flutter doctor
会提示 【zsh: command not found: flutter】

解决方案一:
每次打开终端都需要先输入source .bash_profile,再使用flutter命令

可能遇到的问题三

No podspec found for Flutter in ../my_flutter/.iOS/Flutter/engine
到其他flutter项目目录下,拷贝一份Flutter.podspec文件到该目录下

image.png

可能遇到的问题四


image.png

解决方案:
进入到Flutter工程,执行 flutter clean
再执行:flutter pub get
最后:回到iOS工程里面,执行 Pod install即可

可能遇到的问题四
没有生成.iOS文件夹
解决方案:
找到flutter项目的yaml文件,增加以下配置

  module:
      androidX: true  # 注意大小写和缩进
      androidPackage: com.hmc.hmc_flutter_module
      iosBundleIdentifier: com.hmc.hmc_flutter_module
image.png

在运行pub get

可能遇到的问题五
flutter项目已经删除了fluwx框架,但是在iOS原生项目的Pods文件下的TARGETS里面还有fluwx框架
进入到Flutter工程,执行 flutter pub get
最后:回到iOS工程里面,执行 Pod install即可

image.png

可能遇到的问题六
执行了flutter clean
再执行flutter pub get 提示以下报错
The current Dart SDK verslon is 2.17.0.
Because hmc_flutter_module requires SDK version >=3.4.0 <4.0.0, version solving
failed.

8458614f201fd2ea4e2b317f03ae074a.png
这是pub工具尝试读取安全建议缓存时遇到空值
Null check operator used on a null value
package:pub/src/source/hosted.dart 778:33 HostedSource._getAdvisories.readAdvisoriesFromCache

先查看当前终端使用的是哪个源:
echo $PUB_HOSTED_URL

# 定位缓存目录(根据你的镜像源,可能是 pub.dev 或 pub.flutter-io.cn)
#CACHE_DIR="$HOME/.pub-cache/hosted/pub.dev/.cache"
# 如果之前用国内镜像,改为:
 CACHE_DIR="$HOME/.pub-cache/hosted/pub.flutter-io.cn/.cache"

# 删除旧的公告缓存目录(如果存在)
rm -rf "$CACHE_DIR/advisories"

# 创建空的公告缓存文件(关键步骤:防止 pub 读 null 崩溃)
mkdir -p "$CACHE_DIR/advisories"
echo '[]' > "$CACHE_DIR/advisories/versions.json"

echo "✅ 修复完成!公告缓存已重置。"

执行后效果


image.png
image.png

解决方案:自动清理并重新下载所有依赖缓存

flutter pub cache repair
// 可能遇到的报错
Failed to repair sqflite 2.0.0+3. Error:
HTTP error 502: Bad Gateway
Failed to repair flutter_blurhash 0.6.0. Error:
HTTP error 502: Bad Gateway
Reinstalled 780 packages.
Failed to reinstall 2 packages:
- flutter_blurhash 0.6.0
- sqflite 2.0.0+3
pub finished with exit code 69

解决方案:重新执行以下   flutter pub cache repair

image.png

所有缓存下载完成后在执行 flutter pub get
还是不行的话,继续在 pubspec.yaml 文件执行多几次 flutter pub get 就OK了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容