cocos2dx-lua中post上传文件

貌似quick中本身就有个Network.lua可以上传文件,不过平常我们的需求一般会在上传文件的时候,还会post一些参数,我们稍作修改就可以达到效果

首先在uploadFile方法里,我们在addFormFile之后添加以下内容

调用的时候,在传入的data里面加入params键值即可

Cocos2dx关于ipv6-only的支持

大家都知道appstore从6.1号开始必须要求提交的app必须支持ipv6-only的网络环境,所以这个时候大家必须要做相应的测试和修改了。

这里,我主要参考了以下几篇文章,介绍的很详细

http://www.jianshu.com/p/69ed4489762c

http://www.jianshu.com/p/632d995749e1

http://www.jianshu.com/p/a6bab07c4062

当然如果你的应用使用的是cocos2d-x引擎的话,如果要支持ipv6-only环境,只需要更新curl和libwebsocket库即可。

v3-deps-94:

https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/releases/tag/v3-deps-94

v2-deps-7:

https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/releases/tag/v2-deps-6

对于Cocos2d-x v2.x的用户,同时还需要修改WebSocket.h和WebSocket.cpp这两个文件以适应新的libwebsocket库,具体参考如下:

https://github.com/cocos2d/cocos2d-x/pull/15666

Cocos2d-x 3.11.1以后的版本将自动支持IPv6,使用这些版本的可以不用做任何改动。

libpng error: CgBI: unhandled critical chunk on cocos2dx in xcode7.3

同样的代码,通过xcode7.2打包出来没有问题,但是通过xcode7.3打包出来就闪退

看了下日志:

libpng error: CgBI: unhandled critical chunk.

后来在cocos2dx的issues(https://github.com/cocos2d/cocos2d-x/issues/15199)里找到了解决方法,原来和xcode的编译选项有关

在xcode-build setting里将Remove Text Metadata From PNG Files 改为 NO.重新编译即可

Cocos2dx的音效播放数量设置问题

对于同一个游戏场景内,可能会出现多个音效同时播放,这个时候如果太多的话就会出现失音的现象,对于这个问题,我们可以修改默认的设置,提供同时播放音效的数量,

Android下修改org/cocos2dx/lib里的Cocos2dxSound.java文件,改大这个数值即可

private static final int MAX_SIMULTANEOUS_STREAMS_DEFAULT = 50;

Host architecture was not detected as supported by protobuf

cocos2dx 在arm64 平台下编译protobuf的时候会提示以下错误:

error Host architecture was not detected as supported by protobuf

可以修改platform_macros.h的头文件

#define GOOGLE_PROTOBUF_ARCH_X64 1

#define GOOGLE_PROTOBUF_ARCH_64_BIT 1

//#error Host architecture was not detected as supported by protobuf

重新编译就可以通过。

Cocos2d-x 3.3 ios编译错误:“duplicate symbol md5”

在xcode下编译cocos2d-x 3.3的时候提示以下错误:

duplicate symbol _md5_final

这是ios下面一个常见的错误,一般重复编译导致了

看了错误提示:是一个md5.0 和md5_dgst.0冲突了

md5.0 到时候在源文件里找到了一个md5.c

但是md5_dgst好像是openssl的源代码应该是被编译在了libcocos2d.a里面

既然冲突了,那么只能去掉了,于是把Md5.c 从工程里删除即可编译通过了。

fix cocos2dx label bug on ios8 64bit device

recently,the tester tell me a bug about our cocos2dx-game.

the detail is:

the  font label in some place didn’t show on ios8 64bit devices,but it’s okay on ios7

the first reason in my mind is the cclabelttf bug for i meet same issue on ios7.

so i debug my application on CCImage.mm ,and finally solved this problem.

maybe the float cause this bug. so you can fix it by these code

1、find the file  in path cocos2dx/platform/ios/CCImage.mm

2、add two lines code in this function _calculateStringSize

hope it can help you~

googlePlay提示openssl过期解决方法

googleplay新上架三天de游戏竟然收到了googleplay的邮件

Security Alert: You are using a highly vulnerable version of OpenSSL

Hello,
One or more of your apps is running an outdated version of OpenSSL, which has multiple security vulnerabilities. You should update OpenSSL as soon as possible. For more information about the most recent security vulnerability in OpenSSL, please see http://www.openssl.org/news/secadv_20140605.txt
Please note, while it’s unclear whether these specific issues affect your application, applications with vulnerabilities that expose users to risk of compromise may be considered “dangerous products” and subject to removal from Google Play.

Regards,

Google Play Team

 

收到此邮件,表名你发布的app中含有过期的openssl

我们的游戏是cocos2dx的引擎,所以可能跟cocos2dx本身使用的第三方库有关系,

如果没猜错,目前cocos2dx编译机上使用的openssl应该是1.0.0a版本,不符合要求,按照建议应该升级到刚发布1.0.0m版本

http://www.mwebb.me.uk/2014/06/you-are-using-highly-vulnerable-version.html

于是在论坛里找到了以下解决方法:

http://www.cocos2d-x.org/news/286

cocos2dx获取Iphone5分辨率错误问题

问题描述:

cocos2dx的项目在iphone5s出现2个黑边,其他设备上没有发现

后来调试发现,获取的getWinsize竟然是960×640,但是iphone5s的屏幕分辨率是960×1136

解决方法:

最后发现罪魁祸首是我删掉了ios工程下的Default-568h@2x.png图片

原来,苹果系统在监测到Default-568h@2x.png这个时,才回去判断屏幕到底时960还是1136。如果没有,将会默认时960的分辨率。

看来这Default.png还是要留着的。