lancexin / aspect_frontend_server

frontend_server.dart.snapshot,让flutter具有aspectd的功能,最高支持到flutter3.13.2
MIT License
24 stars 1 forks source link

运行 demo 无 aop 效果 #1

Open OrangesChen opened 2 years ago

OrangesChen commented 2 years ago

Flutter 2.5.3 • channel unknown • unknown source Framework • revision 18116933e7 (9 weeks ago) • 2021-10-15 10:46:35 -0700 Engine • revision d3ea636dc5 Tools • Dart 2.14.4

按照最简单的直接替换 frontend_server.dart.snapshot 文件,运行项目,点击按钮,hook 方法并没有执行

lancexin commented 2 years ago

可能是替换的位置不对,这个和你用的flutter的环境有关系.可以试试下面的几个地方替换:

  1. flutter_macos_stable/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot
  2. flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snapshot

是否能够注入成功一切以我的demo是否能够注入成功为标准,需要注意的点:

  1. 在main.dart里面有引入 inject.dart,如果没引入不会起效果
  2. 在inject.dart文件里面的所有方法都是static的,不然不起效果
LDouble commented 2 years ago

自己编译的时候好像提示找不到FlutterProgramTransformer, 请问这个是clone了flutter engine那个third party里面的vm么

lancexin commented 2 years ago

@LDouble 可以注释掉再编译试一试, 可以参考一下这篇文章:https://juejin.cn/post/7034720269360955405

WillieWu commented 2 years ago

flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snapshot

fvm 安装的flutter目录下,没有找到这个文件目录呢。flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots