DCloud_App_Array
DCloud_App_Array
  • 发布:2019-04-16 15:28
  • 更新:2025-07-31 11:44
  • 阅读:31520

本地uni-app原生插件提交云端打包

分类:uni-app

从HBuilderX1.9.0开始uni-app原生插件可以直接在插件市场绑定应用后,直接云端打包生效,避免下载uni-app原生插件到本地后再提交云端打包。
同时也继续支持将插件下载到本地后再提交云端打包,通常在以下情况使用这种方式:

  • uni-app原生插件开发者,开发后配置提交云端打包验证插件的包格式是否正确
  • uni-app原生插件使用者,需要对插件自定义修改(如插件的资源等)

获取本地uni-app原生插件

插件市场下载免费uni-app原生插件

可以登录uni原生插件市场,在免费的插件详情页中点击“下载for离线打包”下载原生插件(zip格式),解压到HBuilderX的uni-app项目下的“nativeplugins”目录(如不存在则创建),以下是“DCloud-RichAlert”插件举例,它的下载地址是:https://ext.dcloud.net.cn/plugin?id=36
下载解压后目录结构如下:

开发者自己开发uni-app原生插件

原生插件开发完成后按指定格式压缩为zip包,参考uni-app原生插件格式说明文档
按上图的格式配置到uni-app项目下的“nativeplugins”目录。

uni-app原生插件本地配置

将原生插件配置到uni-app项目的“nativeplugins”下,还需要在manifest.json文件的“App原生插件配置”项下点击“选择本地插件”,在列表中选择需要打包生效的插件:

保存后,重新提交云端打包生效

关于云端打包资源大小超限的说明

云端打包资源大小限制40M,如果超限每次打包需支付一定费用。40M—100M,每次打包10元,每增加100M费用增加10元。请登录开发者中心(https://dev.dcloud.net.cn),选择“打包服务”- “App大小超限充值”进行自助充值后,再提交打包。
如果是为了开发uni-app原生插件提交插件市场前的测试打包,大小超限也需付费才能云端打包,插件上线通过审核以后可以申请退还相关打包费用。
提供开发者账号及插件链接地址发邮件到 bd@dcloud.io 申请,谢谢!

使用 Windows 系统提交 iOS 本地插件打包报错的解决方法

如果使用 mac 提交本地插件打包正常,而使用 Windows 系统提交 iOS 本地插件打包时报错,是因为插件包使用的某个 .framework 库中存现软链接,在 Windows 系统上解压后导致软链接失效,打包时导致这个库缺失,所以会报错
报错如下图:

解决办法:
1.依次查看插件iOS目录下面的 .framework 库文件,下面以 UTDID.framework 为例,打开后发现 UTDID、Resources、Headers 大小都为 1kb,说明这几个文件既是软链(在Windows上加压后被转换为文本文件,无法链接到真实文件)


2.用记事本打开这几个文件,里面写的就是链接的真实文件目录,(链接的是/Versions/A/目录中的文件)

3.把真实文件拷贝到这个库的根目录,将其他文件全部删除即可,最终的库文件

然后重新提交打包即可;

使用uni-app原生插件参考:uni-app原生插件(native plugin)使用说明
更多uni-app原生插件文档参考:uni-app原生插件开发指南

0 关注 分享

要回复文章请先登录注册

DCloud_App_Array

DCloud_App_Array (作者)

回复 9***@qq.com :
安心打包使用的三方工具 Apktool,可能在某些场景可能不兼容。这种时候建议切换使用“传统模式”
2025-07-31 11:44
9***@qq.com

9***@qq.com

回复 DCloud_App_Array :
谢谢,传统模式可以打包,但是每天只有五次机会,安心打包不可以用了吗
2025-07-29 14:13
DCloud_App_Array

DCloud_App_Array (作者)

回复 9***@qq.com :
切换使用“传统模式”看是否可以正常打包
2025-07-24 16:36
9***@qq.com

9***@qq.com

hbuilder的项目,云端打包安心打包一直失败,之前还好好的,突然打包失败了,错误日志如下:
[Info] 正在制作apk安装包...

[Info] I: Using Apktool 2.11.1 on __UNI__9A103CF_cm.apk with 8 threads
[Info] I: Copying raw classes.dex file...
[Info] I: Copying raw classes2.dex file...
[Info] I: Copying raw assets/39285EFA.dex file...
[Info] I: Loading resource table...
[Info] I: Decoding file-resources...
[Info] I: Loading resource table from file: C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\apktool\1.apk
[Info] I: Decoding values */* XMLs...
[Info] I: Decoding AndroidManifest.xml with resources...
[Info] I: Regular manifest package...
[Info] I: Copying original files...
[Info] I: Copying assets...
[Info] I: Copying lib...
[Info] I: Copying unknown files...
[Info] begin replace files to apk...
[Info] begin copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-hdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-hdpi/icon.png]...
[Info] copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-hdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-hdpi/icon.png] success.
[Info] begin copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-xhdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-xhdpi/icon.png]...
[Info] copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-xhdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-xhdpi/icon.png] success.
[Info] begin copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-xxhdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-xxhdpi/icon.png]...
[Info] copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-xxhdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-xxhdpi/icon.png] success.
[Info] begin copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-xxxhdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-xxxhdpi/icon.png]...
[Info] copy file[D:/Documents/app-ShareBabyCar/unpackage/cache/wgt/__UNI__9A103CF/.manifest/icon-android-xxxhdpi.png] to [C:/Users/admin/AppData/Local/HBuilder X/AndroidPackWork/cache/__UNI__9A103CF/packge_cache/__NONE__/__UNI__9A103CF_cm/res/drawable-xxxhdpi/icon.png] success.
[Info] begin update files to apk...
[Error] try compile package:0
[Info] I: Using Apktool 2.11.1 on __UNI__9A103CF_nosign.apk with 8 threads
[Info] I: Copying raw classes.dex file...
[Info] I: Copying raw classes2.dex file...
[Info] I: Checking whether resources have changed...
[Info] I: Building resources with aapt2...
[Error] W: error: invalid manifest package override '~'.
[Error] Exception in thread "main" brut.androlib.exceptions.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\admin\AppData\Local\Temp\brut_util_Jar_52582593991115254425808798040339797174.tmp, link, -o, C:\Users\admin\AppData\Local\Temp\APKTOOL10322421090062673943.tmp, --allow-reserved-package-id, --package-id, 127, --min-sdk-version, 21, --target-sdk-version, 28, --rename-manifest-package, ~, --rename-instrumentation-target-package, ~, --version-code, 107, --version-name, 1.0.7, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --no-compile-sdk-metadata, --warn-manifest-validation, -I, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\apktool\1.apk, --manifest, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\AndroidManifest.xml, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\build\resources.zip]
[Error] at brut.androlib.AaptInvoker.invoke(SourceFile:213)
[Error] at brut.androlib.ApkBuilder.buildResources(SourceFile:352)
[Error] at brut.androlib.ApkBuilder.build(SourceFile:93)
[Error] at brut.apktool.Main.main(SourceFile:322)
[Error] Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\admin\AppData\Local\Temp\brut_util_Jar_52582593991115254425808798040339797174.tmp, link, -o, C:\Users\admin\AppData\Local\Temp\APKTOOL10322421090062673943.tmp, --allow-reserved-package-id, --package-id, 127, --min-sdk-version, 21, --target-sdk-version, 28, --rename-manifest-package, ~, --rename-instrumentation-target-package, ~, --version-code, 107, --version-name, 1.0.7, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --no-compile-sdk-metadata, --warn-manifest-validation, -I, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\apktool\1.apk, --manifest, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\AndroidManifest.xml, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\build\resources.zip]
[Error] at brut.util.OS.exec(SourceFile:143)
[Error] at brut.androlib.AaptInvoker.invoke(SourceFile:209)
[Error] ... 3 more
[Error] try compile package:1
[Info] I: Using Apktool 2.11.1 on __UNI__9A103CF_nosign.apk with 8 threads
[Info] I: Checking whether resources have changed...
[Info] I: Building resources with aapt2...
[Error] W: error: invalid manifest package override '~'.
[Error] Exception in thread "main" brut.androlib.exceptions.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\admin\AppData\Local\Temp\brut_util_Jar_15073504745428907327950302811477405733.tmp, link, -o, C:\Users\admin\AppData\Local\Temp\APKTOOL8471155394279095580.tmp, --allow-reserved-package-id, --package-id, 127, --min-sdk-version, 21, --target-sdk-version, 28, --rename-manifest-package, ~, --rename-instrumentation-target-package, ~, --version-code, 107, --version-name, 1.0.7, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --no-compile-sdk-metadata, --warn-manifest-validation, -I, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\apktool\1.apk, --manifest, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\AndroidManifest.xml, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\build\resources.zip]
[Error] at brut.androlib.AaptInvoker.invoke(SourceFile:213)
[Error] at brut.androlib.ApkBuilder.buildResources(SourceFile:352)
[Error] at brut.androlib.ApkBuilder.build(SourceFile:93)
[Error] at brut.apktool.Main.main(SourceFile:322)
[Error] Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\admin\AppData\Local\Temp\brut_util_Jar_15073504745428907327950302811477405733.tmp, link, -o, C:\Users\admin\AppData\Local\Temp\APKTOOL8471155394279095580.tmp, --allow-reserved-package-id, --package-id, 127, --min-sdk-version, 21, --target-sdk-version, 28, --rename-manifest-package, ~, --rename-instrumentation-target-package, ~, --version-code, 107, --version-name, 1.0.7, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --no-compile-sdk-metadata, --warn-manifest-validation, -I, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\apktool\1.apk, --manifest, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\AndroidManifest.xml, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\build\resources.zip]
[Error] at brut.util.OS.exec(SourceFile:143)
[Error] at brut.androlib.AaptInvoker.invoke(SourceFile:209)
[Error] ... 3 more
[Error] try compile package:2
[Info] I: Using Apktool 2.11.1 on __UNI__9A103CF_nosign.apk with 8 threads
[Info] I: Checking whether resources have changed...
[Info] I: Building resources with aapt2...
[Error] W: error: invalid manifest package override '~'.
[Error] Exception in thread "main" brut.androlib.exceptions.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\admin\AppData\Local\Temp\brut_util_Jar_59425792566979788934886820320149615169.tmp, link, -o, C:\Users\admin\AppData\Local\Temp\APKTOOL13710440091285687618.tmp, --allow-reserved-package-id, --package-id, 127, --min-sdk-version, 21, --target-sdk-version, 28, --rename-manifest-package, ~, --rename-instrumentation-target-package, ~, --version-code, 107, --version-name, 1.0.7, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --no-compile-sdk-metadata, --warn-manifest-validation, -I, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\apktool\1.apk, --manifest, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\AndroidManifest.xml, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\build\resources.zip]
[Error] at brut.androlib.AaptInvoker.invoke(SourceFile:213)
[Error] at brut.androlib.ApkBuilder.buildResources(SourceFile:352)
[Error] at brut.androlib.ApkBuilder.build(SourceFile:93)
[Error] at brut.apktool.Main.main(SourceFile:322)
[Error] Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\admin\AppData\Local\Temp\brut_util_Jar_59425792566979788934886820320149615169.tmp, link, -o, C:\Users\admin\AppData\Local\Temp\APKTOOL13710440091285687618.tmp, --allow-reserved-package-id, --package-id, 127, --min-sdk-version, 21, --target-sdk-version, 28, --rename-manifest-package, ~, --rename-instrumentation-target-package, ~, --version-code, 107, --version-name, 1.0.7, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --no-compile-sdk-metadata, --warn-manifest-validation, -I, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\apktool\1.apk, --manifest, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\AndroidManifest.xml, C:\Users\admin\AppData\Local\HBuilder X\AndroidPackWork\cache\__UNI__9A103CF\packge_cache\__NONE__\__UNI__9A103CF_cm\build\resources.zip]
[Error] at brut.util.OS.exec(SourceFile:143)
[Error] at brut.androlib.AaptInvoker.invoke(SourceFile:209)
[Error] ... 3 more
[Error] Apk tool compile package to apk failed
[Error] 制作结果:Failed. Reason:
2025-07-21 10:30
DCloud_App_Array

DCloud_App_Array (作者)

回复 7***@qq.com :
云端插件插件需要重新提交云端打包,本地插件需要下载更新插件后重新提交云端打包。
2025-07-16 12:46
7***@qq.com

7***@qq.com

项目引用了某个云端插件,后续某一天这个插件更新了。这种情况app的调用会自动跟着用新版本插件吗,还是需要重新打包app。 引用云端插件的更新机制是怎样
2025-07-15 15:25
DCloud_App_Array

DCloud_App_Array (作者)

回复 1***@139.com :
可能插件id与云端插件id一致导致,可以尝试修改本地插件id。
2025-04-29 18:10
1***@139.com

1***@139.com

本地原生插件提示没有购买或者试用,自己开发的,咋回事啊
2025-04-24 15:51
w***@foxmail.com

w***@foxmail.com

如果我下载依赖之后,js堆内存不足该怎么解决
2023-05-19 18:39
2***@qq.com

2***@qq.com

回复 liuqisakuya :
有解决的方法吗?最近也是遇到这个问题
2022-03-09 14:05