编译flutter逆向,flutter反编译源代码

【Android开发学Flutter】Xcode编译问题汇总

Xcode编译经常遇到各种问题,处理起来费时费力,挺打击学习积极性的。记录下这些问题,方便自己也帮助后来人。

专业的建站公司网站可以采用ASP、PHP、.NET编程语言及配备的SQL SERVER、MYSQL、ACCESSS数据库存储来整体开发及设计各类型大中型网站(包括:公司、行业门户、医院门户、商城、政府门户、音乐、视频、交友、分类信息网站等各种类型网站),我们可以提供从网站开发、网站设计、网站安全维护及网站托管运营和网络推广一条龙服务。打造高端企业网站设计公司,网站开发周期短,质量有保证,设计精美,价格合理。

编译的时候遇到:

网上有很多解决方法,我是用这个方法解决的:

编译的时候遇到:

解决办法:

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证书,改成手动签名:

ios flutter 混编

最近在集成flutter进项目

以收集编译产物并以cocopods方式集成

产物大概放入两个pod库

这个暂且叫pod1,pod1放flutter.framework,第三方plugin.a,自己写的基础plugin,比如networking,hud等等(由于是混编,不可避免存在很多原生基础组件,所以能公用的基础组件都会弄一个flutter-plugin桥接)

第二个pod2放编译之后的app.framwork,注册文件GeneratedPluginRegistrant,以及各个业务模块.a(有可能没有)结构大概如下面

podspec大概如下

主工程引入这两个pod库即可

接下来从零开始搭建上文所说的

先创建一个flutter module

这个是主flutter工程,用来集成businessModule以及生成app.framework

结构如下图

再生成一个业务工程

注意此时还需要进入example生成ios和Android工程,不然无法单独编译运行

这样 这个单独的业务模块就可以单独跑起来了

此时主flutter工程和业务工程均搭建完毕

在主工程pubspec.ymal文件讲两个工程关联

好了 接下来就是编写脚本收集产物了

编译完成之后会在flutter主工程product生成如下文件

将上面文件分类收集做成文章开头的pod1,pod2 ,在native工程引入即可

在集成flutter的过程中 踩不少坑 也阅读很多前辈的文章,在此一并感谢

flutter 反编译

You are building a fat APK that includes binaries for android-arm, android-arm64.

If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.

To generate an app bundle, run:

    flutter build appbundle --target-platform android-arm,android-arm64

    Learn more on:

To split the APKs per ABI, run:

    flutter build apk --target-platform android-arm,android-arm64 --split-per-abi

    Learn more on: 

Initializing gradle...                                              2.3s

Resolving dependencies...                                          14.2s

Running Gradle task 'assembleRelease'...                                                  ע: E:\work_tool\flutter\.pub-cache\hosted\pub.flutter-io.cn\connectivity-0.4.4\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityPlugin.javaʹ�û????����ѹ�ʱ�� API��

ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:deprecation ���±��롣

ע: E:\work_tool\flutter\.pub-cache\hosted\pub.flutter-io.cn\url_launcher-5.1.3\android\src\main\java\io\flutter\plugins\urllauncher\WebViewActivity.javaʹ

�û????����ѹ�ʱ�� API��

ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:deprecation ���±��롣

Calling mockable JAR artifact transform to create file: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\android.jar\baf414ed95f14e507d85c560886dfbe2\android.jar with input E:\work_tool\sdk\android-sdk-windows\platforms\android-28\android.jar

Calling mockable JAR artifact transform to create file: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\android.jar\ab096bb3fb172ccb785acdb1058c10a9\android.jar with input E:\work_tool\sdk\android-sdk-windows\platforms\android-27\android.jar

Request to incrementing alive workforce from 0. Current workforce (dead or alive) 0

thread-pool size=4

ProGuard, version 6.0.3

Reading input...

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\flutter.jar\ab2691c929f4d2aa57a17fa551e662a6\jetified-flutter.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\app\intermediates\flutter\release\libs.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\localbroadcastmanager-1.0.0.aar\7a407f962902eada026a8e241a760bac\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\work-runtime-2.1.0.aar\8e3a1e8a8ff79006a94df6c01ceeb4f5\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\fragment-1.1.0.aar\4fa7d1b49e3514cb08c8a696f9b59436\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\room-runtime-2.1.0.aar\1b8774fa39759f08defb930275652eac\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\room-runtime-2.1.0.aar\1b8774fa39759f08defb930275652eac\jars\libs\room-common-java8-2.1.0.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\viewpager-1.0.0.aar\885186e7f6f969363bc93cd607d741a5\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\loader-1.0.0.aar\f84f22ad0a97d2c689850b912fc04277\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\activity-1.0.0.aar\a46db1490fae1b9001fc672a24eb288f\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\customview-1.0.0.aar\fe8bf4a709414e884086911d2168b715\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\core-1.1.0.aar\87febb54759dd5a2c7be8e971d745644\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\versionedparcelable-1.1.0.aar\754157c6f50ca4e4cf3ac8d7cb5ced26\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.collection\collection\1.1.0\1f27220b47669781457de0d600849a5de0e89909\collection-1.1.0.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-livedata-2.0.0.aar\de6944801d37d99b1dd0b877649fde1f\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-livedata-core-2.0.0.aar\e21d6663beb6faa41a30fd5a582cb4d9\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\core-runtime-2.0.1.aar\724bb0cc2ce99eaf0a23a99bb1cc5c23\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.room\room-common\2.1.0\b87765704590bd992ea0d92ac50253a9df7818a0\room-common-2.1.0.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\sqlite-framework-2.0.1.aar\9cbdf82e938f7e565620a3682d2406e9\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\sqlite-2.0.1.aar\1215aa5476f752bd431fb2d8059a1a39\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-service-2.0.0.aar\9d24ebd4d6766d7b2cd515369a737934\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-runtime-2.1.0.aar\ca02c0867547ae607130bcc54a4a9ba5\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\lifecycle-viewmodel-2.1.0.aar\594e1ff6298a01d8933530bb534fa472\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\savedstate-1.0.0.aar\8a2c3791a34fc80e5d9d268bf2886f95\jars\classes.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.lifecycle\lifecycle-common\2.1.0\c67e7807d9cd6c329b9d0218b2ec4e505dd340b7\lifecycle-common-2.1.0.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.arch.core\core-common\2.1.0\b3152fc64428c9354344bd89848ecddc09b6f07e\core-common-2.1.0.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.annotation\annotation\1.1.0\e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8\annotation-1.1.0.jar] (filtered)

