Flutter框架在项目中使用App Manifest检查用户界面以及配置混乱之后对于构建配置的方案【Flutter】

简介: Flutter框架在项目中使用App Manifest检查用户界面以及配置混乱之后对于构建配置的方案【Flutter】

@[toc]

配置混乱

默认情况下,flutter不支持Android混淆。
如果使用第三方Java或Android库,可能需要减小apk文件的大小或防止代码被反向破解。

创建/android/app/proguard-rules.pro文件并添加以下规则:

buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

上述配置只会混淆Flutter引擎库。任何其他库(如Firebase)都需要添加相应的规则。
启用混淆/压缩
打开/android/app/build.gradle文件并找到buildTypes块。
在发行版配置中,将minimiEnabled和useProguard设置为true,然后将混淆文件指向上一步中创建的文件。

android {

    ...

    buildTypes {

        release {

            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }
}

构建发布APK
本节介绍如何构建APK版本。如果完成上一节中的签名步骤,APK将被签名。
使用命令行:
Cd(是的项目目录)
运行颤振构建apk(默认情况下,颤振构建包括--release选项)
打包发行版APK位于/build/app/outputs/APK/app-release.APK中。
在设备上安装分发APK
按照以下步骤在连接的Android设备上安装上一步骤中内置的APK
使用命令行:
使用USB将Android设备连接到PC
cd<app dir>。
运行颤振安装

构建配置

检查默认的Gradle build file“build.Gradle”,该文件位于/android/app/中,以验证这些值是否正确,尤其是:
DefaultConfig:applicationId:指定始终唯一的(应用程序Id)appid版本代码和版本名称:指定应用程序版本号和版本号字符串。有关详细信息,请参阅版本文档minSdkVersion&targetSdkVersion:以指定应用程序设计运行的最低API级别和API级别。有关更多信息,请参阅发布文档中的API级别部分。

storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>

当创建一个新的Flutter应用程序时,它有一个默认的启动程序图标。要自定义此图标,请执行以下操作:
查看Android启动图标设计指南,然后创建图标。
在/android/app/src/main/res/目录中,将图标文件放在一个名为配置限定符的文件夹中。默认的mipmap文件夹演示了正确的命名约定。
在AndroidManifest.xml中,更新应用程序标签的android:icon属性以引用上一步骤中的图标(例如,<application android:icon=“@mipmap/ic_launcher”…)。

android {

要验证图标是否已被替换,请运行应用程序并检查应用程序图标

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {

App Manifest

检查默认应用程序清单文件(AndroidManifest.xml文件位于/android/app/src/main/中),并验证这些值是否正确,尤其是:
应用程序:编辑应用程序标签,即应用程序的名称。
使用权限:如果的应用程序代码不需要Internet访问,请删除android.permission.Internet权限。标准模板包含此标志,以启用Flutter工具和正在运行的应用程序之间的通信。

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

检查用户界面

Flutter框架使用小部件作为其核心构建块。从控件(文本、按钮、切换等)到布局(居中、填充、行、列等)都是。Inspector是可视化和浏览Flutter等小部件树的强大工具。在以下情况下可能会有所帮助:

IntelliJ Flutter Inspector Window

现有布局不清楚
诊断布局问题
IntelliJ Flutter检查器窗口
单击Flutter Inspector工具栏上的“选择小部件”,然后单击设备(真机或虚拟机)以选择小部件。选定的小部件将在设备和小部件树中突出显示。
选择演示
然后,可以在IDE中浏览交互式小部件树,以查看附近的小部件及其字段值。如果要调试布局问题,Widgets树可能不够详细。在这种情况下,单击“渲染树”选项卡以在树中的同一位置查看渲染树。调试布局问题时,关键是查看大小和约束字段。约束沿树向下传递,尺寸向上传递。
交换机树

相关文章
|
2天前
|
C++
【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub
在尝试使用Azure Logic App创建由Event Hub触发的工作流时,配置了Active Directory OAuth认证但仍遇到认证失败的问题。错误信息提示找不到指定的租户ID。尽管已设置了正确的Azure中国环境Authority,认证请求似乎仍指向全球Azure环境。这可能是Logic App服务本身的局限导致。作为替代方案,可采用Connection String或Managed Identity方式进行认证,两者均可正常工作。此外,通过Azure Function App复现此问题,进一步验证这是服务层面而非配置问题。相关文档和教程可在Azure官方文档中找到。
|
8天前
|
Dart
Flutter笔记:手动配置VSCode中Dart代码自动格式化
Flutter笔记:手动配置VSCode中Dart代码自动格式化
32 5
|
6天前
|
XML 安全 Android开发
Flutter配置Android和IOS允许http访问
Flutter配置Android和IOS允许http访问
20 3
|
7天前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
28 4
|
7天前
|
Java Android开发
添加Flutter模块到已有项目(Android)
添加Flutter模块到已有项目(Android)
18 3
|
17天前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
45 12
|
2月前
|
开发框架 移动开发 Android开发
构建高效移动应用:探索Flutter开发框架
【6月更文挑战第28天】随着移动设备的普及,用户对移动应用的需求日益增长。开发者面临着在众多平台间提供无缝体验的挑战。本文深入探讨了Flutter框架如何通过其跨平台特性、热重载功能以及丰富的组件库简化移动应用的开发流程,同时确保高性能和优雅的用户界面设计。
39 2
|
2月前
|
移动开发 Dart 前端开发
探秘移动开发新纪元:Flutter框架的跨平台魅力
Flutter,谷歌的开源UI工具包,不仅革新前端开发,其跨平台特性延伸至后端,通过Dart语言统一开发流程,提升效率与一致性。使用Aqueduct框架,开发者可构建REST API,如创建新项目、定义数据模型和控制器,实现前后端同栈开发。Flutter与Dart的结合正重塑移动开发,开启全栈新纪元。
65 2
|
1月前
|
Dart Android开发 iOS开发
flutter 创建项目、运行项目、项目目录
flutter 创建项目、运行项目、项目目录
20 0
|
1月前
|
Android开发 开发者
flutter 开发环境配置和生命周期学习
flutter 开发环境配置和生命周期学习