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!


你可能感兴趣的:(ios,ShareSDK,平台移植)