s***@askdwl.com
s***@askdwl.com
  • 发布:2026-09-21 17:30
  • 更新:2026-09-21 17:31
  • 阅读:20

【报Bug】ios本地打包uniapp_module_config.rb推送无法配置成功

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: MacOS26.5.0

HBuilderX类型: 正式

HBuilderX版本号: 5.24

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iphone17pm

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:

..

预期结果:

..

实际结果:

..

bug描述:

def apply_push_values(plist, enabled, values, strict)
return false unless (enabled & %w[Push-UniPush Push-Getui]).any?

cfg = values.fetch(:push_getui, values.fetch(:push_unipush, {}))  
changed = false  
%i[appid appkey appsecret].each do |key|  
  value = required_value(cfg, key, "push_getui.#{key}", strict)  
  changed ||= set_nested_value(plist, ['getui', key.to_s], value) if present?(value)  
end  
changed  

end
官方提供的uniapp_module_config.rb可以配置推送的appid,而appkey appsecret没有配置成功
uniapp_config.rb已配置

Fill values only for the modules enabled in Podfile.

Unused module configs can stay empty; the script writes values only for enabled subspecs.

UNIAPP_PLIST_VALUES = {
capabilities {
associated_domains: ['applinks:ukeyulinks.askdwl.com'],
sign_in_with_apple: false,
push_notifications: true,
},
push_getui {
appid: 'mIFjGOnKeD9v1fuJVmwRI8',
appkey: 'vJiG55lCyq98E0VMu1iaF7',
appsecret: 'lue0eIaQSf5i6e8a59B3K2',
},
}.freeze

Optional values for UTS plugin config.json placeholders.

Example: config.json value "{$appid}" reads UNIAPP_UTS_PLUGIN_VALUES['plugin-name'][:appid].

UNIAPP_UTS_PLUGIN_VALUES = {
}.freeze

最终plist文件中

<key>getui</key>
<dict>
<key>appid</key>
<string>mIFjGOnKeD9v1fuJVmwRI8</string>
<key>appkey</key>
<string>去官方网站申请对应的key</string>
<key>appsecret</key>
<string>去官方网站申请对应的值</string>
</dict>

2026-09-21 17:30 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您的反馈。针对您提交的 Bug,官方评审意见如下:

1. Bug 反馈内容完整性评审

  • BUG 描述:描述非常清晰,明确指出了 uniapp_module_config.rb 脚本执行后,appid 写入成功,但 appkeyappsecret 未被正确替换,仍保留默认占位符的问题。同时提供了相关的 Ruby 脚本片段和 uniapp_config.rb 中的配置代码,有助于官方快速定位问题。
  • 代码示例:提供的配置代码与最终生成的 plist 文件结果对应,逻辑清楚。
  • 复现步骤、预期结果、实际结果:均未填写具体内容。建议您后续提交 Bug 时,补充完整的复现步骤(如执行 pod install 的时机)、预期结果(期望 plistappkeyappsecret 被正确写入真实值)以及实际结果(仅写入了占位符字符串)。
  • 分类信息:包含了开发环境、HBuilderX 版本、手机平台等信息,分类完整。
  • 附件说明:由于系统限制,我无法识别和查看附件内容。

2. Bug 是否成立及分析

根据您提供的代码和最终 plist 结果,该 Bug 现象是成立的。从您提供的 uniapp_config.rb 配置来看,push_getui 节点下的 appidappkeyappsecret 均已正确填写,但最终只有 appid 生效,说明 uniapp_module_config.rb 脚本在处理个推推送参数写入 Info.plist 时存在逻辑缺陷或遗漏。

建议与排查方向:
由于这是本地离线打包脚本的问题,在官方修复该脚本之前,您可以暂时通过手动修改 Info.plist 文件来规避此问题:

  1. 在 Xcode 工程中找到 Info.plist 文件。
  2. 手动将 getui 节点下的 appkeyappsecret 对应的值,修改为您在 uniapp_config.rb 中配置的真实字符串(替换掉“去官方网站申请对应的key”等占位符)。
  3. 重新编译工程即可。

我们会将此脚本问题记录并转交相关团队进行核实与修复,感谢您对 DCloud 产品的支持。

内容为 AI 生成,仅供参考

要回复问题请先登录注册