Flutter Inno Setup 打包 Windows 程序

转载自:flutter桌面应用从开发配置到打包分发 - 掘金 (juejin.cn)

五.打包

1.创建 release 版本的应用

flutter build release

执行完成后,

release包位置在项目的build->windows->runer文件夹中

image.png

2.应用程序分发

Windows

为 Windows 平台构建压缩包文件

你可以在项目中的 {项目目录}\build\windows\runner\Release 看到可执行文件。除了该可执行文件之外,你还需要以下内容:

  • 从相同的目录:

    • 所有的 .dll 文件

    • data 文件夹 使用inno setup制作安装包Downloads

  1. 打开inno setup, 选择Create a new script file using the Script Wizard

image.png

image.png

2.填写应用名,应用版本,发布厂商,应用官网,填写一下进入下一步

2D6575F61EE406F0A6DB33A29C04B76C.png

3.安装位置,文件名称

image.png

4.选择打包文件

  • Application main executable file 要选择Release下的.exe文件。
  • Other application files框的Add file(s)选择 Release文件夹下的所有的 .dll文件。
  • Add folder选择Release\data文件时会询问“是否包含子文件夹”,这里要选择"是"。(这里需要注意的是直接选择data文件夹打包后会丢弃data当前目录,所以我们新建一层temp文件夹,data文件夹作为temp的子目录)

image.png

image.png

image.png

5.证书信息,按需填写(也可不填)

image.png

image.png

image.png

6.这里选择输出的路径,输入的exe名称和exe文件的icon,安装密码,按需填写.

image.png

image.png

7.下一步点击finish会有如下界面,这里选择"是"。

image.png

image.png

image.png

8.输入脚本保存名称,然后会开始编译,完成后会输出在第6选择的输出目录中

image.png

9.输出安装包.exe文件, 双击安装就ok了,也可以分发给其他人.

10、注意

启动应用后,报错缺少 msvcp140.dll、vcruntime140.dll、vcruntime140_1.dll 文件

解决该问题,首先需要在开发机上(编译所用的 Windows 电脑),从 C:/Windows/System32 目录下找到这个文件,拷贝到项目的 windows 目录中

然后在 windows/CMakeLists.txt 文件中添加以下内容

install(FILES "msvcp140.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
  CONFIGURATIONS Profile;Release
  COMPONENT Runtime)

install(FILES "vcruntime140.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
  CONFIGURATIONS Profile;Release
  COMPONENT Runtime)

install(FILES "vcruntime140_1.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
  CONFIGURATIONS Profile;Release
  COMPONENT Runtime)

然后重新编译应用即可

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Flutter支持在不同的渠道上进行打包,可以根据不同的渠道配置不同的应用包。下面是实现Flutter多渠道打包的步骤: 1. 在Flutter项目根目录下的`android/app`目录下创建一个名为`channel`的文件夹,用于存放不同渠道的配置文件。 2. 在`channel`文件夹下创建不同渠道的配置文件,例如`channel/dev.properties`、`channel/prod.properties`等。配置文件的内容可以包括应用包名、应用名称、应用图标、应用版本号等信息。例如: ``` # dev.properties # 应用包名 package_name=com.example.dev # 应用名称 app_name=dev_app # 应用图标 app_icon=dev_icon # 应用版本号 app_version=1.0.0 ``` 3. 在`android/app/build.gradle`文件中添加如下配置: ``` android { // ... defaultConfig { // ... //应用包名 applicationId "com.example.app" //应用名称 manifestPlaceholders = [ appName: "My App" ] //应用版本号 versionCode 1 versionName "1.0.0" // ... } // ... buildTypes { release { // ... //在release模式下,根据不同渠道打包 applicationVariants.all { variant -> variant.outputs.all { def outputFile = outputFileName if (outputFile.endsWith('.apk') || outputFile.endsWith('.aab')) { def fileName = outputFile.replace(".${outputFile.split("\\.").last()}", "") def channelPropertiesFile = file("channel/${variant.flavorName}.properties") if (channelPropertiesFile.exists()) { def channelProperties = new Properties() channelProperties.load(new FileInputStream(channelPropertiesFile)) outputFileName = "${fileName}_${channelProperties.getProperty("app_version")}_${channelProperties.getProperty("app_name")}.apk" output.outputFileName = outputFileName manifestPlaceholders = [ appName: channelProperties.getProperty("app_name"), appIcon: channelProperties.getProperty("app_icon") ] } } } } } } } ``` 4. 在Flutter项目根目录下运行以下命令,生成不同渠道的应用包: ``` flutter build apk --flavor dev flutter build apk --flavor prod ``` 其中,`--flavor`参数指定了打包时所使用的渠道配置文件。 5. 打包完成后,在`build\app\outputs\flutter-apk`目录下可以看到生成的不同渠道的应用包。 注意事项: - 渠道名称需要与`buildTypes`中的名称一致。 - 配置文件中的属性名需要与`build.gradle`文件中指定的属性名一致。 - 打包时需要分别运行不同渠道的打包命令。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值