使用XCode6.0.1将Cocos2d-x3.1工程打包ipa(支持iOS8)
2016-07-25 19:33
633 查看
据说iOS8需要使用XCode6.1打包,因为还未升级,暂时研究了几天,先把笔记整理下,以备以后使用方便,由于本人没有iphone,没有苹果企业证书,所有的东西都是东拼西凑的,所以打包成的ipa没有真机测试。如果失败,那只有再研究了。
因为需要升级之前3.1工程的项目支持iOS8,这两天暂时研究了一下ipa的打包(之前都是别人弄的,第一次自己打包,还是很费劲)所有,就有了这篇文章,如果可能,让大家少走弯路,把时间尽可能多得放在写代码上,不过还得吐槽一下:苹果搞这一套真是费事费力。
在第一步上面,将active scheme设置为iOS Device,只要选择它才可以打包
第四步是导入mobileprovision
第五步是导入证书,
经过上面2步,我们打开上图中的General,如下图所示
1、是包名
2、持有是企业证书的team
3、是mobileprovision的名称
4、该证书对应的包名
问题就在第4步,证书与包名不符,那么,怎么解决,如果这个企业证书是你的,那么点Fix Issue重新签名一个证书就好了,如果不是,那么只能重新创建工程了。
可能只需要修改最后面的就可以了,不过,我使用的时候,后面默认有个-iOS灰色的,所以需要修改Bundle identifier,没有遇到这个问题的可以不用该,如果不懂的参考这里。
修改完了包名和导入证书,完事具备,那就开始打包吧!
1、选择Edit scheme,并且后面的平台选择iOS Device
2、Build Configuration为Release
[plain] view
plain copy
Undefined symbols for architecture arm64:
"_WebPGetFeaturesInternal", referenced from:
WebPGetFeatures(unsigned char const*, unsigned long, WebPBitstreamFeatures*) in libcocos2dx iOS.a(CCImage-5287FE6734B2FA44.o)
"_WebPInitDecoderConfigInternal", referenced from:
WebPInitDecoderConfig(WebPDecoderConfig*) in libcocos2dx iOS.a(CCImage-5287FE6734B2FA44.o)
"_png_get_io_ptr", referenced from:
解决办法是打开工程目录,找到cocos2d/external,在此目录下搜索_arm64.a的文件,然后将搜索到的文件拖到XCode工程目录的FrameWorks中去,弹出的对话框选择Copy items if needed和Create groups两个选项;可参考这里
这个页面也可以通过XCode标题栏的Window->Organizer找到。
上图中,就可以看到我们的xxx.xcarchive文件了,可以选择Export导出ipa,这需要重新认证一下
cocoschina上的做法是:
1、右击生成的Archive文件,即“name”下面那些文件,选择Show in Finder
2、右击xxx.xcarchive文件,显示包内容,找到真正的xxx.app
3、将xxx.app拖到itunes中,此时就会在iTunes目录下生成ipa文件了
4、在iTunes中右击我们拖进去的xxx.app,在Finder中显示,找到了生成的ipa文件了就。
参考资料:
1)http://blog.csdn.net/yuxikuo_1/article/details/41278857
2)http://blog.csdn.net/justinjing0612/article/details/8758692
3)http://www.58player.com/blog-2527-123901.html
4)http://www.cocoachina.com/bbs/read.php?tid=234530
本人菜鸟一枚,以上方法可能并不正规,仅以总结学习过程记录。如有更好的方法,欢迎交流。
----------------2014年11月21日17:11---------------------
真机测试打包的ipa却是可以安装上,但是不知运行过程中是否还会有其他问题。待观察。
因为需要升级之前3.1工程的项目支持iOS8,这两天暂时研究了一下ipa的打包(之前都是别人弄的,第一次自己打包,还是很费劲)所有,就有了这篇文章,如果可能,让大家少走弯路,把时间尽可能多得放在写代码上,不过还得吐槽一下:苹果搞这一套真是费事费力。
1、问题1:3.1工程暂时不支持iOS8
因为3.1的时候iOS8还未发布,所以,3.1尚不支持iOS8,由于iOS8底层做了部分改动,可能在编译3.1工程到模拟器或真机上时会遇到这篇文章中的问题,可参考这篇文章解决。2、问题2:如何用企业证书打包成ipa
由于本人为注册苹果开发者,企业账号也是之前朋友给的,所以,这里打包ipa可能步骤不是很正规,且没有经过真机测试1)首先,获取证书和mobileprovision文件
证书需要双击,输入证书的密码,然后导入Mac下的工具,如下图:2)打开工程,导入证书
打击XCode左侧列表的工程名,显示下面的界面,我们选择TARGETS下的XXX iOS,找到Code Signing下的Code Signing Identity在第一步上面,将active scheme设置为iOS Device,只要选择它才可以打包
第四步是导入mobileprovision
第五步是导入证书,
经过上面2步,我们打开上图中的General,如下图所示
1、是包名
2、持有是企业证书的team
3、是mobileprovision的名称
4、该证书对应的包名
问题就在第4步,证书与包名不符,那么,怎么解决,如果这个企业证书是你的,那么点Fix Issue重新签名一个证书就好了,如果不是,那么只能重新创建工程了。
3)重新创建与证书对应的包名工程,重复1)和2)
再次打开General发现包名还是不对,因为XCode使用的包名是动态变量给赋值的,所以,我们直接修改就好了(不知道上一步直接修改包名好不好使,没试过,有兴趣的可以试试)。这个时候,需要打开上图Info对应下的页面,直接修改Bundle identifier内容即可可能只需要修改最后面的就可以了,不过,我使用的时候,后面默认有个-iOS灰色的,所以需要修改Bundle identifier,没有遇到这个问题的可以不用该,如果不懂的参考这里。
修改完了包名和导入证书,完事具备,那就开始打包吧!
4)修改Edit scheme为release
1、选择Edit scheme,并且后面的平台选择iOS Device
2、Build Configuration为Release
5)选择Product->Archive(必要的话,可以clean下工程)
接下来就是漫长的编译过程,在此过程中可能还会遇到不支持arm64解决方案,部分错误码如下:[plain] view
plain copy
Undefined symbols for architecture arm64:
"_WebPGetFeaturesInternal", referenced from:
WebPGetFeatures(unsigned char const*, unsigned long, WebPBitstreamFeatures*) in libcocos2dx iOS.a(CCImage-5287FE6734B2FA44.o)
"_WebPInitDecoderConfigInternal", referenced from:
WebPInitDecoderConfig(WebPDecoderConfig*) in libcocos2dx iOS.a(CCImage-5287FE6734B2FA44.o)
"_png_get_io_ptr", referenced from:
解决办法是打开工程目录,找到cocos2d/external,在此目录下搜索_arm64.a的文件,然后将搜索到的文件拖到XCode工程目录的FrameWorks中去,弹出的对话框选择Copy items if needed和Create groups两个选项;可参考这里
6)重新clean执行Archive
如果顺利的话,XCode已经帮我们生成了下面的xxx.xcarchive文件,还是那句话,如果你是企业证书持有者或者team成员,直接选择导出即可,如果不是,那只有另寻它路了。cocoschina上找到一个方法,我就是按照这个方法做的,所以,不确定此法是不是好用。这个页面也可以通过XCode标题栏的Window->Organizer找到。
上图中,就可以看到我们的xxx.xcarchive文件了,可以选择Export导出ipa,这需要重新认证一下
cocoschina上的做法是:
1、右击生成的Archive文件,即“name”下面那些文件,选择Show in Finder
2、右击xxx.xcarchive文件,显示包内容,找到真正的xxx.app
3、将xxx.app拖到itunes中,此时就会在iTunes目录下生成ipa文件了
4、在iTunes中右击我们拖进去的xxx.app,在Finder中显示,找到了生成的ipa文件了就。
3、总结
以上方法的可行性由于没有真机测试,暂时无法获得证实,不过步骤1-5都是总结网上的教程而成。参考资料:
1)http://blog.csdn.net/yuxikuo_1/article/details/41278857
2)http://blog.csdn.net/justinjing0612/article/details/8758692
3)http://www.58player.com/blog-2527-123901.html
4)http://www.cocoachina.com/bbs/read.php?tid=234530
本人菜鸟一枚,以上方法可能并不正规,仅以总结学习过程记录。如有更好的方法,欢迎交流。
----------------2014年11月21日17:11---------------------
真机测试打包的ipa却是可以安装上,但是不知运行过程中是否还会有其他问题。待观察。
相关文章推荐
- 关于cocos2dx虚拟摇杆的lua实现
- cocos2dx-lua制作游戏五维图
- Cocos2dx 截屏功能 3.2以上版本
- cocos2dx C++绑定lua
- Cocos2d-x优化中关于背景图片优化
- cocos2dx3.x物理引擎的碰撞检测
- cocos2d-android - 1.地图动态加载原理(世界地图的实现)
- Cocos Creator脚本开发(一)
- cocos2d-x中shader的使用
- cocos2d, Box2D
- cocos2d - JS 自定义事件(广播)
- cocos2d - JS Rect 相关
- Cocos Creator 视频学习笔记
- CocosCreator上手
- cocos原创
- cocosCreator的一些使用功能
- cocos2d - JS 点击事件
- cocos
- cocos2d - JS Sprite 镜像反转显示 ( Flipped )
- 基于Spine3.3的换装(纸娃娃,avatar)功能