升级IOS8游戏上传自定义头像功能失效的问题
为了支持arm64,之前已经折腾了很久,昨晚打包准备提交苹果审核时,测试那边的同事反馈说游戏上传自定义头像功能不可用了。
游戏上传自定义功能的简介:卡牌游戏最初是《比武招亲》中有一个充VIP之后就可使用了上传自定义功能的特权,我们的游戏就“复制”了该功能。
具体实现就是点击游戏内换自定义头像的按钮后,调用不同平台相应的方法,获取用户选择的图片数据,然后将图片裁剪再传给后台保存至特定的目录下。
测试设备是ipad air2,系统版本IOS 8.0.1,点击游戏内的按钮直接无响应了。
第一个问题:点击后无响应
原因是 UIActionSheet 的showInView方法的参数上,之前设置的是self.view.window (NSInvalidArgumentException, reason:Sheet can not be presented because the view is not in a window)
第二个问题:点击选择相册按钮后无下文了
这里也有二个问题,一是显示的按钮只有一个“选择相册”

原因是UIActionSheet在ios8中已经被弃用了(点击查看详情>>),使用UIAlertController进行替代,这里有两篇文件介绍它:
跟踪代码后,发现它在调用UIPopoverController的presentPopoverFromRect方法后,直接就调用了popoverControllerDidDismissPopover方法
通过搜索“ios8 ipad UIPopoverController ”找到了这个链接(UIPopoverController not presenting in iPad iOS 8),一看到stackoverflow.com就感觉到有救了,今天不用再通宵了…
从元旦放假回来上班第一天开始,算今天已经连续加了7天班,遇到的几个问题都特别陌生,无力感很重也很沮丧,没什么头绪,感觉无从下手,曾经有个问题二三天的时间我看着那个崩溃却找不到动手的地方。对那个领域或者那个东西太过陌生,而且google正好被墙掉了访问起来断断续续的。现在问题被解决了,回想起来,运气成分真的很大。因为很多问题我跟测试他们讲,再让我解那个bug,我不会想到那个地方上去。
最近一次更新功能之后,IOS设备上的重启按钮,点击后游戏直接闪退了,概率比较高。断点之后,望着屏幕上crash的地方百思不得其解,底层是cocos2d-x 2.x版本,上层是用C++包裹的一层,然后上面又是Lua包了一层,查堆栈也实在找不到哪个地方调用了特殊的什么东西,重启那块逻辑代码又没动过,真是郁闷。前一晚上搞到大半夜放弃了,回家睡觉都在做梦,第二早上都查了一上午,还是没找到。中午吃过饭,再看那个crash的地方 cocos2d-x中的CCDictionary.cpp objectForKey方法的断点挂掉了

