
- 发布:2025-04-22 16:21
- 更新:2025-04-22 16:21
- 阅读:812
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 15.4.1 (24E263)
HBuilderX类型: 正式
HBuilderX版本号: 4.57
手机系统: 全部
手机厂商: 华为
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
=======
manifest 部分配置
"safearea" : {
//可选,JSON对象,安全区域配置
"background" : "#010101", //可选,字符串类型,#010101格式,安全区域背景颜色
"backgroundDark" : "#010101", //可选,字符串类型,#RRGGBB格式,暗黑模式安全区域背景颜色
"bottom" : {
//可选,JSON对象,底部安全区域配置
"offset" : "auto" //可选,字符串类型,安全区域偏移值,可取值auto、none
}
},
Info,plist 全部配置 (我确定该文件的名字是 Info.plist, 即首字母 I 大写,剩下都小写)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSUserActivityTypes</key>
<array>
<string>INSendMessageIntent</string>
<string>INStartCallIntent</string>
</array>
</dict>
</plist>
=======
manifest 部分配置
"safearea" : {
//可选,JSON对象,安全区域配置
"background" : "#010101", //可选,字符串类型,#010101格式,安全区域背景颜色
"backgroundDark" : "#010101", //可选,字符串类型,#RRGGBB格式,暗黑模式安全区域背景颜色
"bottom" : {
//可选,JSON对象,底部安全区域配置
"offset" : "auto" //可选,字符串类型,安全区域偏移值,可取值auto、none
}
},
Info,plist 全部配置 (我确定该文件的名字是 Info.plist, 即首字母 I 大写,剩下都小写)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSUserActivityTypes</key>
<array>
<string>INSendMessageIntent</string>
<string>INStartCallIntent</string>
</array>
</dict>
</plist>
操作步骤:
添加 Info.plist, 修改 manifest 中的 app-plus -> safearea 字段。
分别用 “快速安心打包” 和 “传统打包” 方式打包。
添加 Info.plist, 修改 manifest 中的 app-plus -> safearea 字段。
分别用 “快速安心打包” 和 “传统打包” 方式打包。
预期结果:
两者打包后都应该如下:
小米手机和iOS手机下方显示黑色边距(此时开发者无需自行处理安全距离,因为安全距离被填充了黑色北京,safearea bottom 拿到的应该也是 0)。
iOS设备在上传到 Transpoter 时不应该提示错误(因为已经配置了info.plist)。
两者打包后都应该如下:
小米手机和iOS手机下方显示黑色边距(此时开发者无需自行处理安全距离,因为安全距离被填充了黑色北京,safearea bottom 拿到的应该也是 0)。
iOS设备在上传到 Transpoter 时不应该提示错误(因为已经配置了info.plist)。
实际结果:
“传统打包” 方式按预期运行,但是 “快速安心打包” 模式出问题。
快速安心打包模式下,iOS和小米手机下方的有了安全距离。
(默认情况下,即最开始时,iOS和小米手机下方会有白色的底部自动填满,应用在执行js时,获取到的底部安全距离是0,不需要手动处理)
(我期望是底下变成黑色背景色,同时开发者也无需处理底部边距,但是实际上打出来的包不是这样的,“快速安心打包” 模式下,打出来的包底部的安全距离变成了需要开发者自行处理,而 “传统打包” 模式下打出来的包按照我的预期运行了)。
同时,快速安心打包模式下,上传到 Transpoter 依旧提示错误,但是切换到传统打包模式之后,没有提示错误。
“传统打包” 方式按预期运行,但是 “快速安心打包” 模式出问题。
快速安心打包模式下,iOS和小米手机下方的有了安全距离。
(默认情况下,即最开始时,iOS和小米手机下方会有白色的底部自动填满,应用在执行js时,获取到的底部安全距离是0,不需要手动处理)
(我期望是底下变成黑色背景色,同时开发者也无需处理底部边距,但是实际上打出来的包不是这样的,“快速安心打包” 模式下,打出来的包底部的安全距离变成了需要开发者自行处理,而 “传统打包” 模式下打出来的包按照我的预期运行了)。
同时,快速安心打包模式下,上传到 Transpoter 依旧提示错误,但是切换到传统打包模式之后,没有提示错误。
bug描述:
【传统打包方式是好的,但是快速安心打包是有问题的】
我之前 manifest 没有设置 safearea,打包一直是好的(小米手机和iOS显示下方黑色横条+白色背景)
后来我为了把白色背景该成黑色背景(我们APP主题色是暗色调),就在 manifest 中配置了 safearea。
同时因为 iOS 在某个版本上传到 Transpoter 的时候,提示没有配置 plist:(下附错误详情)。
于是我参照文档配置了 plist。
问题在于,当我选择 “快速安心打包” 时,这两个设置都没生效,最后打包出的APP这两个问题依然存在。
而当我选择 “传统打包方式” 时,这两者都生效了。
Missing Info.plist value. Apps with the com.apple.developer.usernotifications.communication entitlement must specify either “INSendMessageIntent” or “INStartCallIntent” in the value of the NSUserActivityTypes Info.plist key. (90894)
0 个回复