一.安卓打包
1.使用终端命令生成key(mac环境):
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
将生成的key.jks
文件放置到如下图位置
注意:这里的
key.jks
前面的key
就是你.jks
文件的名称 可修改的
2.在Android目录下创建key.properties :
key.properties文件中需要输入以下内容:
storePassword=生成keystore时设置的密码
keyPassword=生成keystore时设置的密码
keyAlias=生成keystore时的别名
storeFile=生成文件的key.jks的文件路径
3.app的build.gradle中配置:
添加配置1(如图二)
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
重要配置(图三替换图四)
注意:
signingConfigs
必须在buildTypes
前
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
minifyEnabled false
shrinkResources false
signingConfig signingConfigs.release
}
}
4.执行flutter build apk :
flutter build apk
flutter build apk --release (推荐)
打包报错1:
android打包 提示checkreleasebuilds false
解决办法,在build.gradle里面的buildTypes同级添加如下代码,放在android下面
lintOptions {
checkReleaseBuilds false
abortOnError false
}
打包报错2:(signingConfigs
与buildTypes
顺序错误 如图六)
muxiaosi:device_repair muxiaosi$ flutter build apk --release
Building without sound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/muxiaosi/Desktop/幕思项目/设备返修/device_repair/android/app/build.gradle' line: 61
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not get unknown property 'release' for SigningConfig container of type org.gradle.api.internal.FactoryNamedDomainObjectContainer.
* 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 https://help.gradle.org
BUILD FAILED in 712ms
Running Gradle task 'assembleRelease'... 1,391ms
Gradle task assembleRelease failed with exit code 1
打包报错3:
安装包无法安装 使用真机跑 完整报错应该类似下面这样:
Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]
这个是用 Android 12 SDK 打包导致的,是12的新特性,用来标记当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。
如果它写在service中并且为false则表示则该服务不能够跨进程使用。
所以总体来说它的主要作用是:是否支持其它应用调用当前组件。
如图新增 android:exported="true" 即可
二.iOS打包流程
1.申请开发者账号
2.创建APP id 及设置bundle id
3.配置Xcode 苹果官网创建应用
4.构建ipa包上传
第一次方式直接点击Next 等待上传成功就好
第二种方式直接点击Next 最终会的到ipa包 通过下图软件上传