断言的这行代码直接挂掉了,再往上一个调用,来源于CCINode.cpp,网上又搜索了一下,我们使用的代码是将网上的代码修改了一下,也没发现问题,貌似无解了。当我准备放弃的时候,突然却想到新功能中主界面有一个功能上面有调用swf进行特效的显示,然后我看了一下它被隐藏了。那我想既然隐藏了,那就不要让它play嘛,结果试了一下,嗯,不崩溃了!好神奇,然后代码又调回去,试了一上,好了!居然好了! 日志显示其实游戏已经启动了,都开始请求CDN上的资源了,只是界面还停留在重启那个界面,但崩溃的点却挂在了CCDictionary.cpp中。
换成IOS8.1的SDK后,上传头像功能不可用了,搜索了好久发现都跟自己的问题对不上,当输入特定的关键字时出来的第一条就是自己想要的,结果几分钟就把问题解决了,但找相应答案之前却已经花了将近4个小时…
从JavaScript网页开发,到ActionScript网页游戏开发,再到C++的手游开发,一路走来,感觉真是摸着石头在过河,移动平台的版本升级之快,让我等开发者有切肤之痛。我真希望,有一天我能主导基于HTML5的游戏框架并应用于型项目中,我期望这一天,风水轮流转嘛。端游 –> 页游 –> 手游,今日之手游开发模式犹如昨日之端游。
作为手游开发人员,要学习和掌握的知识的比较广:C++底子要用吧,Lua至少能用的很顺手吧,Android要比较熟悉吧(不然怎么接SDK,修一些bug呢),IOS也是一样,不然就像我经常面临的问题一样,各平台上的键盘、上传头像等问题就像一座大山挡在了你的面前。没有比较扎实的基本功,很难应付的了一个接一个的问题,这还不谈游戏具体某些功能实现上的问题。路漫漫其修远兮,吾将上下而求索!
升级IOS8游戏上传自定义头像功能失效的问题的更多相关文章
- PHP中使用Session配合Javascript实现文件上传进度条功能
Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP .4以前,实现这样的进度条并不容易 ...
- 斗牛app上架应用宝、牛牛手机游戏推广、百人牛牛app应用开发、棋牌游戏上传、手游APP优化
联系QQ:305-710439斗牛app上架应用宝.牛牛手机游戏推广.百人牛牛app应用开发.棋牌游戏上传.手游APP优化 iOS开发iPhone/iPad平台安卓手机软件开发机型覆盖范围 超过113 ...
- iOS开发中文件的上传和下载功能的基本实现-备用
感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传 ...
- WordPress 后台上传自定义网站Logo
需求: 众所周知一般网站的logo都是固定的所以我在做网站时也是使用的静态logo文件,但最近用wp给一个客户做的网站时,因为网站现在的logo可能会需要重新设计,所以客户提出了需要在后台可以自己修改 ...
- Libcurl最初的实现tfp上传和下载功能
研究报告指出的目标是使用libcurl实现ftp文件上传和下载功能 一.Libcurlde简要 Libcurl的而且易于使用的利用url进行文件传输的库. , libcurl当前支持DICT, FIL ...
- Thinkphp5+PHPExcel实现批量上传表格数据功能
http://www.jb51.net/article/129262.htm 1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHP ...
- 使用SpringMVC框架实现文件上传和下载功能
使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!—配置文件上传解释器 --> <mvc:annotation-driven>&l ...
- php 文件上传类,功能相当齐全,留作开发中备用吧。
收藏一个经典好用的php 文件上传类,功能相当齐全,留作开发中备用吧. 好东西,大家都喜欢,才是真的好,哈哈!!! <?php /** * 文件上传类 */ class upload ...
- EBS开发附件上传和下载功能(转)
原文地址: EBS开发附件上传和下载功能 上传 Oracle ERP二次开发中使用的方式有两种,一是通过标准功能,在系统管理员中定义即可,不用写代码,就可以使几乎任何Form具有附件功能,具体参考系统 ...
随机推荐
- Hitcon 2016 Pwn赛题学习
PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的C ...
- 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)——转载
原文链接:http://blog.chinaunix.net/uid-22548820-id-3181798.html fork ( /directory/script.sh) :如果shell中包含 ...
- Qt_mingw搭建opencv开发环境
Qt在windows下共有2个版本:mingw和msvc.其中mingw使用gcc编译器,msvc使用微软的VC编译器.针对不同版本Qt,使用Opencv的方式也不同. 区别 msvc, 可以使用op ...
- 【BZOJ】4560: [JLoi2016]字符串覆盖
题解 先用kmp求出来一个ed[i][j]表示在母串的第i位是第j个子串的结尾 考虑状压一个二进制位表示这个子串覆盖过没有 对于最大值,记一个dp[S][i]表示子串的使用状况为S,当前为母串的第i位 ...
- 喊山 BFS
一个山头呼喊的声音可以被临近的山头同时听到.题目假设每个山头最多有两个能听到它的临近山头.给定任意一个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方. 输入格式: 输入第一行给出3个正整数 ...
- 搭建基于MyEclipse的Hadoop开发环境
不多说,直接上干货! 前面我们已经搭建了一个伪分布模式的Hadoop运行环境.请移步, hadoop-2.2.0.tar.gz的伪分布集群环境搭建(单节点) 我们绝大多数都习惯在Eclipse或MyE ...
- Redis PK Memcached
没有必要过多的关心性能,因为二者的性能都已经足够高了.由于Redis只使用单核,而Memcached可以使用多核,所以在比较上,平均每一 个核上Redis在存储小数据时比Memcached性能更高.而 ...
- qq sid qq sid 是什么 qq sid 怎么用
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha ======= qq sid qq sid 是什么 qq sid 怎么用 ===== ...
- Markdown,你只需要掌握这几个
目录 题记 正文 1. 常用标记 这是一级标题 这是二级标题 这是三级标题 这是高阶标题(效果和一级标题一样 ) 这是次阶标题(效果和二级标题一样) 2. 次常用标记 3. 不常用标记 4. 专项使用 ...
- CentOS以守护进程的方式启动程序的另类用法daemon
在Linux下如果以守护进程的方式启动程序,也就是后台运行,有几种方式,比如后面带&&,nuhop,那么在CentOS下可以使用daemon这个函数来启动,比如: daemon --p ...