10.1 发布前检查清单
小程序提交审核前需要全面检查,避免因违规被驳回或下架。以下是必查项目:
技术合规检查
permission 字段中,所有使用的用户权限(位置、相机、麦克风等)都填写了用途说明,且说明要与实际使用一致内容合规检查
① 含有夸大宣传或违禁词汇(最高、第一、绝对等)
② 涉及金融、医疗等需特殊资质的服务未提供相应证照
③ 小程序描述与实际功能不符
④ 强制用户授权(拒绝授权不给使用基本功能)
⑤ 含有跳转到小程序外部浏览器的链接(违反平台规则)
⑥ 隐私政策不完整或未提供
10.2 版本管理体系
小程序版本管理涉及三个环境:开发版、体验版、正式版。
版本号规范建议
// project.config.json 中的版本号遵循语义化版本
{
"versionName": "2.5.0"
}
// 语义化版本规范:主版本.次版本.修订号
// 主版本(Major):不兼容的功能重构,如 1.0.0 → 2.0.0
// 次版本(Minor):向后兼容的新功能,如 2.4.0 → 2.5.0
// 修订号(Patch):Bug 修复,如 2.5.0 → 2.5.1
CI/CD 自动化发布
// 使用微信官方 miniprogram-ci 工具自动上传代码
// npm install miniprogram-ci --save-dev
// scripts/upload.js
const ci = require('miniprogram-ci')
const pkg = require('./package.json')
async function upload() {
const project = new ci.Project({
appid: process.env.MINIPROGRAM_APPID,
type: 'miniProgram',
projectPath: '.',
privateKeyPath: './private.key', // 上传密钥(在公众平台生成)
ignores: ['node_modules/**/*']
})
await ci.upload({
project,
version: pkg.version,
desc: `CI 自动上传 - ${new Date().toISOString()}`,
robot: 1, // CI 机器人编号(1-30)
setting: {
es6: true,
es7: true,
minify: true
},
onProgressUpdate: console.log
})
console.log('✅ 上传成功')
}
upload().catch(e => {
console.error('❌ 上传失败:', e)
process.exit(1)
})
# GitHub Actions 工作流示例
# .github/workflows/deploy.yml
name: Deploy Mini Program
on:
push:
tags: ['v*']
jobs:
upload:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- name: Upload to WeChat
env:
MINIPROGRAM_APPID: ${{ secrets.MINIPROGRAM_APPID }}
WX_PRIVATE_KEY: ${{ secrets.WX_PRIVATE_KEY }}
run: |
echo "$WX_PRIVATE_KEY" > private.key
node scripts/upload.js
10.3 热更新策略
小程序有两种更新机制,理解它们有助于设计合理的版本更新提示:
冷启动更新
用户长时间(通常超过 30 分钟)未使用小程序后重新打开,微信会检测是否有新版本。有则自动下载,下次启动生效。
热启动更新
用户切后台再切回来,不会更新版本。需要代码主动调用 wx.getUpdateManager 检查并提示用户重启。
// app.js — 版本更新检查(在 onShow 中)
onShow() {
if (!wx.canIUse('getUpdateManager')) return
const updateManager = wx.getUpdateManager()
// 检查是否有新版本
updateManager.onCheckForUpdate((res) => {
console.log('是否有新版本:', res.hasUpdate)
})
// 新版本下载完成
updateManager.onUpdateReady(() => {
wx.showModal({
title: '发现新版本',
content: '新版本已就绪,重启后使用新版本,是否立即重启?',
showCancel: false, // 强制更新(重要功能修复时可不允许取消)
success({ confirm }) {
if (confirm) updateManager.applyUpdate()
}
})
})
// 新版本下载失败
updateManager.onUpdateFailed(() => {
wx.showToast({ title: '新版本下载失败,请检查网络', icon: 'none' })
})
}
10.4 数据分析平台
微信公众平台提供了完整的小程序数据分析功能(「数据分析」标签页),无需接入第三方统计。
核心指标说明
自定义数据上报
// 使用微信官方自定义数据分析上报事件
// (在公众平台「数据分析 → 自定义分析」中配置事件和指标)
// 上报商品点击事件
wx.reportAnalytics('product_click', {
product_id: productId,
product_name: productName,
category: category,
source: 'home_banner' // 来源
})
// 上报支付成功事件
wx.reportAnalytics('payment_success', {
order_id: orderId,
amount: amount, // 金额(单位:元)
product_count: quantity
})
// 上报页面停留时长
let enterTime
Page({
onShow() { enterTime = Date.now() },
onHide() {
wx.reportAnalytics('page_stay', {
page: 'detail',
duration: (Date.now() - enterTime) / 1000
})
}
})
10.5 AB 测试
微信小程序支持官方 AB 测试功能,可以在不同用户群体展示不同 UI 或逻辑,科学评估改版效果。
// 获取 AB 测试分组(需在公众平台配置实验)
wx.getExperimentData({
tinyappId: '你的实验ID',
success(res) {
const { expData } = res
const variant = expData?.btnColor?.value || 'control'
// variant: 'control'(对照组)或 'treatment_a'(实验组)
getApp().globalData.abVariant = variant
}
})
10.6 小程序 SEO 与搜索优化
微信搜索是小程序重要的自然流量来源,以下措施有助于提升搜索排名:
- 正确配置
sitemap.json,允许微信爬虫抓取关键页面 - 小程序名称、描述和功能介绍关键词准确且有吸引力
- 使用微信「搜索直达」功能,为关键词配置对应的落地页
- 保持小程序活跃(定期更新内容、维持 DAU),活跃度影响搜索权重
- 积累用户评价(好评率影响搜索展示),引导满意用户去评价
- 分享指数:被用户主动分享次数越多,搜索排名越靠前
10.7 运营工具箱
官方运营工具
- 微信搜一搜 — 搜索直达配置
- 附近的小程序 — 地理位置入口
- 小程序码 — 带参数的专属二维码
- 订阅消息 — 精准触达用户
- 小程序直播 — 电商直播能力
- 流量主 — 广告变现
技术运营能力
- 灰度发布 — 降低上线风险
- 实时日志 — 线上错误追踪
- 性能监控 — 慢响应预警
- 用户反馈 — 收集 Bug 报告
- 云函数定时任务 — 自动化运营
- 消息推送 — 触达离线用户
在代码中使用 wx.getRealtimeLogManager() 上报关键日志,可以在公众平台「开发 → 实时日志」中按用户 openid 或时间查看,极大降低线上问题排查难度。上报规范:关键操作用 info,可预期的错误用 warn,需立即处理的用 error。
10.8 本系列教程总结
恭喜你完成了微信小程序开发完整教程!回顾一下我们所学的内容:
- 第1章 — 理解了小程序的双线程架构和 Skyline 渲染引擎原理
- 第2章 — 掌握了 app.json、page.json 等配置文件的完整用法
- 第3章 — 熟练使用 WXML 数据绑定、条件渲染、列表渲染和模板复用
- 第4章 — 理解了 rpx 单位原理和 Skyline 下的样式系统
- 第5章 — 深入掌握了生命周期、setData 性能优化和路由体系
- 第6章 — 能够开发完整的自定义组件并使用 behaviors 复用逻辑
- 第7章 — 封装了 wx.request,并会使用云开发进行全栈开发
- 第8章 — 实现了微信登录、支付和订阅消息等核心能力
- 第9章 — 掌握了分包、worklet 动画和 Skyline 高级特性
- 第10章 — 了解了发布流程、版本管理和数据运营体系
• 深入学习微信小程序官方文档(developers.weixin.qq.com)
• 探索 UniApp、Taro 等跨端框架,实现一套代码多端部署
• 学习云开发高级特性:云托管、静态托管、数据库备份
• 关注微信开放社区(developers.weixin.qq.com/community)获取最新动态