Cocos创建者fb-instant-games本地测试

时间:2018-03-19 20:54:26

标签: cocos2d-js facebook-instant-games

我已关注these instructions

  

在本地启用启用https的Web服务器   通过npm

安装http-server软件包
$ npm install -g http-server
     

通过openssl创建私钥和证书。需要将路径分配给构建的fb-instant-games目录

$ cd fb-instant-games/
$ openssl genrsa 2048 > key.pem
$ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem
     

一旦私钥和证书准备就绪,就可以通过SSL在本地启动Web服务。

$ http-server --ssl -c-1 -p 8080 -a 127.0.0.1
     

使用浏览器打开https://localhost:8080并跳过浏览器显示的安全警告。此步骤仅允许浏览器将上述私钥和证书列入白名单。如果您随后重新生成私钥和证书,则需要再次打开确认。由于预览游戏需要初始化Facebook Instant Games SDK,因此无法在此步骤直接预览游戏。您需要使用以下方法。

     

在Facebook上预览游戏

     

如果您想使用Facebook Instant Games SDK的所有功能,则需要在浏览器中打开:https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080。请注意链接中的YOUR_GAME_ID。替换您在Facebook中创建的应用程序编号。

     

然后你可以看到游戏成功运行:

我完全跟着。 Web服务器正在从正确的路径运行。当我导航到Facebook为本地嵌入提供的URL时,游戏不会初始化。

如果我将zip文件上传到Facebook主机并从我的手机播放,游戏初始化正常。当我尝试使用本地测试时,它特别不起作用。如果我导航到/ build / fb-instant-games /或https://localhost:8080,我在Chrome中没有错误,但如果我转到https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080,则会收到此错误

project.js:1 Uncaught TypeError: Cannot set property 
‘string’ of null
at CCClass.start (project.js:1)
at CCClass.eval [as _invoke] (eval at o (cocos2d-js-min.js:1), :3:65)
at CCClass.invoke (cocos2d-js-min.js:1)
at CCClass.startPhase (cocos2d-js-min.js:1)
at e.mainLoop (cocos2d-js-min.js:1)
at t (cocos2d-js-min.js:1)

1 个答案:

答案 0 :(得分:0)

我使用具有完全相同脚本文件的空项目从头开始重建cocos创建器项目,问题就消失了。对不起,这不是问题的实际修复,但它解决了这个问题。