技术标签: android android studio ide
keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
1.创建一个名为<app dir>/android/key.properties
的文件,其中包含对密钥库的引用:
storePassword=第一步创建的key.jks文件时输入的密码
keyPassword=第一步创建的key.jks文件时输入的密码
keyAlias=key //.jks文件名,这里我们创建的key.jks,所以为key
storeFile=第一步创建的key.jks文件的存储路径 如:C:/Users/<user name>/key.jks
注意:
storeFile
中的路径是以<app dir>/android/app/
开始的相对路径,因此为了防止不必要的错误建议使用绝对路径通过编辑<app dir>/android/app/build.gradle
文件为您的应用配置签名
(1)添加
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
(2)修改buildTypes
buildTypes {
release {
signingConfig signingConfigs.release
ndk{ // 必须加入这部分,否则可能导致编译成功的release包在真机中会闪退
abiFilters "armeabi-v7a"
}
}
debug {
ndk {
//这里要加上,否则debug包会出问题,后面三个为可选,x86建议加上不然部分模拟器回报错
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86"
}
}
}
注意 :
release
包在真机中闪退可能是因为打包时没有引入arm64
的libflutter
的so文件
导致在arm64架
构手机上出现“兼容”问题。
主要是引用so库的问题arm64cpu架构是可以向下兼容的,就是arm64
架构的cpu可以使用arm32的.so
文件。出现问题真正原因是我们在引用so库时(引用的三方库中引用了so库)。
默认情况下 flutter 不会开启 Android 的混淆。
如果使用了第三方 Java 或 Android 库,也许你想减小 apk 文件的大小或者防止代码被逆向破解。
创建 /android/app/proguard-rules.pro
文件,并添加以下规则:
#Flutter Wrapper
-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
块。
在 release
配置中将 minifyEnabled
和 useProguard
设为 true
,再将混淆文件指向上一步创建的文件。
android {
...
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
如果您完成了签名步骤,则会对APK进行签名。
使用命令行:
cd <app dir>
flutter build apk
(flutter build
默认会包含 --release
选项).打包好的发布APK位于<app dir>/build/app/outputs/apk/app-release.apk
。
按照以下步骤在已连接的Android设备上安装上一步中构建的APK
cd <app dir>
.flutter install
.文章浏览阅读723次。【北京】 IT技术人员面对面试、跳槽、升职等问题,如何快速成长,获得大厂入门资格和升职加薪的筹码?与大厂技术大牛面对面交流,解答你的疑惑。《从职场小白到技术总监成长之路:我的职场焦虑与救赎》活动链接:码客 恭喜fpx,新王登基,lpl*b 我们是冠军一、安装activeMQ 安装步骤参照网上教程,本文不做介绍二、修改activeMQ配置文件 broker新增配置信息 sch..._activemq 如何在控制面板创建延时消息topic
文章浏览阅读1.6w次,点赞27次,收藏193次。从制造缺陷开始,介绍scan chain的基本原理_tessent lpct
文章浏览阅读222次。在APP中,用本地数据库好于频繁的联网去获取相关数据。我使用SQLite作为本地的数据库,比较轻巧。英雄首先先建立英雄的数据库,暂时我先只设置ID,name,loaclized_name这三种,我这是在窗体应用程序里写的,不要在意那些细节,其实我们只是要先创建这么一个.db文件 public Form1() { I...
文章浏览阅读231次。Project Reactor 是 Spring WebFlux 的御用响应式编程库,与 Spring 是兄弟项目。关于如何基于Spring的组件进行响应式应用的开发,欢迎阅读系列文章《响应式Spring的道法术器》。官方参考文档地址:http://projectreactor.io/docs/core/release/reference/中文翻译文档地址:http://htmlprevi..._reactor 指南中文版v3.0
文章浏览阅读727次。TeamTalk部署问题及解决方案1、部分源下载地址2、编译安装libiconv报错3、找不到tt4、编译im-server5、缺少daeml6、找不到mysql.h7、centos7 mini 安装后无法连接到网络8、使用mwget提高下载速度9、nginx: [emerg] unknown log format "access" in错误解决方法10、PHP报错1、部分源下载地址gmpwget ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.gzmpfrwge_teamtalk ../daeml: 没有那个文件或目录
文章浏览阅读2.4k次。java中将多文件字节流压缩成zip核心就是使用java.util.zip包中的ZipOutputStream直接上核心代码/** * * @param zipFilePath zip保存路径 * @param zipFileName zip文件名 * @param byteList 文件字节码Map,k:fileNam..._java将多个字节流压缩成zip
文章浏览阅读812次。前面所有的GIT远程端配置文件都放在是根目录的,所有请求默认都是根目录,但是有时候,项目很多,配置文件需要根据子目录来划分,这时候,就需要来配置搜索路径了;比如aaa项目的配置文件放aaa目录下,bbb项目的配置文件放bbb目录下,不配置的话是找不到的那些配置文件的,需要配置search-paths属性来实现在microservice-config-server-4001项目的yml文件加个配..._configservices路径
文章浏览阅读62次。多行代码的函数:std::cout << R"()";
文章浏览阅读2.2k次。简介:借助CSDN平台发布自己编写的需求文档。参考了前辈们的经验,编写如下(持续更新):正文:PRD:云迹扶教APP产品需求文档一、文档综述1.1版本历史 制订时间 制订人 制订内容 2021.06.13 Max 撰写文档 1.2输出环境 文档名称 云迹扶教A_公益类app用户画像描述
文章浏览阅读2k次,点赞2次,收藏8次。std::string cstring;QString qstring;//从std::string 到QStringqstring = QString(QString::fromLocal8Bit(cstring.c_str()));//从QString 到 std::stringcstring = std::string((const char *)qstring.toLocal8Bit().constData());_c++ 中文 string 转qstring乱码
文章浏览阅读2.6k次。中文的标点符号包括句号,逗号,感叹号,问号,引号,冒号等等,接下来分享常见的中文标点符号名称。常见的中文标点符号1.句号:【。】用于句子末尾,表示陈述语气。有时也可表示较缓和的祈使语气和感叹语气。2.问号:【?】用于句子末尾,表示疑问语气(包括反问、设问等疑问类型)。在多个问句连用或表达疑问语气加重时,可叠用问号。3.叹号:【!】用于句子末尾,主要表示感叹语气,有时也可表示强烈的祈使语气、反问语气..._html顿号
文章浏览阅读994次。那么上面提到的这些能力,我们都可以利用哪些加密算法来实现呢?咱们接着往下看。加密算法整体上可以分为:不可逆加密、可逆加密。可逆加密又可以分为:对称加密、非对称加密。_摘要加密