example 能跑就等于插件可以发布了吗还差得远。前四篇我们把插件从无到有搭起来了01插件被 HarmonyOS 识别02Dart 和 ArkTS 通信03接入系统能力04生命周期和权限现在 example 能跑了。但能不能发布给别人用差得远。example 能跑只是第一步真正发布还要处理版本兼容、错误码、测试、文档这些事。一、先想清楚example 能跑和可发布差在哪先把最基础的问题想明白。对比example 能跑可发布插件版本只测当前 SDK要兼容多个 SDK 版本错误能跑就行错误码要清晰测试手动点一下单元测试、真机验证文档没有README、示例二、版本兼容为什么重要插件依赖 HarmonyOS SDK 版本。用户用的 SDK 版本可能不一样。版本问题插件写死 SDK 版本低版本用户用不了没有版本检查高版本 API 在低版本崩了API 行为变化升级后行为变了HarmonyOS 7 对应 API 26。升级应用的时候要评估 API 行为变化在新旧设备上做兼容验证。这段代码解决什么问题版本兼容检查。文件ohos/src/main/ets/PluginCompat.ets用途版本兼容接入位置插件初始化import{deviceInfo}fromkit.BasicServicesKit;classPluginCompat{staticcheckMinSdk(minApi:number):boolean{letapiVersiondeviceInfo.sdkApiVersion;returnapiVersionminApi;}staticgetApiVersion():number{returndeviceInfo.sdkApiVersion;}}三、错误码为什么要对用户可读example 里出错了打个日志就行。发布给别人用用户不知道为什么出错。错误码要统一、要可读。Dart 层用户拿到错误码知道发生了什么。错误码说明canceled用户取消not_found文件不存在permission_denied权限拒绝timeout超时unknown未知错误四、发布前要做什么发布前 Checklist插件目录结构规范错误码统一版本兼容检查example 跑通单元测试真机验证README 写清楚API 26 升级验证。五、几个容易踩的坑第一个坑example 能跑就直接发布。没做版本兼容没做错误处理。第二个坑HarmonyOS SDK 版本写死。低版本用户用不了。第三个坑依赖版本无上限。新版本出问题老用户也受影响。第四个坑API 行为变化没有兼容保护。升级后行为变了。第五个坑错误码对 Dart 用户不可读。用户不知道为什么出错。第六个坑没有测试 Engine 重建和异常生命周期。线上出问题。第七个坑README 只写 Android/iOS。HarmonyOS 用户不知道怎么用。这次做工程收口最大的体会是能跑的 Demo 和可发布的插件差了一整个工程化过程。真正做的时候最容易忽略的不是怎么写功能而是怎么管好版本、错误、测试、文档。这些东西 example 里不用管发布的时候全得补上。
