运行报错
flutter项目报错Swift信息
错误查看以下截图
解决方式:
新建一个Swift类,自动创建桥接文件即可
svn相关
mac m1 安装svn
错误记录:
下载依赖文件时报错:404,无法下载,导致下面报错,无法打开1.7.0_2.big_sur.bottle.tar.gz
原因:
bintray要关闭,新版Homebrew已经去除了bintray相关,转而使用ghcr.io服务
而当时安装homebrew时使用了镜像,https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles,导致依然指向bintray,导致brew安装svn时下载依赖包出现404警告。
解决:
去除具体的环境变量
M1芯片Mac:打开.zshrc将HOMEBREW_BOTTLE_DOMAIN修改成export HOMEBREW_BOTTLE_DOMAIN=''
非M1芯片Mac:打开.bash_profile将HOMEBREW_BOTTLE_DOMAIN修改成export HOMEBREW_BOTTLE_DOMAIN=''
引入svn库报错 Authentication failed
原因:拉取认证失败,可能由于之前使用其他的svn账号拉取过其他的库,本地svn记录的账号在现要拉取的库账号不符,导致拉取失败。
解决:在随意的文件夹内拉取一下改svn路径的代码 svn co URL --username xxx --password xxx
pod相关
1.SSL证书不安全
报错信息:
curl performs SSL certificate verification by default
原因:依赖库中的某个链接的SSL证书是不安全的
解决方法:
- 执行命令
echo insecure >> ~/.curlrc - 打开Finder -> ~/.curlrc文件 -> 打开修改成insecure
后续:依赖库下载完成后记得删除 ~/.curlrc 文件中的 insecure
2.静态库和动态库
报错信息:
[!] The 'xxx' target has transitive dependencies that include statically linked binaries: (xxx)
分析:
动态库和静态库一起使用,并且使用的是use_frameworks!会报这个动态库链接失败的错
解决:
在Podfile文件中添加以下代码
# 如果是动态库,下述这块必须添加,否则静态库和动态库一起用,则会编译失败
pre_install do |installer|
Pod::Installer::Xcode::TargetValidator.send(:define_method,
:verify_no_static_framework_transitive_dependencies) {}
end
3.flutter相关依赖
1.flutter环境下的cache没有下载完全
[!] Invalid `Podfile` file: No such file or directory @ rb_file_s_stat - /xxx/xxx/fvm/versions/1.22.6/bin/cache/artifacts/engine/ios/Flutter.framework
分析:在flutter环境下找不到/xxx/xxx/fvm/versions/1.22.6/bin/cache/artifacts/engine/ios/Flutter.framework该路径,cache没下载完全
解决:执行flutter precache命令,重新下载flutter的cache,即可解决。
2.flutter项目依赖链接错误
报错信息:
[!] No podspec found for `Flutter` in `../xxx/.ios/Flutter/engine`
分析:iOS与flutter混编模式下,在flutter工程中没有找到../xxx/.ios/Flutter/engine路径,pub get时没有下载完全
上传问题整理
1. CFBundleExecutable问题
截图如上所示,会给你一个提示的路径,在这个路径下找到info.plist文件,删除
Executable file所在行即可
2. 上传成功之后等了老半天在iTunes平台上还是看不到包
一般上传成功之后过个十几分钟或者半小时,在具体的APP中能看到你上传的ipa安装包,如果时间有几个小时了,但还是没看到,那需要注意一下注册苹果账号的哪个邮箱有没有给你发邮件。
一般产生这个的情况在我所做的项目中有一例: 项目中存在使用UIWebView
因私有库的原因,项目中引入了AFNetworking的3.2.1版本,而在3.2.1版本中还使用了UIWebView,如果必须要使用这个版本的AFN,但不使用UIWebView+AFNetworking分类的,这边提供两种解决方式:
- 将AFNetworking中的
UIWebView+AFNetworking分类直接删除, 并且注释掉引用这个分类的代码 - 在podfile文件中,分文件引入AFN,也就是
pod 'AFNetworking/NSURLSession',把不需要引入的文件去掉即可