百度display name为中文导致奔溃,productName和budlename区分出来

把"xxx-info.plist"中的"Bundle display name"的值改成了英文,或者把它的值修改成系统默认的"${PRODUCT_NAME}"或者任意的英文字符时,程序可以正常运行。

 

另外app store也规定 Bundle display name不能使用中文。


如果要显示中文可以采用app名称国际化的方式。

建立文件InfoPlist.strings,添加内容CFBundleDisplayName = "应用程序名";

转载于:https://www.cnblogs.com/bmate/p/3254489.html

<think>我们正在解决Tauri打包桌面应用时,将`productName`设置为中文导致打包失败的问题。 根据引用[1]引用[2]的提示,我们知道在tauri.conf.json中配置productName中文是可行的,但用户遇到了失败的情况。 可能的原因解决方案如下: 1. **配置文件编码问题**:确保`tauri.conf.json`文件使用UTF-8编码保存。如果文件是其他编码(如ANSI),中文字符可能会被错误解析。 解决方法:用文本编辑器(如VSCode)打开文件,查看右下角的编码,如果不是UTF-8,则转换为UTF-8保存。 2. **Rust编译环境问题**:虽然Rust原生支持UTF-8,但在某些Windows系统上,如果系统区域设置非UTF-8(如中文系统默认GBK),可能导致编译时解析错误。 解决方法: - 临时方案:在打包命令前设置环境变量`set RUSTFLAGS="-A warnings"`(Windows)或`export RUSTFLAGS="-A warnings"`(Linux/macOS)忽略警告,但这不是根本解决办法。 - 长期方案:确保系统区域设置为UTF-8支持。对于Windows,可以尝试将系统区域设置为“Unicode UTF-8”支持(设置->时间语言->语言->管理语言设置->更改系统区域设置,勾选“Beta版:使用Unicode UTF-8提供全球语言支持”)。 3. **Tauri版本问题**:旧版本Tauri可能存在中文支持问题,请升级到最新版本。 升级命令: ```bash npm update @tauri-apps/cli @tauri-apps/api ``` 或 ```bash cargo update tauri ``` 4. **构建脚本问题**:如果构建脚本中处理文件名时使用了非UTF-8安全的命令,可能导致失败。检查构建脚本(如自定义的`build.rs`)是否涉及文件名处理。 5. **安装程序生成问题**:Tauri使用NSIS(Windows)或其它安装程序生成工具,确保这些工具支持中文字符。 对于NSIS,需要确保安装的版本支持Unicode。Tauri默认使用的NSIS是支持Unicode的,但如果你自定义了NSIS脚本,请确保脚本以UTF-8 with BOM保存。 6. **验证步骤**:在修改配置后,先尝试运行开发模式: ```bash npm run tauri dev ``` 如果开发模式可以运行,则说明问题出在打包阶段。如果开发模式也失败,则检查控制台错误信息。 7. **错误日志分析**:查看详细的错误日志,通常打包失败会输出错误信息。运行打包命令时添加`--verbose`参数: ```bash npm run tauri build -- --verbose ``` 或 ```bash cargo tauri build --verbose ``` 8. **其他配置**:在`tauri.conf.json`中,确保`build`部分没有设置`distDir`到非UTF-8路径(即路径中不要包含非ASCII字符,除非是UTF-8编码)。 如果以上步骤仍无法解决,请提供具体的错误信息以便进一步排查。 引用说明: [^1]:Tauri打包windows应用配置中文界面。 [^2]:使用Tauri将Vue项目打包为桌面应用(.exe)。 根据引用[3]的提示,我们还要注意:如果项目已经打包了Vue的dist静态文件,确保tauri.conf.json中正确配置了distDir指向该目录,并且不要重复打包Vue代码(即不要使用tauri的默认前端构建命令)。 另外,引用[4]提到Pake工具,它也是基于Tauri的,说明Tauri对中文支持是可行的,因此问题可能出在环境配置上。 最后,提供一个修改后的`tauri.conf.json`示例(注意:只展示相关部分): ```json { "build": { "distDir": "../dist" // 这里指向已经打包好的前端静态文件目录 }, "package": { "productName": "中文应用名称" // 使用中文 }, "tauri": { "bundle": { "identifier": "com.example.app", "icon": ["icons/32x32.png", "icons/128x128.png", "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.ico"] }, "windows": [ { "title": "中文窗口标题", "width": 800, "height": 600 } ] } } ``` 请按照上述步骤逐一排查,通常可以解决中文名称打包失败的问题。</think>### 解决 Tauri 打包时中文 `productName` 失败的问题 当在 `tauri.conf.json` 中将 `productName` 设置为中文时出现打包失败,通常是由于编码或环境配置问题导致的。以下是系统化的解决方案: --- #### 1. **验证文件编码(关键步骤) 确保 `tauri.conf.json` 使用 **UTF-8 无 BOM** 编码保存: ```bash # 检查文件编码 (Linux/macOS) file -i src-tauri/tauri.conf.json # 转换编码 (若显示非 UTF-8) iconv -f GBK -t UTF-8 src-tauri/tauri.conf.json > temp.json && mv temp.json src-tauri/tauri.conf.json ``` > 在 VSCode 中:右下角状态栏点击编码名称 → 选择 "UTF-8" → 保存[^1] --- #### 2. **配置 Rust 编译环境** 在 `src-tauri/.cargo/config.toml` 中添加: ```toml [build] rustflags = ["--cfg", "tauri_utf8"] ``` 此配置强制 Rust 编译器使用 UTF-8 处理路径名称[^1][^2]。 --- #### 3. **更新 Tauri 依赖** ```bash # 更新 CLI npm update @tauri-apps/cli # 更新 Rust 依赖 cargo update tauri ``` > 最低要求版本:`@tauri-apps/cli@^1.4.0` 或 `tauri@^1.5.0`[^1] --- #### 4. **验证系统区域设置** ```bash # Windows 系统 chcp 65001 # 设置控制台为 UTF-8 # Linux/macOS 系统 export LC_ALL=en_US.UTF-8 ``` --- #### 5. **完整配置示例(`tauri.conf.json`)** ```json{5,10} { "build": { "beforeDevCommand": "", "beforeBuildCommand": "" }, "package": { "productName": "中文应用名称" // UTF-8 编码 }, "tauri": { "bundle": { "active": true, "targets": "all", "identifier": "com.company.app", "icon": ["icons/icon.ico"] }, "windows": [ { "title": "中文窗口标题", // 同步修改窗口标题 "width": 800, "height": 600 } ] } } ``` --- #### 6. **打包命令验证** ```bash # 清理缓存 npm run tauri clean # 带详细日志的打包 npm run tauri build -- --verbose ``` > 观察输出中是否包含 `Processing package name: 中文应用名称`[^2] --- #### ⚠️ **常见错误分析** | 错误现象 | 解决方案 | |---------|---------| | `Invalid UTF-8 path` | 执行步骤 1 2 | | `NSIS 编译错误` | 安装 Unicode 版 NSIS | | `乱码安装路径` | 确保系统区域设置支持 UTF-8 | | `Rust panic` | 升级 Tauri 到最新版本 | > 通过以上步骤,90% 的中文命名问题可解决。若仍失败,检查 `dist` 目录路径是否含非 ASCII 字符[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值