Reading program jar [C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.google.guava\listenablefuture\1.0\c949a840a6acbc5268d088e47b04177bf90b3cad\listenablefuture-1.0.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\flutter_downloader\intermediates\intermediate-jars\release\classes.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\shared_preferences\intermediates\intermediate-jars\release\classes.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\url_launcher\intermediates\intermediate-jars\release\classes.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\sqflite\intermediates\intermediate-jars\release\classes.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\connectivity\intermediates\intermediate-jars\release\classes.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\path_provider\intermediates\intermediate-jars\release\classes.jar] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\package_info\intermediates\intermediate-jars\release\classes.jar] (filtered)

Reading program directory [F:\dartSpace\flutter\jiddspace\nfc\build\app\intermediates\javac\release\compileReleaseJavaWithJavac\classes] (filtered)

Reading program jar [F:\dartSpace\flutter\jiddspace\nfc\build\app\intermediates\transforms\mergeJavaRes\release\0.jar] (filtered)

Reading library jar [C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\androidx.annotation\annotation\1.0.0\45599f2cd5965ac05a1488fa2a5c0cdd7c499ead\annotation-1.0.0.jar] (filtered)

Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\android.jar]

Reading library jar [E:\work_tool\sdk\android-sdk-windows\build-tools\28.0.3\core-lambda-stubs.jar]

Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\org.apache.http.legacy.jar]

Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\android.test.mock.jar]

Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\android.test.base.jar]

Reading library jar [E:\work_tool\sdk\android-sdk-windows\platforms\android-28\optional\android.test.runner.jar]

Initializing...

Warning: io.flutter.embedding.android.FlutterView: can't find referenced method 'android.graphics.Insets getSystemGestureInsets()' in library class android.view.WindowInsets

Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.embedding.android.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.view.FlutterView: can't find referenced method 'android.graphics.Insets getSystemGestureInsets()' in library class android.view.WindowInsets

Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

Note: io.flutter.view.AccessibilityViewEmbedder$ReflectionAccessors: can't find dynamically referenced class android.util.LongArray

Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

Warning: io.flutter.view.FlutterView: can't find referenced class android.graphics.Insets

Note: there were 1 unresolved dynamic references to classes or interfaces.

  You should check if you need to specify additional program jars.

  ()

Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.

Thread(Tasks limiter_1): destruction

Warning: there were 12 unresolved references to classes or interfaces.

    You may need to add missing library jars or update their versions.

    If your code works fine without the missing classes, you can suppress

    the warnings with '-dontwarn' options.

    ()

Warning: there were 2 unresolved references to library class members.

    You probably need to update the library versions.

    ()

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.

Job failed, see logs for details

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at

BUILD FAILED in 4m 23s

Running Gradle task 'assembleRelease'...

Running Gradle task 'assembleRelease'... Done                    264.4s (!)

*******************************************************************************************

The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.

See for more information on the problem and how to fix it.

*******************************************************************************************

Gradle task assembleRelease failed with exit code 1

Flutter-02编译器选择

1.打开 VS Code。

2.打开 查看 命令面板…。

3.输入 “install”,然后选择 扩展: 安装扩展(就是点击选择第一行内容)。

4.在扩展搜索输入框中输入 “flutter”,然后在列表中选择 Flutter 并单击 安装。此过程中会自动安装必需的 Dart 插件。(选择第一行并安装)

5.退出然后重新启动 VS Code。

1.打开 查看 命令面板…。

2.输入 “doctor”,选择 Flutter: Run Flutter Doctor。

3.打开 输出 (OUTPUT) 面板查看是否有错误,确保在不同的输出选项 (Output Options) 的下拉列表中选择了 Flutter。

我们在上篇文章已经用命令行创建了一个 my_app 的flutter项目了,这里我们就可以使用 vscode 打开看看了

创建新项目 ,则是在命令面板输 flutter , 选择 Flutter: New Application Project

运行项目 ,找到 VS Code 的状态栏(窗口底部蓝色的条)

1.打开 Android Studio。

2.打开插件设置(在 v3.6.3.0 以上的系统打开 Configure Plugins)。

这里需要先改一下网络请求的设置

3.然后搜索Flutter 插件,选择并点击 安装。

4.当弹出安装 Dart 插件提示时,点击 Yes。

5.退出重新启动编译器,然后在编译器主页面就可以看到多了了 create new flutter project 可供选择,代表flutter插件安装成功,我们试着点击来创建一个新项目。


新闻标题:编译flutter逆向,flutter反编译源代码
浏览地址:http://scyanting.com/article/dsicice.html