Xcode5与Xcode6创建的项目区别.
1->Xcode5会帮用户自动导入框架,可以在Xcode5里看到一个frameworks文件夹,而在Xcode6里不会自动导入 ,只在用户用到的时候才自动导入.
2->Xcode5里的项目配置文件(plist)以工程名-info命名,而在Xcode6里直接叫做info.
3->Xcode5里有个pch文件,而在Xcode6里没有.
修改Bundle name对应的字符串(string),该字符串就是软件名称,一般不能超过12个字节,否则不能完全显示。
当我们上传新版本的软件时,新上传的软件版本号必须要比之前上传的软件版本号要大,否则Apple公司会禁止上传.
如何获取当前版本号?
在info配置文件中,所显示的key并非真正的key,要想看到真正的key,需要右键info.plist -->openas -->sourcecode
在Xcode6里,新建项目里默认没有pch文件,因为苹果在Xcode6开始不再推荐使用pch文件,但是由于需要向下兼容,在Xcode6里依然可以新建pch文件,方法如下.
pch里面的所有内容都是共享的,每个文件都会共有:
但是在使用之前需要提前编译, 因为不提前编译就不知道pch文件里面有哪些内容,因此需要做如下设置.
在pch文件中,可以自定义输出日志函数,这样的好处是,在debug阶段可以通过日志寻找出错误, 在发布阶段的时候这些输出日志就不能要了,因为NSLog()很耗资源,必须注释掉,而在一个大的工程里许多的文件都有大量的输出日志,一个个注释就很麻烦了, 此时我们可以自定义输出日志函数,在调试阶段输出日志,在发布阶段 ,把自定义输出日志函数定义为空.相当于什么都不做.(这个方法叫做宏定义)
但是项目怎么知道什么时候是调试阶段,什么时候是发布阶段呢?当项目需要发布的时候,需要做如下设置
这样自定义输入日志函数就为空了.
再来看看为什么要建立pch文件呢,因为pch文件里面的内容都是共享的,它共享的实质就是把pch文件的内容拷贝到项目里的每一个头文件(.h)中,然而有时候我们的项目可能不仅仅是用Objective-C编写的,有时候可能是C++,C等混编的,我们在pch文件中声明的一些头文件在C++和C文件里却不支持, 这样编译的时候肯定会报错的,所以我们需要判断一下,只在Objective-C文件中拷贝pch文件里的内容.用#ifdef__OBJC__, 正因为pch文件共享的实质是把pch文件里的内容,拷贝到各个头文件中,导致了我们的程序在编译的过程中消耗的时间大大增加,所以Apple公司在Xcode6里才开始不推荐使用pch文件.