行云流火
行云流火
  • 发布:2025-04-22 16:21
  • 更新:2025-04-22 16:21
  • 阅读:812

【报Bug】HbuilderX正式版云打包 Info.plist 和 manifest 中的 app-plus safearea 设置不生效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 15.4.1 (24E263)

HBuilderX类型: 正式

HBuilderX版本号: 4.57

手机系统: 全部

手机厂商: 华为

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

红米手机K70ultra,澎湃2.0.110.0;iphone15, iOS18.3.2

示例代码:

=======
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 字段。
分别用 “快速安心打包” 和 “传统打包” 方式打包。

预期结果:

两者打包后都应该如下:
小米手机和iOS手机下方显示黑色边距(此时开发者无需自行处理安全距离,因为安全距离被填充了黑色北京,safearea bottom 拿到的应该也是 0)。
iOS设备在上传到 Transpoter 时不应该提示错误(因为已经配置了info.plist)。

实际结果:

“传统打包” 方式按预期运行,但是 “快速安心打包” 模式出问题。
快速安心打包模式下,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)

2025-04-22 16:21 负责人:无 分享
已邀请:

要回复问题请先登录注册