compose-multiplatform
compose-multiplatform copied to clipboard
How can I set shortcuts' name that different with packageName
In China, we need shortcuts in Chinese, but some versions of Windows (I don't know what's different they are) will crash when the install path has Chinese words or the exe file has Chinese words. If I change the packageName from Chinese to English, the desktop shortcuts change too, but I want Chinese shortcuts, how can I do that? Thank you very much!
compose.desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "名字"
packageVersion = version.toString()
jvmArgs += listOf("-Xmx4G", "-Xms1G")
modules(
"java.naming",
"java.desktop",
"java.management",
"java.sql",
"java.xml",
"jdk.unsupported",
"jdk.crypto.ec",
)
macOS {
dockName = "名字"
iconFile.set(project.file("logo.icns"))
}
windows {
console = false
dirChooser = true
shortcut = true
menu = true
iconFile.set(project.file("logo.ico"))
}
}
}
}
upgrade to JDK 18 can be solved. related Issue https://github.com/JetBrains/compose-multiplatform/issues/2712
upgrade to JDK 18 can be solved. related Issue #2712
不是你说的这个问题,它是可以用jdk18以上打包中文的packageName,但是问题在于,中文路径的以你那个记事本举例,安装之后默认路径是:C:\Program Files\记事本\记事本.exe,在大部分windows上没什么问题,但是Windows的情况太复杂了,各种魔改之后的系统,我实测过了,在客户反馈打不开app的机器上,远程将目录和exe的文件名改成英文,就可以运行了。所以我想要的是,安装目录是全英文,桌面快捷方式是中文。我没找到关于这个的文档。
upgrade to JDK 18 can be solved. related Issue #2712
不是你说的这个问题,它是可以用jdk18以上打包中文的packageName,但是问题在于,中文路径的以你那个记事本举例,安装之后默认路径是:C:\Program Files\记事本\记事本.exe,在大部分windows上没什么问题,但是Windows的情况太复杂了,各种魔改之后的系统,我实测过了,在客户反馈打不开app的机器上,远程将目录和exe的文件名改成英文,就可以运行了。所以我想要的是,安装目录是全英文,桌面快捷方式是中文。我没找到关于这个的文档。
我也好奇怎么设置,以 Android 为例,packageName = "com.github.app",appName = "GitHub",分开设置这两者。
upgrade to JDK 18 can be solved. related Issue #2712
不是你说的这个问题,它是可以用jdk18以上打包中文的packageName,但是问题在于,中文路径的以你那个记事本举例,安装之后默认路径是:C:\Program Files\记事本\记事本.exe,在大部分windows上没什么问题,但是Windows的情况太复杂了,各种魔改之后的系统,我实测过了,在客户反馈打不开app的机器上,远程将目录和exe的文件名改成英文,就可以运行了。所以我想要的是,安装目录是全英文,桌面快捷方式是中文。我没找到关于这个的文档。
我也好奇怎么设置,以 Android 为例,packageName = "com.github.app",appName = "GitHub"
对,我也是这样想的,但是似乎这个里面packageName就是appName了。但是我遇到的主要问题是安装路径,你知道的,国内的Windows有太多奇怪的问题了,各种垃圾软件乱改系统,还有各种所谓的精简版ghost,目前我们遇到的绝大部分用户是可以正常使用的,少部分是安装之后没办法打开。还有极个别的是安装好能够使用,过几天之后就打不开了,我怀疑Windows推送了什么奇怪的自动更新的补丁。有些Windows机器感觉整个系统都是乱码的,实在用不了的我们都只能让运维去帮客户重装系统……
upgrade to JDK 18 can be solved. related Issue #2712
不是你说的这个问题,它是可以用jdk18以上打包中文的packageName,但是问题在于,中文路径的以你那个记事本举例,安装之后默认路径是:C:\Program Files\记事本\记事本.exe,在大部分windows上没什么问题,但是Windows的情况太复杂了,各种魔改之后的系统,我实测过了,在客户反馈打不开app的机器上,远程将目录和exe的文件名改成英文,就可以运行了。所以我想要的是,安装目录是全英文,桌面快捷方式是中文。我没找到关于这个的文档。
我也好奇怎么设置,以 Android 为例,packageName = "com.github.app",appName = "GitHub"
对,我也是这样想的,但是似乎这个里面packageName就是appName了。但是我遇到的主要问题是安装路径,你知道的,国内的Windows有太多奇怪的问题了,各种垃圾软件乱改系统,还有各种所谓的精简版ghost,目前我们遇到的绝大部分用户是可以正常使用的,少部分是安装之后没办法打开。还有极个别的是安装好能够使用,过几天之后就打不开了,我怀疑Windows推送了什么奇怪的自动更新的补丁。有些Windows机器感觉整个系统都是乱码的,实在用不了的我们都只能让运维去帮客户重装系统……
我写了一个 Gradle Task 可以把快捷方式设置成中文。https://github.com/tangshimin/wix-package 这个脚本的打包思路是:
- 先使用 compose desktop 的
createDistributable任务生成 app-image - 然后使用 wix 的 heat 命令收集 app-image 文件夹里的文件,生成一个 wxs 文件
- 编辑 wxs 文件,填充一些产品信息,设置快捷方式
- 编译 wxs 文件,生成 wixobj 文件
- 链接 wixobj文件 生成 msi 安装包
Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.