标签:keystore android 安卓 keystoreProperties jks key Android Flutter 客户端
想要安装到手机上,必须要进行打包,因为没有苹果手机,所以只能打包Android客户端的apk。
检查 App的配置
查看默认应用程序清单文件(位于/android/app/src/main/
中的AndroidManifest.xml
文件),并验证这些值是否正确,特别是:
创建 keystore
官方文档上写的是,请通过在运行以下命令来创建一个: keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
但是我们敲了以后会报错,按提示运行 flutter doctor 还是没看到症结所在。后来看了别人的踩坑文档,应该是运行:
flutter doctor -v
可以看到以下一些代码:
找到上图Java binary at: 后面的地址,然后复制到官方命令的前面位置,如下:
D:\Program Files\Android\Android Studio\jre\bin\keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
回车后发现还是报错,后来发现是路径上不能有空格,如果有空格的话,要加引号括起来:
D:\'Program Files'\'Android\Android Studio'\jre\bin\keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注意:~/key.jks 是Key所要存储的位置,可以改为你现有的盘符路径,比如:d:\key.jks 或 e:\key.jks
D:\'Program Files'\Android\'Android Studio'\jre\bin\keytool -genkey -v -keystore e:\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
回车后会让你输入密钥库口令,这个可以随便输入,后面按提示操作就可以了。
引用应用程序中的keystore
在android目录下创建一个名为 key.properties
的文件,里面复制下面内容:
//比如你的密钥口令是123456 storePassword=123456 //密钥口令 keyPassword=123456 //密钥口令 keyAlias=key storeFile=E:/key.jks //存放密钥的位置
注意: 保持文件私密; 不要将它加入公共源代码控制中
在gradle中配置签名
通过编辑android/app/build.gradle
文件为应用配置签名
1、替换
找到android{...},然后在上面添加以下代码:
def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
2、替换
找到buildTypes{...},然后整个替换为以下代码:
signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release } }
现在,您的应用的release版本将自动进行签名。
构建一个发布版(release)APK
现在准备工作都差不多完成,可以进行打包了。输入命令:
flutter build apk
稍等一会儿时间就会提示打包完成了,并告诉你apk存放的位置。
然后就可以进行真机安装,或者分享了。
标签:keystore,android,安卓,keystoreProperties,jks,key,Android,Flutter,客户端 来源: https://www.cnblogs.com/joe235/p/11198759.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。