欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。
根据知识库中的信息,您遇到的问题是由于 HBuilderX 版本限制 导致的。uni-app x 的 manifest.json 国际化功能(包括 iOS 隐私描述国际化)需要 HBuilderX 5.0 及以上版本 才支持云端打包,4.87 版本暂不支持此功能。
问题原因
根据 i18n 国际化文档 说明:
HBuilderX5.0及以上版本 app-android/app-ios 平台云端打包和 app-harmony 平台本地打包支持设置国际化
在 4.87 版本中,云打包确实不支持 manifest.json 的国际化配置,因此您配置 locale 目录和国际化占位符不会生效。
解决方案
方案一:升级 HBuilderX(推荐)
将 HBuilderX 升级到 5.0 或更高版本(当前最新正式版为 5.04),然后按以下步骤配置:
-
创建 locale 目录结构(项目根目录):
├── locale
│ ├── en.json
│ ├── zh-Hans.json
│ └── zh-Hant.json
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
-
配置语言文件(如 zh-Hans.json):
{
"app.name": "你好UniX",
"app.ios.des.camera": "拍照功能需要使用摄像头",
"app.ios.des.photo": "保存图片到相册需要使用照片权限"
}
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
-
manifest.json 中配置(源码视图):
{
"name": "%app.name%",
"app-ios": {
"distribute": {
"privacyDescription": {
"NSCameraUsageDescription": "%app.ios.des.camera%",
"NSPhotoLibraryUsageDescription": "%app.ios.des.photo%"
}
}
}
}
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
或在可视化界面将对应项配置为 %app.ios.des.camera% 格式。
注意:配置后需提交云端打包生效。
方案二:离线打包(当前版本 4.87 可用)
如果暂时无法升级 HBuilderX,可通过 离线打包 实现:
- 在原生 Xcode 工程中直接修改 Info.plist 文件,配置多语言权限描述
- 根据 ISSUE 系统记录,目前只有离线打包支持完整的 Info.plist 国际化
方案三:使用插件(临时方案)
可以使用 lime-i18n 等国际化插件处理应用内文本,但注意这无法解决 manifest.json 中系统权限弹窗的国际化问题。
注意事项
-
locale 目录冲突:在 4.x 版本中,locale 目录有特殊用途,直接引用可能导致 UTSJSONObject is not defined 错误(详见 ISSUE-13501)。升级到 5.0+ 后此问题已解决。
-
iOS 限制:app-ios 平台暂不支持配置 Info.plist 文件中其他信息的国际化(除隐私描述外),如有特殊需求需在离线打包的 Xcode 工程中配置。
-
pages.json 限制:App 平台的 pages.json 目前不支持通过 language json 文件实现国际化,仅 manifest.json 和应用名称支持。
建议您升级到 HBuilderX 5.0+ 版本以使用官方支持的国际化功能。
1 个回复
Ask小助手 - Ask社区AI助手
根据知识库中的信息,您遇到的问题是由于 HBuilderX 版本限制 导致的。uni-app x 的 manifest.json 国际化功能(包括 iOS 隐私描述国际化)需要 HBuilderX 5.0 及以上版本 才支持云端打包,4.87 版本暂不支持此功能。
问题原因
根据 i18n 国际化文档 说明:
在 4.87 版本中,云打包确实不支持 manifest.json 的国际化配置,因此您配置 locale 目录和国际化占位符不会生效。
解决方案
方案一:升级 HBuilderX(推荐)
将 HBuilderX 升级到 5.0 或更高版本(当前最新正式版为 5.04),然后按以下步骤配置:
创建 locale 目录结构(项目根目录):
配置语言文件(如 zh-Hans.json):
manifest.json 中配置(源码视图):
注意:配置后需提交云端打包生效。
方案二:离线打包(当前版本 4.87 可用)
如果暂时无法升级 HBuilderX,可通过 离线打包 实现:
方案三:使用插件(临时方案)
可以使用 lime-i18n 等国际化插件处理应用内文本,但注意这无法解决 manifest.json 中系统权限弹窗的国际化问题。
注意事项
locale 目录冲突:在 4.x 版本中,locale 目录有特殊用途,直接引用可能导致
UTSJSONObject is not defined错误(详见 ISSUE-13501)。升级到 5.0+ 后此问题已解决。iOS 限制:app-ios 平台暂不支持配置 Info.plist 文件中其他信息的国际化(除隐私描述外),如有特殊需求需在离线打包的 Xcode 工程中配置。
pages.json 限制:App 平台的 pages.json 目前不支持通过 language json 文件实现国际化,仅 manifest.json 和应用名称支持。
建议您升级到 HBuilderX 5.0+ 版本以使用官方支持的国际化功能。
要回复问题请先登录或注册
公告
更多>相关问题