ShareSDK向iOS平台移植时问题及解决办法

简介:

问题

    此前,我的开发环境是Windows7(64bits)+VMware 9.0+Mac OS 8.5+Xcode 4.5,结果在测试游戏中集成目前最新的ShareSDK(ShareSDK For iOS 2.10.3,而ShareSDK For COCOS2D-X也是目前最新的)时失败。出现如下图所示的编译错误:


wKiom1R3yrPB0QoPAASSNqW_xRw451.jpg

    而第二个错误如下图:

wKioL1R3y1-TdntyAAGKimsZt2k566.jpg

    显然,这两个错误都来自ShareSDK官方文件。注意:在基于Cocos2d-x框架开发的游戏中集成ShareSDK实现iOS版本时需要两个部分(其中也要加入上面的ShareSDK For iOS部分中的一部分)。具体细节,请详细研究cocos2d-x快速集成指南(URL是http://wiki.mob.com/cocos2d-x%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97/,我使用的目前不是cocos2d-x 3.x快速集成指南,此原文基于cocos2d-x 2.2.0版本,我当前使用的是cocos2d-x 2.2.3;但是,很快我也会升级到cocos2d-x 3.x版本的集成)。

分析

    此前,注意到上述错误都围绕Objective-C中的新内容Blocks(这里使用了oc与c++混合编程技术员)。在仔细地学习了这个新知识点后,我简单地认为可能ShareSDK官方在Blocks编程时出现了问题(因为搜索网络上的文章说,从Xcode 4.3开始其内置Gcc编译器已经支持Blocks了,而我使用的是Xcode 4.5+LLVM GCC 4.2)。于是,相当然地对上述两个文件作了修改:把blocks内普通形式的局部变量提取出来前面添加以__block。其实,现在看来我还没有根本理解blocks用法,上述表达没有问题。


   在两次请教ShareSDK官方负责朋友后,我基本定位错误原因在当前的GCC版本太低了(当然要围绕blocks)。于是,狠下心来下载了新的VMware Workstation 10.0.2+Mac OS 10.9+Xcode 6.1。重新编译此前工程时基本上是一路顺风走下来的。


补充


    在安装新环境后,感觉有了不少变化。其中最明显的一点是,原来情况下,我只要把Win7下的文件夹设置为与Mac OS 10.8共享后即可在Xcode 4.5中打开与操作游戏工程,但是现在不行了--出现著名的错误“clang failed with exit code 254”。无奈,参考网络文章(http://zhidao.baidu.com/link?url=5WyS4C5HmSck8SECJsFBmVZaAYU6pyjCUKBGRhkkr3_wiKG84pR8wkG4L5-KqgVzcRHiw-13EzF0lnedY9HBIE4j1UcNJtWozEVNGz4ablW)后,我只好把游戏工程使用Finder从原来共享位置复制到Mac OS内部的一个文件夹[文稿]下。再重新编译运行工程OK!


















本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1583779,如需转载请自行联系原作者




相关文章
|
2月前
|
移动开发 前端开发 数据安全/隐私保护
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
iOS发布证书.p12文件无密码解决办法及导出带密码的新.p12文件方法
45 0
|
1月前
|
缓存 编解码 测试技术
基于iOS平台的高效图片处理技术实践
【4月更文挑战第7天】 在移动应用开发领域,图片处理是一个常见且要求高性能的功能模块。特别是在iOS平台上,由于其封闭的生态系统和用户对流畅体验的高期待,开发者需采用高效的图片处理技术以满足应用的性能需求。本文将探讨一种针对iOS平台优化的图片处理流程,涉及图像加载、缓存策略、异步处理以及图形渲染等关键技术点,旨在为iOS应用提供一个低内存消耗、高效率的图片处理解决方案。
|
7月前
|
数据安全/隐私保护 iOS开发
使用HBuilder平台打包并上传iOS应用到App Store的完整教程
使用HBuilder平台打包并上传iOS应用到App Store的完整教程
|
9月前
|
监控 Android开发 iOS开发
盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容
参考代码:弹性扩缩容如何实现?System.out.println("扩容:增加直播平台实例"); currentCapacity++; } private void scaleDown() { System.out.println("缩容:减少直播平台实例");
盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容
|
2月前
|
API 开发工具 Android开发
iOS 和 Android 平台的开发有哪些主要区别?
iOS与Android开发区别:iOS用Objective-C/Swift,App Store唯一下载渠道;Android用Java/Kotlin,多商店发布(如Google Play、华为市场)。设计上,iOS简洁一致,Android灵活可定制。开发工具,iOS用Xcode,Android用Android Studio。硬件和系统多样性,iOS统一,Android复杂。权限管理、审核流程及API各有特点,开发者需依据目标平台特性进行选择。
39 3
|
22天前
|
存储 缓存 安全
基于iOS平台的高效图片缓存策略实现
【4月更文挑战第22天】 在移动应用开发中,图片资源的加载与缓存是影响用户体验的重要因素之一。尤其对于iOS平台,由于设备存储空间的限制以及用户对流畅性的高要求,设计一种合理的图片缓存策略显得尤为关键。本文将探讨在iOS环境下,如何通过使用先进的图片缓存技术,包括内存缓存、磁盘缓存以及网络请求的优化,来提高应用的性能和响应速度。我们将重点分析多级缓存机制的设计与实现,并对可能出现的问题及其解决方案进行讨论。
|
21天前
|
存储 缓存 编解码
实现iOS平台的高效图片缓存策略
【4月更文挑战第23天】在移动应用开发领域,尤其是图像处理密集型的iOS应用中,高效的图片缓存策略对于提升用户体验和节省系统资源至关重要。本文将探讨一种针对iOS平台设计的图片缓存方案,该方案通过结合内存缓存与磁盘缓存的多层次结构,旨在优化图片加载性能并降低内存占用。我们将深入分析其设计理念、核心组件以及在实际场景中的应用效果,同时对比其他常见缓存技术的优势与局限。
|
22天前
|
存储 缓存 算法
实现iOS平台的高效图片缓存策略
【4月更文挑战第22天】在移动应用开发中,图片资源的处理是影响用户体验的重要因素之一。特别是对于图像资源密集型的iOS应用,如何有效地缓存图片以减少内存占用和提升加载速度,是开发者们面临的关键挑战。本文将探讨一种针对iOS平台的图片缓存策略,该策略通过结合内存缓存与磁盘缓存的机制,并采用先进的图片解码和异步加载技术,旨在实现快速加载的同时,保持应用的内存效率。
|
26天前
|
存储 缓存 监控
实现iOS平台的高效图片缓存策略
【4月更文挑战第18天】在移动应用开发中,图片资源的加载与缓存是影响用户体验的重要因素之一。特别是对于iOS平台,合理设计图片缓存策略不仅能够提高应用的响应速度,还能降低内存消耗和网络流量。本文将探讨一种针对iOS环境的图片缓存方案,该方案通过多级缓存机制、内存管理和磁盘存储策略相结合,旨在提升图片加载效率并优化性能。
|
1月前
|
存储 缓存 iOS开发
实现iOS平台的高效图片缓存策略
【4月更文挑战第4天】在移动应用开发中,图片资源的加载与缓存是影响用户体验的关键因素之一。尤其对于iOS平台,由于设备存储和内存资源的限制,设计一个高效的图片缓存机制尤为重要。本文将深入探讨在iOS环境下,如何通过技术手段实现图片的高效加载与缓存,包括内存缓存、磁盘缓存以及网络层面的优化,旨在为用户提供流畅且稳定的图片浏览体验。