接入ios sdk的一些总结

    最近半个月,接了6个ios的sdk,其中苦难真的是难以言喻。以前虽然也用过xcode,但也就是简单用用,了解非常皮毛,而且这么久也忘得差不多了。这次接sdk,完全是新的语言,新的系统,新的ide,一切从零开始。

    首先应该是系统的熟悉,常用软件的安装,键盘和鼠标的使用也略微有些不同,这些都略过不提。看了一下oc基础教程,大致了解xcode的使用,由于有C++基础,oc的简单使用也很快掌握。这里提一个小发现,mac上的文件,像是做引用计数的,一个文件拷贝到另一个地方,只有一个存档,删除时提示移到废纸篓还是删除引用。

    xcode里面关于库的引用,首先库有这么几种,*.framework,*.a,*.dylib,还有*.bundle资源。要使用的话,首先要将其引入,方法有右键添加,拖拽,build phases设置,或者在库上面勾选引用的target。xcode中,多targets的设计,和target的引用使用勾选的方式,比较方便。说到这儿,不得不提一下,拖入工程时,提示的几个选项:

    第一个:要不要拷贝,不清楚依据的是什么,一般我是自己拷贝到我想要的目录,然后不选这个,更加便于管理。

    Create groups for any added folders:目录里面的所有文件都被引入,都会加入编译,代码就这样弄,外部添加或删除不影响工程里面的结构。
    Create folder references for any added folders:只引入目录,外部任何变化会反映到工程中这个group的变化。如果是资源引入,就这样,无需参加编译,只是运行中使用。

    讲讲错误提示,一般就这么几个:

    1.缺少库,将对应库加入就行。

    2.file is universal(x slices)……,对应的库没有对指令集进行优化,所以这个指令集无法完成优化,需要将这些库重新针对这些指令集重新生成。否则的话,就需要把这个指令集从target中移除。指令集就是architecture。

    3.ignoring xx, missing requried xxx,就是不支持这个指令集,会报奇妙的错误,移除即可。

    3.framework xx not found,缺少库,ios sdk版本过低,升级xcode。

    4.framework Metal not found。ios8的库,xcode5出提示,其实并没有用到这个库,是xcode的bug,网上有具体描述和解决办法,但是有些情况是怎么也无法解决的,只能升级xcode。我就升级了xcode,问题解决了。

    

    接下来是最头疼的问题,ipa的一系列认证、签名过程。编译的debug和release与code signing的developer和distribution是独立的,不相关,这点需要知道。我在网上看了很多关于数字签名、公钥、私钥、证书的帖子,基本上是弄懂的apple的这一系列流程,但是更加细节的问题和一些设置就不清楚了,这也是不开源的项目的弊端吧。

    我给出一篇帖子,讲得挺好:http://blog.csdn.net/phunxm/article/details/42685597。


    还有很多在工作中发现的细节,比如有时能直接将app拖入到itunes中安装,有时安装却不成功,这是provisioing profile 描述文件不匹配的问题,distribute可以是因为,它重新签名并打入对应描述文件。在code sign中设置了描述文件,问题得到解决。模拟器包是无签名和描述文件的,至于其他差异还不清楚,不过包会比较大。真机包扔到itunes中可以安装,个人认为与archive的一样的。ipad出现1x,2x的问题,将targeted device设置为iphone/ipad就行了。设备上无需描述文件,因为安装包已经自带了。


    最后,还是留了不少问题,以后有机会再来处理了:

    1.在xcode5中能编译过的,升级到了xcode6,arm64编译不过了,提示cocos2dlib和luabings相关的150个未引用的异常。

    2.编译设置里面,有个平行编译选项,发现就算不勾选也比一个一个target要快。

    3.看到有地方讲了entilement文件,我们项目里面没有用过,不清楚是什么个意思。

    4.schemes设置里面,关于build,archive,run,profile,test,就知道archive和run,build是设置,其他的都还不清楚。

本文出自 “山重水复” 博客,谢绝转载!

你可能感兴趣的:(ios,framework,ipa,Architecture)