flutter应用打包、修改图标、启动页和app名字 |
您所在的位置:网站首页 › 修改app图标和名字软件 › flutter应用打包、修改图标、启动页和app名字 |
打包flutter app
创建密钥
如果您已有密钥库,请跳到下一步。 如果没有,请在命令行中运行以下命令来创建一个: 在Mac / Linux上,使用以下命令: keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key在Windows上,使用以下命令: keytool -genkey -v -keystore c:\Users\USER_NAME\key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key此命令将key.jks文件存储在主目录中。 如果要将其存储在其他位置,请更改传递给-keystore参数的参数。 但是,请将密钥库文件保持私有状态; 不要将其检入公共源代码控制中! 注意: keytool命令可能不在您的路径中,它是Java的一部分,而Java是作为Android Studio的一部分安装的。 对于具体路径,请运行flutter doctor -v并找到在’Java binary at:'之后打印的路径。 然后使用该标准路径将Java(最后)替换为keytool。 如果您的路径包含以空格分隔的名称(例如“Program Files”),请使用平台专用的名称表示法。 例如,在Mac / Linux上,使用Program \ Files,在Windows上,使用“ Program Files”。只有Java 9或更高版本才需要-storetype JKS标记。 从Java 9版本开始,密钥库类型默认为PKS12。 应用程序中引用密钥库创建一个名为/android/key.properties的文件,其中包含对密钥库的引用: storePassword= keyPassword= keyAlias=key storeFile= 配置Gradle登录通过编辑/android/app/build.gradle文件为您的应用配置签名。 在android块之前添加代码: android { ... }使用属性文件中的密钥库信息: def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } android { ... }将key.properties文件加载到keystoreProperties对象中。 在buildTypes块之前添加代码: buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, // so `flutter run --release` works. signingConfig signingConfigs.debug } }使用签名配置信息: signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release } }在模块的build.gradle文件中配置signingConfigs块。 您的应用的发布版本现在将自动签名。 注意:更改gradle文件后,您可能需要运行Flutter Clean。 这样可以防止缓存的版本影响签名过程。 用R8缩小代码R8是Google推出的新代码缩减器,在您构建发行版APK或AAB时默认启用。 要禁用R8,请传递--no-shrink标志在使用flutter build apk或flutter build appbundle。 注意:混淆和缩小会大大延长Android应用程序的编译时间。 查看应用清单查看位于/android/app/src/main中的默认App Manifest文件AndroidManifest.xml,并验证值是否正确,尤其是以下内容: 应用 在application标记中编辑android:label,以反映应用的最终名称。 权限 如果您的应用程序代码需要Internet访问,请添加android.permission.INTERNET权限。 标准模板不包含此标签,但允许在开发过程中访问Internet以启用Flutter工具与正在运行的应用程序之间的通信 查看构建配置查看位于/android/app中的默认Gradle构建文件文件build.gradle,并验证值是否正确,尤其是defaultConfig块中的以下值: applicationId 指定最终的唯一(应用程序ID)appid versionCode & versionName 指定内部应用程序的版本号,以及版本号显示字符串。 您可以通过在pubspec.yaml文件中设置version属性来执行此操作。 请查阅版本文档中的版本信息指南。 minSdkVersion,compilesdkVersion & targetSdkVersion 指定最低API级别,在其上编译应用程序的API级别以及在其上设计运行该应用程序的最大API级别。 有关详细信息,请查阅版本文档中的“ API级别”部分。 指定您的应用使用的Android SDK构建工具的版本。 或者,您可以使用Android Studio中的[Android Gradle插件],它将自动为您的应用程序导入所需的最低构建工具,而无需使用此属性。 构建要发布的应用发布到Play商店时,您有两种可能的发行格式。 App bundle(首选)APK 创建app bundle如果您完成了签名步骤,则将对应用程序捆绑包进行签名。 此时,您可能会考虑混淆Dart代码,以使反向工程更加困难。 混淆代码涉及在构建命令中添加几个标志,并维护其他文件以消除对堆栈跟踪的混淆。 在命令行中: 进入 cd (将替换为应用程序的目录。) 运行flutter build appbundle (运行flutter build默认为发布版本。) 在/build/app/outputs/bundle/release/app.aab中创建了您的应用程序的发行包。 默认情况下,应用程序捆绑包包含Dart代码和Flutter运行时,它们针对armeabi-v7a(ARM 32位),arm64-v8a(ARM 64位)和x86-64(x86 64位)编译。 创建APK尽管应用捆绑包的优先级高于APK,但有些商店尚不支持应用捆绑包。 在这种情况下,请为每个目标ABI(应用程序二进制接口)构建一个发行版APK。 如果您完成了签名步骤,则APK将被签名。 此时,您可能会考虑混淆Dart代码,以使反向工程更加困难。 混淆代码涉及在构建命令中添加几个标志。 在命令行中: 进入 cd (将替换为应用程序的目录。) 运行flutter build apk --split-per-abi (运行flutter build默认为--release。) 此命令产生三个APK文件: /build/app/outputs/apk/release/app-armeabi-v7a-release.apk/build/app/outputs/apk/release/app-arm64-v8a-release.apk/build/app/outputs/apk/release/app-x86_64-release.apk删除--split-per-abi标志会生成一个fat APK,其中包含为所有目标ABI编译的代码。 此类APK的大小要大于拆分后的对应文件,导致用户下载不适用于其设备架构的本机二进制文件。 在设备上安装APK请按照以下步骤在连接的Android设备上安装APK。 在命令行中:https://flutter.dev/docs/deployment/android 使用USB电缆将Android设备连接到计算机。使用cd ,其中是您的应用程序目录。运行flutter install。https://flutter.dev/docs/deployment/android 修改图标和app名字 Android打开/android/app/src/main/AndroidMainifest.xml,找到配置位置: src>main>res>drawable>launch_background.xml IOS在项目下找到ios目录,依次Runner>Assets.xcassets>LaunchImage.imageset,根据需求修改LaunchImage图片文件,并在同级别的Contents.json文件中配置即可。 { "images" : [ { "idiom" : "universal", "filename" : "LaunchImage.png", "scale" : "1x" }, { "idiom" : "universal", "filename" : "[email protected]", "scale" : "2x" }, { "idiom" : "universal", "filename" : "[email protected]", "scale" : "3x" } ], "info" : { "version" : 1, "author" : "xcode" } } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |