CocosCreator2.3.0打包oppo小游戏构建rpk报错

  • Creator 版本:2.3.0

  • 目标平台:

  • 详细报错信息,包含调用堆栈:
    Build Failed: Error: rpk包构建失败!错误:Error: Command failed: node D:\CocosCreator_2.3.0\resources\builtin\oppo-adapter\quickgame-toolkit\lib\bin\index cocoscreator release

D:\CocosCreator_2.3.0\resources\builtin\oppo-adapter\quickgame-toolkit\node_modules\jsrsasign\lib\jsrsasign.js:247
var KEYUTIL=function(){var d=function(p,r,q){return k(CryptoJS.AES,p,r,q)};var e=function(p,r,q){return k(CryptoJS.TripleDES,p,r,q)};var a=function(p,r,q){return k(CryptoJS.DES,p,r,q)};var k=function(s,x,u,q){var r=CryptoJS.enc.Hex.parse(x);var w=CryptoJS.enc.Hex.parse(u);var p=CryptoJS.enc.Hex.parse(q);var t={};t.key=w;t.iv=p;t.ciphertext=r;var v=s.decrypt(t,w,{iv:p});return CryptoJS.enc.Hex.stringify(v)};var l=function(p,r,q){return g(CryptoJS.AES,p,r,q)};var o=function(p,r,q){return g(CryptoJS.TripleDES,p,r,q)};var f=function(p,r,q){return g(CryptoJS.DES,p,r,q)};var g=function(t,y,v,q){var s=CryptoJS.enc.Hex.parse(y);var x=CryptoJS.enc.Hex.parse(v);var p=CryptoJS.enc.Hex.parse(q);var w=t.encrypt(s,x,{iv:p});var r=CryptoJS.enc.Hex.parse(w.toString());var u=CryptoJS.enc.Base64.stringify®;return u};var i={“AES-256-CBC”:{proc:d,eproc:l,keylen:32,ivlen:16},“AES-192-CBC”:{proc:d,eproc:l,keylen:2
unsupported object nor format
at EventEmitter. (D:\CocosCreator_2.3.0\resources\app.asar\editor-framework\lib\main\ipc.js:1:4952)
at EventEmitter.emit (events.js:194:13)
at EventEmitter.emit (domain.js:469:20)
at Object.i.reply (D:\CocosCreator_2.3.0\resources\app.asar\editor-framework\lib\main\ipc.js:1:2117)
at D:\CocosCreator_2.3.0\resources\app.asar\editor\builtin\oppo-plugin\build.js:1:3757
at ChildProcess.exithandler (child_process.js:319:5)
at ChildProcess.emit (events.js:194:13)
at ChildProcess.EventEmitter.emit (domain.js:469:20)
at maybeClose (internal/child_process.js:998:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
--------------------

  • 重现方式:填完信息后直接构建,就会报这个错

  • 出现概率:100%

  • 额外线索:构建界面所有信息我都是按照官方的要求填的,没有遗漏。nodejs版本我也换了好几个,8.X,9.X,10.X,11.X,12.X我都换了,始终是报这个错,本来希望能在五一之前上线OPPO平台,但目前就卡在构建这个点了,不知道是不是creator2.3.0的问题,跪求哪位大牛能解答一下,万分感谢!

已经找到问题了,是因为我的签名文件的问题。用openssl重新生成签名文件就可以了。使用调试密钥库也不会有问题。
这里顺便反馈一下,cocos creator构建界面自带的新建签名文件功能似乎只能生成private.pem,而没有生成certificate.pem,而我选择其中一个路径的时候,会自动把另外一个路径也填上,但两个都是选择的private.pem,这样会让用户误以为没啥问题,然后直接构建,就报错了,而这个Error: Command failed: node D:\CocosCreator_2.3.0\resources\builtin\oppo-adapter\quickgame-toolkit\lib\bin\index cocoscreator release错误又太笼统,网上大部分说的是nodejs版本问题。这种问题应该要看后面的详细报错信息,比如我的报错是CocosCreator_2.3.0\resources\builtin\oppo-adapter\quickgame-toolkit\node_modules\jsrsasign\lib\jsrsasign.js:247,我才联想到了签名的问题。
再顺便附上关于window下oppo签名的解决方案,都是网上的,而且也不复杂。但整理到这里一起,方便后面有需求的人快速处理问题。
1.首先安装openssl,地址:http://slproweb.com/products/Win32OpenSSL.html
2.下载后直接安装,安装成功后要设置环境变量,路径是安装目录下的bin文件夹。
3.这个时候运行openssl可能会报错can’t open config file: /usr/local/ssl/openssl.cnf
4.如果报错,在命令行执行set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg(这个路径是安装目录下的bin下面的openssl.cfg,根据自己的安装目录来、)
5.然后运行命令生成签名openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem,根据提示填写国家城市组织等基本信息。
6.最后成功生成签名文件,签名文件在你命令行所处的目录下。一般是C:\Users\Administrator>,看你自己进命令行的时候在哪个目录了。
7.然后在creator的构建页面分别选择private.pem和certificate.pem的路径,点构建,完成。
PS:正式签名在快应用上面测试的话会提示安装失败,用调试密钥库签名即可,测试完后用正式签名打包上架。

2赞

大佬,能请教下么,我也打包出问题了。2.3.2,感觉es6打包后,快应用那边认识不了。

2.3.3 也有这个问题
用调试密钥 可以
新建密钥不可以
结果一看,新建时只新建了一个!

cocos 臭傻X

免费用还骂娘? 对,因为浪费了我的精力 臭傻xxx cocos 的程序员们

楼主,请问一下! 我用 调试密钥 打包 的 rpk 在 快应用 里能够打开
但是 我用open生成的密钥 打包 的 rpk 在快应用里就打不开了,显示 安装包失败
请问这正常吗? 是快应用 只能调试 调试密钥的rpk吗?

兄弟,你这个就很过分了。。。

我这边没问题呢、、、

这个是 快应用的问题. 必须 清空缓存 才能 安装 同包名不同秘钥的

我也遇到同样的问题,太坑

问一下楼主,每个游戏都有自己的密钥库吗,还是说一个密钥库通用所有游戏