flutter 环境搭建异常记录
1.执行flutter doctor自检报错
排查Android studio里配置的sdk是哪个
SDK Platforms选中 8.0
SDkTools也只勾选8.0
2.bash_profile 文件配置
没有的话 在根目录新建
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=~/development/flutter/bin:$PATH
export PATH=~/development/flutter/bin/cache/dart-sdk/bin:$PATH
export ANDROID_HOME=~/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/emulator
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
3.全局命令行配置及生效
source ~/.bash_profile
source ~/.zshrc
open ~/.bash_profile
open ~/.zshrc
4.安卓本地的gradle版本存放位置
/Users/zhaoguangliang/.gradle/wrapper/dists
若自动下载太慢 可以使用迅雷手动下载之后放在这里
5.配置 firebase的时候 提示找不到成员变量
需在添加的firebase_core之外 在yaml文件里新增加一个依赖
firebase_core_platform_interface: 4.5.1
然后在android的工程中进行编译 就可以通过了
6.在新电脑上配置Android studio jdk路径位置
/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
从Mac 复制jdk文件夹到对应的文件夹下
7.在安卓项目出现gradle sync faile的时候 在android sdk 里 第一个列表里的sdk都拉下来,在第二个列表里的commond Line里将第一个最新的编译工具也拉下来
8.报错 Cannot operate on packages inside the cache.
执行 flutter pub cache repair
9.Pod 更新本地仓库
pod install 换成pod install --verbose --no-repo-update这个命令,前面的命令被墙了 ,
pod update 同理
该命令只安装新添加的库,已更新的库忽略
10.上传谷歌商店,打包禁用debug模式,
将
<!-- android:debuggable="false"-->
放在这里 mainfest文件里
<application
android:label="jetsenshot"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
<!-- android:debuggable="false"-->
>
11.将flutter 项目从电脑A复制到电脑B,后行flutter 清理一下缓存,或者不复制项目文件夹下的build文件夹,只复制其余代码,然后在flutter项目中全局替换
/A用户名/ -> /B用户名/
12.自动配置firebase cli太慢 手动下载
然后执行 chmod +x 文件名 将文件改为可执行的二进制文件
然后将文件放在
/usr/local/bin
路径下 文件名改为firebase
然后在.bash_profile 和 .zshrc文件里增加
export PATH=$PATH:~/opt/bin
然后
执行
source ~/.bash_profile
source ~/.zshrc
然后就可以使用了
13验证app是否签名
Cd /Users/zhao/Library/Android/sdk/build-tools/33.0.0
验证签名 执行jarsigner -verify -verbose -certs <你的APK文件路径>
查看签名信息 keytool -printcert -jarfile <你的APK文件路径>
14.集成Facebook登录 提示
错误提示:
Invalid key hash. The key hash xxxxxxxx does not match any stored key hashes. Configure your app key hashes at https://developers.facebook.com/apps/xxxxx
原因是签名不对,进行如下操作
生成发布密钥散列
Android 应用必须先使用发布密钥进行电子签名,然后才能上传到商店中。如要生成发布密钥散列,请在 Mac 或 Windows 内运行以下命令,并替换您的发布密钥别名和密钥库路径
YOUR_RELEASE_KEY_ALIAS 替换为当前别名
YOUR_RELEASE_KEY_PATH 替换为当前key的路径
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
然后替换掉Facebook里的
集成Facebook登录可以参考的博客
flutter 集成facebook第三方登录完整流程_flutter face登录-CSDN博客
15.授权登录提示 invalid scop:email 添加下面的东西
针对应用程序Android API 30+(Android 11+)不能调用Facebook原生应用程序。请按照https://developers.facebook.com/docs/android/troubleshooting/#faq_267321845055988调整。要解决这个问题,必须在AndroidManifest.xml文件中添加:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
原文链接:flutter 集成facebook第三方登录完整流程_flutter face登录-CSDN博客
16 flutter 配置apple账号登录
Flutter如何集成apple、google登陆---超级完整步骤_前端知识库
17.xcode 15 运行模拟器异常
报错
Sandbox: rsync(80361) deny(1) file-write-create
检查:
Check that ENABLE_USER_SCRIPT_SANDBOXING is disabled in the project's build settings.
18 flutter打出来的包在debug 和release模式下 部分结构不显示 经排查是
screenutil 没有在当前页面使用前执行初始化,
执行
ScreenUtil.init(context, designSize: Size(393, 862), allowFontScaling: false);