uni-app DCloud appid 用途/作用/使用说明

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

uni-app DCloud appid 用途/作用/使用说明
DCloud appid(以后简称 appid) 是 DCloud 应用的唯一标识,在 DCloud 提供的所有服务中,都会以 appid 来标记一个应用。注意这和各家小程序的appid以及Apple的appid(其实就是iOS的包名)是不同的体系。

本文将介绍DCloud appid 的各种使用场景。

管理 appid

创建应用

  • 在 HBuilderX 中创建项目时,HBuilderX 会自动联网生成 appid, 并将该 appid 保存在 manifest 文件中的 appid 字段;
  • 登录开发者中心,也可以创建 uniapp、5+app 等类型应用的 appid;
  • wap2app 项目比较特殊,wap2app 项目的 appid 是在 HBuilderX 中本地生成的,需要提交云打包后,appid 才会同步到服务端;如果在开发者中心的应用列表中查找不到 wap2app 项目的 appid,提交一次云打包即可。
  • 认领 wap2app appid:如果开发者发现自己创建 wap2app 项目 appid 被其他人占用时,可以登录开发者中心,点击“wap2app应用认领”完成自助认领。认领前请先确认是否是由同事或其他认识的人所创建,如由同事创建也可通过转让应用的方式将 appid 转移到对应账号下。

注意:以下场景不会自动生成 appid,开发者可以登录开发者中心自行创建。

  • 使用离线打包
  • 使用 cli 创建 uniapp 项目

创建者即为该应用的所有者。一个应用只能有一个所有者,但可以设置多个协作者。

查看应用列表

登录 开发者中心 可以查看自己创建的应用列表。

增加协作者

1个应用有一个管理员,但可以有多名协作开发者。
在使用app云端打包时,协作开发者也有权对该Appid进行云打包。
如何授权应用(设置协作者)

转让应用

应用的管理员可以将应用转让给他人。常见于员工离职和外包商转让给甲方。
如何转让应用

使用场景

  1. 云打包
    • DCloud 根据 appid 来判断用户是否有权限进行云打包。既不是所有者、又不是协作者,就无法打包;
    • 打包后的原生应用根据 appid 来管理本地资源。每个appid有独立的沙盒,存储是隔离的;
    • 热更新(wgt升级)通过 appid 来覆盖资源
  2. 数据统计
  3. 广告
  4. 换量
  5. uni push
  6. 制作发行页面
  7. 用户反馈
  8. 购买原生插件
  9. uni云端一体安全网络

修改 appid

  • 在 HBuilderX 打开 manifest.json,在“基础配置”界面点击“重新获取”,可以生成新的 appid。**注意:**项目名称不变时,不会分配新的 appid。
  • 通过 manifest.json 源码视图修改 appid,适用于需要将 appid 修改回历史 appid 的场景。

修改 appid 将会引发的问题

  • 使用新 appid 打包的应用在更新时,会丢失老版应用本地缓存的数据,包括plus.storage、uni.setStorage保存的数据、plus.io保存的文件、plus.sqlite的数据等
  • 无法使用新的 appid 进行 wgt 升级
  • 开发者中心提供的相关云服务会出现多个应用,如统计数据、广告、换量、崩溃日志、用户反馈数据等。
  • uni push需要重新配置,否则无法推送
  • 如果在插件市场购买过原生插件,这些插件会绑定appid。修改 appid 后无法继续使用插件,需要重新购买。
  • 已开通uniad增强广告的应用,修改 appid 后会导致广告无法正常展示。
  • uni云端一体安全网络将无法使用

1 回复

在uni-app开发框架中,DCloud appid扮演着重要的角色,它不仅是应用的唯一标识符,还用于项目的配置、云函数调用、应用发布等多个方面。下面我将通过代码和配置示例来说明DCloud appid的用途、作用及如何使用。

DCloud appid的用途与作用

  1. 项目配置:在创建或初始化uni-app项目时,DCloud appid用于标识和配置项目。它确保你的项目在DCloud平台上独一无二,便于管理和发布。

  2. 云函数调用:如果你使用uniCloud进行后端开发,DCloud appid将用于认证和调用云函数,确保数据的安全性和隔离性。

  3. 应用发布:在将应用发布到DCloud平台(如HBuilderX的云端打包、5+ App发布等)时,DCloud appid是识别应用身份的关键。

使用说明与代码案例

1. 创建或初始化项目时指定appid

在HBuilderX中创建uni-app项目时,通常会自动生成一个appid,你也可以在manifest.json文件中查看和修改它:

{
  "mp-weixin": { // 微信小程序配置示例
    "appid": "your-wechat-appid", // 微信小程序的appid,与DCloud appid不同,但配置方式类似
    "setting": {
      // 其他配置...
    }
  },
  "app-plus": { // 5+ App配置
    "distribute": {
      "apple": {
        "appid": "com.example.yourapp" // 这里虽为iOS的bundle ID,但DCloud appid在全局配置中已设定
      },
      "android": {
        // Android配置...
      }
    }
  },
  // 注意:DCloud appid通常在项目创建时由HBuilderX自动生成,并隐式用于项目配置中
}

注意:DCloud appid通常不在manifest.json中直接显示,而是通过HBuilderX项目创建向导或项目设置中隐式配置。

2. 云函数调用示例

在调用uniCloud云函数时,DCloud appid会隐式包含在请求中,用于验证和授权。以下是一个简单的云函数调用示例:

uniCloud.callFunction('yourCloudFunctionName', {
  data: {
    // 函数参数...
  }
}).then(res => {
  console.log('云函数调用成功:', res);
}).catch(err => {
  console.error('云函数调用失败:', err);
});

在这个例子中,虽然你没有显式地使用DCloud appid,但它已经在后台通过uniCloud的认证机制被使用,确保了云函数调用的安全性。

总之,DCloud appid在uni-app开发中至关重要,它确保了项目的唯一性、云函数调用的安全性以及应用发布的顺利进行。在实际开发中,你通常不需要手动管理这个ID,因为HBuilderX和uni-app框架会自动处理大部分配置工作。

回到顶部