uni-app push(消息推送) 模块移除后,打包的基座包会提示未添加 push模块

发布于 1周前 作者 eggper 来自 Uni-App

uni-app push(消息推送) 模块移除后,打包的基座包会提示未添加 push模块

操作步骤:

  • 将 push模块勾选 移除

预期结果:

  • 不提示

实际结果:

  • 如图所示

bug描述:

将push模块移除后,打的包会提示缺失 push模块,但我们业务未使用推送功能,代码中也未找到推送相关的调用接口
然后我这边把 manifest.json中的 distribute.sdkConfigs.push 配置移除后,再次打包运行将不提示了

Image Image Image

信息项 详情
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 11
HBuilderX类型 正式
HBuilderX版本 4.24
手机系统 Android
手机系统版本 Android 10
手机厂商 一加手机
手机机型 一加五
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

7 回复

请查看代码,删除push相关的代码


描述中写了 没有push相关的代码

回复 1***@qq.com: 调相关代码才会弹这个框。您再找找 获取CID之类的

回复 BoredApe: 并没有这块功能的代码,我把 sdkConfigs.push 的push遗留配置删除后,再次打的包 就不会出现push模块缺失的提示

解决了吗 老哥 我的配置项里都没有push这个字段

需要在源码视图删除 push的配置,就可以了

在处理 uni-app 项目中移除 push(消息推送)模块后,打包基座包提示未添加 push 模块的问题时,可以通过配置条件编译和修改项目结构来确保在不使用 push 模块的情况下能够正常打包。以下是一个基于 uni-app 的代码案例和配置示例,用于解决该问题。

步骤 1: 条件编译配置

首先,利用 uni-app 的条件编译功能,为需要使用 push 模块的代码块添加特定的编译标识。例如,可以创建一个名为 PUSH_MODULE 的编译标识。

manifest.json 中添加条件编译配置(如果需要的话,通常这一步是预先设置好的,但确认一下总是好的):

{
  "mp-weixin": { // 或其他平台配置
    "appid": "your-app-id",
    "setting": {
      "condition": {}
    },
    "usingComponents": true,
    "permission": {}
  },
  "condition": { // 条件编译标识
    "scripts": {}
  },
  // 其他配置...
}

注意:manifest.json 中并没有直接添加编译标识的字段,这里的配置主要是为了展示平台设置,编译标识通常在代码中使用。

步骤 2: 代码中的条件编译

在需要使用 push 模块的文件中,用条件编译包围相关代码。例如,在 main.js 或某个特定页面中:

// #ifdef PUSH_MODULE
import push from '@/plugins/push.js'; // 假设 push.js 是你的推送插件
Vue.prototype.$push = push;
// #endif

push.js 文件中,同样使用条件编译包围所有推送相关的逻辑:

// #ifdef PUSH_MODULE
export default {
  init() {
    // 推送初始化代码
    console.log('Push module initialized');
    // ...
  },
  // 其他推送功能...
};
// #endif

步骤 3: 打包时去除编译标识

在打包不需要 push 模块的应用时,确保不在编译命令中包含 PUSH_MODULE 标识。例如,使用 HBuilderX 打包时,不要在自定义条件编译选项中包含 PUSH_MODULE

步骤 4: 清理和测试

  • 清理项目中的无用引用和代码,确保没有遗留的 push 模块代码。
  • 重新打包应用并测试,确保应用能够正常运行且不再提示未添加 push 模块的错误。

通过上述步骤,你可以在不使用 push 模块的情况下,避免打包基座包时出现未添加 push 模块的提示。这种方法依赖于条件编译,能够灵活地根据编译条件包含或排除特定代码块。

回到顶部