据说iOS8需要使用XCode6.1打包,因为还未升级,暂时研究了几天,先把笔记整理下,以备以后使用方便,由于本人没有iphone,没有苹果企业证书,所有的东西都是东拼西凑的,所以打包成的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解决方案,部分错误码如下:
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
本人菜鸟一枚,以上方法可能并不正规,仅以总结学习过程记录。如有更好的方法,欢迎交流。