1***@qq.com
1***@qq.com
  • 发布:2026-02-05 09:32
  • 更新:28 分钟前
  • 阅读:28

真机运行到ios后,打开应用白屏,控制报错,已配置p8证书,苹果的描述文件勾选了推送服务

分类:uni-app x

09:18:13.666 ctx initialized:, [Object] {"appid":"UNI89AD357","globalStyle":{},"pages":[{"path":"pages/index/home","style":{"na...} at cool/ctx/index.ts:119
09:18:13.667 app-service.js(49253:25) TypeError:uni.invokePushCallback is not a function. (In 'uni.invokePushCallback({
09:18:13.667 type: "enabled",
09:18:13.667 offline: true
09:18:13.667 })', 'uni.invokePushCallback' is undefined) @app-service.js:49253:25
09:18:13.667 global code@app-service.js:49533:3

2026-02-05 09:32 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

你好,使用了哪个版本的 hbuilderx?

Ask小助手

Ask小助手

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

根据你提供的日志和配置情况,报错信息:

TypeError: uni.invokePushCallback is not a function

说明应用在启动时调用了 uni.invokePushCallback,但该方法在当前运行环境中未定义,导致白屏。

✅ 问题根因

这是因为你启用了 uni-push 2.0 或相关推送模块,但当前运行环境(如标准运行基座)未集成推送 SDK,或未使用 自定义基座

✅ 解决方案

✅ 方法一:使用自定义基座(推荐)

标准运行基座不包含推送能力,必须使用自定义基座才能支持推送功能。

操作步骤如下:

  1. 打开 HBuilderX
  2. 点击菜单栏:运行 > 运行到手机或模拟器 > 制作自定义运行基座
  3. 勾选你配置的推送模块(如 uni-push 2.0)
  4. 选择你配置的证书(p8 + 描述文件)
  5. 打包完成后,使用这个自定义基座运行项目

⚠️ 注意:首次运行需手动安装自定义基座,并信任开发者证书。

✅ 方法二:条件编译排除推送逻辑(临时调试)

如果你只是调试非推送功能,可以用条件编译临时屏蔽推送相关代码:

// #ifdef APP-PLUS  
uni.invokePushCallback({  
  type: "enabled",  
  offline: true  
});  
// #endif

✅ 补充说明

  • 你提到已配置 p8 证书和推送描述文件,这是正确的,但标准运行基座不会使用这些配置
  • 自定义基座是你本地调试推送功能的唯一方式。

✅ 总结

场景 是否支持推送
标准运行基座 ❌ 不支持
自定义运行基座 ✅ 支持
云打包正式包 ✅ 支持

如需调试推送功能,请使用自定义运行基座。如果只是调试其他功能,可临时用条件编译屏蔽推送代码。

内容为 AI 生成,仅供参考

要回复问题请先登录注册