十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在flutter方面开发过程中,有一个痛点,那就是没有办法进行抓包,如何解决呢,我初步的想法是原生获取到所代理的ip和端口,给fluter传递过去,然后flutter在请求相关的处理中,把ip和端口设置进去。
成都创新互联专业为企业提供昌江网站建设、昌江做网站、昌江网站设计、昌江网站制作等企业网站建设、网页设计与制作、昌江企业网站模板建站服务,十载昌江做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
(*注:以下仅个人配置过程参考,系统win7-64)
所需软件
vsCode,Android Studio, MuMu模拟器 (直连手机调试的话就不需要了)
配置过程
1、Flutter安装
安装时忘记截图,具体可参考链接 flutter中文网 相关教程+ 百度 ,现在网上教程很多,多踩点坑总会成功的。
2、MuMu模拟器调试时需进行相关配置
(*注:直连手机调试可忽略以下;执行以下操作需要在执行flutter doctor成功后,flutter run执行前)
(1)mumu模拟器端口监听,需要执行
(2)mumu模拟器调试flutter run可能会报错,可以改成,具体原因可直接百度“--enable-software-rendering”
3、如需调试ios端可尝试虚拟机+macOS+xCode
vmware+macOs可参考链接 VMware15安装MacOS系统 ,笔者按照该步骤已安装成功
先用数据线连接手机,
1: cmd 命令 输入 adb devices
如果不存在adb
设置环境变量 在path新建
然后cmd 命令 输入 adb devices
再输入 adb -s 5GKDU19426000181 tcpip 8989
5GKDU19426000181 这是手机编号 tcpip 这是端口 随便写 不冲突就行
然后 adb connect 192.168.31.120:8989
192.168.31.120这是手机无线网的ip,点击手机的无线网就可以看到 8989就是tcpip 刚输入的端口号
操作系统:macOS Big Sur
前置需求:
ok,开始搞jenkins
1、使用homebrew安装jenkins
Terminal运行命令brew install Jenkins
2、运行jenkins
Terminal运行命令jenkins,最终出现 Jenkins is fully up and running代表运行成功
3、初始化jenkins
在浏览器地址栏输入
然后首次安装启动就会出现新手引导,根据引导操作
自定义jenkins那里选择安装推荐的插件
PS:这里我很多插件都安装失败了,这个没关系,可以进去再自己安装或者不再安装貌似也没啥影响,继续向下操作即可
最后的实例配置那,默认即可,也可以设置一个地址
PS:如果要设置的话,就是自己的电脑ip地址+8080端口就行,配置完之后系统管理里报了一个反向代理设置有误,目前没发现这个报错有什么不好的影响,这个地址也可以以后在jenkins系统管理-系统配置里改的,这个主要是用来让别的同事来访问时要用的,自己用的话就不用设置,额外说一个,如果同事电脑挂了vpn,大概率是访问不了你设置的这个地址的,退掉vpn即可
4、安装插件
进来第一步就是安装插件了,这里要用到哪些我也是根据别人的博客找的,但是由于我主要是用shell命令,所以好像很多都没用上,但是安装了也不亏。。。
gitLab Plugin、gitLab Hook Plugin、Xcode integration、keychains and provisioning profiles Management,DingTalk等
PS:说下这个Upload Keychain or Provisioning Profile File插件,这个是用来管理iOS证书和配置文件的,但是吐血的是,无论如何都传不上去,搞到头秃,最后没办法,放弃治疗,好在还有别的办法,往下看
然后DingTalk这个是在构建成功后自动通知到钉钉群的插件,我这边用到了,下面也有介绍
5、iOS相关设置
系统管理-Manage Credentials
点击 Stores scoped to Jenkins下面的域-全局,然后就可以添加全局凭据了,这里要添加的是:
Upload Keychain or Provisioning Profile File插件用不了,配置文件在这里添加也是一样的
6、Android相关设置
系统管理-系统配置-全局属性-环境变量
Android SDK设置
系统管理-全局工具配置
JDK设置
Gradle设置
7、钉钉插件通知配置
在钉钉群的设置-智能群助手-添加自定义机器人
要复制一下webhook链接,下面要用,还有关键字设置,要钉钉和jenkins一致
在jenkins系统管理-系统配置中,设置钉钉,点击测试如果群聊能收到通知就可以
8、新建任务
这里是Android和iOS各建一个,选择freestyle即可,两边别的都一样,就是shell命令不一样,下面会贴
点开新建的任务,点击配置
①描述和钉钉
②git信息
git这里是自己项目的git地址和之前全局配置的git账号密码,也可以再这里添加新的账号密码
③构建触发器和构建环境都不用选
④构建
选择执行shell,然后填写shell命令(iOS和Android我都贴上了,可以自己参考和修改)
里面的一些关键密码和文件名等,我改成了文字描述或者***,都填自己的
此shell支持的一些功能:清空指定文件夹,替换指定文件,替换指定文件的指定内容,导出安装包,上传蒲公英,安装包重命名(version+build+时间),安装包上传svn
Android apk打包shell
⑤构建后操作也不用做,保存
9、点击立即构建
如果构建失败可以点击当次构建,然后点击查看控制台输出,查看具体报错进行修改,一般来说只要androidStudio和xcode能够编译成功的话,这边问题都不大,一般都是一些小问题要改,如果构建成功,就会通知到钉钉群了
这问题,一开始就有。因为忙着忙着也没管。后来发现还是很有需要灵活修改代理ip和端口号的。所以得处理一波了。
因为本身做Android出身,就草船借鉴了下Android里的设置点个8下,进入开发者模式的套路。看到这,系不系心如明镜般?哈哈~ 摸着Android过河也是可以的。
解决方案有了:
我们设置了20次,点点点吧,减小误触几率。
这个Http代理填写IP和端口号的页面,可以新开一个,就是两个输入框,点Submit后,重置Dio实例,并把代理设置给HttpClient。
这里需要注意的是,如果你这里重置了client.findProxy,那么一定要重新实例化Dio实例,不然不生效。这一点也可以在源码中得到印证.
^_^,这就搞完了。还挺简单的。但是确实解决了很大的问题,也很灵活。大家自行拿去试试吧。
Xcode编译经常遇到各种问题,处理起来费时费力,挺打击学习积极性的。记录下这些问题,方便自己也帮助后来人。
编译的时候遇到:
网上有很多解决方法,我是用这个方法解决的:
编译的时候遇到:
解决办法:
Project - User-Defined - FLUTTER_ROOT 改成本地 flutter SDK路径
感谢 issues 上的小哥,给你个????
在项目目录下执行 flutter run 可以正常运行到手机,但是在Xcode build 还是有问题。
这时需要手动添加 FLUTTER_ROOT 到 User-Defined :
添加之后:
就可以正常在Xcode build 安装到手机了。
flutter build ios 后出现:
pod install 后出现:
解决办法:
这是因为terminal没有走代理的流量,
使用 git config --global http.proxy "localhost:port" ,设置代理。
port是端口号,根据不同的vpn不一样,我的端口是10080。
执行 git config --global http.proxy "localhost:10080"
Xcode build 的时候出现:
解决办法:打开 ios/Podflie 文件:
关于 bitcode 的问题,我检查了下用到的第三方SDK,应该是百度地图的问题,我引入了个第三方插件(吐槽下没官方插件),百度地图有支持和不支持 bitcode 的两个SDK,我取消这个插件就没有报这个错了,奇怪的是,再次引入同一个插件,也可以正常打包,所以说这个问题还没有完全解决。
大家可以试下这个处理方法:
TARGETS - Build Seettings 搜 arm ,试一下把其他删除,只留下armv7跟armv7s或者只留下armv7
解决办法:
我是clean Xcode之后就可以了
解决办法:
用的是P12证书,改成手动签名: