iOS假装进步

iOS项目Project 和 Targets配置详解

2019-04-26  本文已影响23人  freesan44

最近开始学习完整iOS项目的开发流程和思路,在实际的项目开发过程中,我们通常需要对项目代码和资料进行版本控制和管理,一般比较常用的SVN或者Github进行代码版本控制和项目管理。我们iOS项目的开发工具Xcode本来就集成了Github的代码控制,所以用GitHub会更方便一些,想具体了解Xcode和GitHub链接具体操作步骤的小伙伴可以戳这里:iOS学习——Xcode9上传项目到GitHub

创建完项目之后,我们再对一个项目进行代码开发之前,我们首先需要对iOS项目的开发环境进行搭建,我们的应用名称、项目名称、应用图标、启动图片等都是在这一步进行设置的,所以这一部分是整个项目开发的基础,在后续的开发过程中也经常会有些设置需要用到这里的步骤进行修改。但是目前网上查到的资料都非常简短和零散,所以今天我们希望对Xcode上iOS项目搭建各种细节都进行一个详尽的了解和学习。

一 Project 和 Targets区别

首先,iOS项目的开发环境搭建主要就是基于我们项目的Project 和 Targets进行展开的。那么,这两个东西到底是啥玩意呢?我们点击我们的项目名,就会出现下图所示的界面。从图片中可以看到,在项目导航面板的右侧面板上有蓝色和红色框所示的PROJECT和TARGETS两部分。

PROJECT和TARGETS到底是什么意思呢?官网的解释戳这里:Xcode Concept,看到英文就头疼的戳这里看译文:iOS:[译]Xcode Concepts--概念Target、Project、Build Setting、Workspace、Scheme。简单解释如下:

image image

二 project和target的属性设置

关于project和target的属性设置,如下图所示就是project和target的属性设置界面,左边是project的属性设置界面,右边是target的属性设置界面。相对而言project的比较简单,只有info和build setting两项,毕竟只是对项目资源进行简单的设置,而target的设置则比较复杂,有general、capabilities、resource tags、 info、build setting、build phases和build rules七项,因为target的每一项设置都直接决定了我们最终App的显示效果。下面我们就一一来学习和了解各个界面的设置有什么作用。

image image

2.1 project属性设置

project的属性设置有两块内容,info和build setting,但是project的build setting和target的build setting之间是相关的,target的build setting的一部分设置会继承project的build setting部分。所以,project的build setting部分内容就放在2.2target属性设置部分进行统一讲解,本小节就主要了解project的info属性设置部分,info属性的界面如下:


image

主要分为三部分:Deployment Target、Configurations和Localizations

image image

2.2 target属性设置

在前面我提到了,target的属性设置的内容比较多,总共有general、capabilities、resource tags、 info、build setting、build phases和build rules七项,接下来我们就一个一个来了解和学习。

2.2.1 target的general属性设置

target的general属性设置界面如下图所示,主要分为六个部分,下面我们队每一部分的设置的意思进行一个解读。

image image

2.2.1 target的info属性设置

target的info属性设置界面如下图所示,主要分为五个部分,下面我们队每一部分的设置的意思进行一个解读。

image

在这一部分,最重要的就是第一部分Custom iOS Target Properties自定义iOS目标属性,其他的四个部分基本上都不怎么用,大家不用管就好了。在target的info选项卡中的五项信息与我们项目资源目录下的info.plist文件中的内容是一致,并且修改其中一个另一个会自动修改。此外,我们在2.2.1中讲到的general选项卡中的一些设置也会对应到info.plist文件中,所以这些内容都是相通的,我们修改一处,其他的地方会同步次修改。info.plist中其实加载的信息会非常多,上面是创建项目之后自动生成的一些最基本的设置选项,每一项对应的意思如下解释:

除此之外,我们在开发过程可能还需要添加一些其他的信息,包括一些权限的添加,网络权限、定位权限、读写联系人权限等等,应用白名单的添加等都是在这里进行配置的。关于info.plist的具体信息和内容详情参见:Xcode中的Info.plist字段列表详解

另外四部分的简单解释:

2.2.3 target的capabilities属性设置

target的capabilities属性设置这一块主要是一些性能设置开关选择,例如推送通知、云存储、游戏中心、后台模式等,我们选择需要的开关进行打开或者关闭,这些相应的状态都会在info.plist中进行修改。所以,同样的,我们也可以在info.plist添加一些权限或性能开关之后,在target的capabilities中也会进行相应的修改的。具体的界面如下图所示:

image

2.2.4 target中的Resource Tag属性设置

target中的Resource Tag选项卡主要是为项目中的资源进行添加tag分类,方便我们对齐加载顺序和加载时机进行选择和设置,即实现按需加载,在需要的时候才加载资源,属性设置界面如下图所示。这样做的好处就是可以实现如下几种资源加载形式:

image

关于Resource Tag和按需加载的详情内容和步骤参见下面两篇文章:

2.2.5 target的build setting属性设置

target的build setting选项卡的是最主要的一部分编译选项设置,配置界面如下图所示,界面只是截了一部分,完整的build settings共有20项配置内容。从配置界面上看,每一项的配置都有四列,我们可以看到,从左至右的顺序分别是:Resolved列、带Target图标列、带Project图标列、iOS Default列,每一列所代表的意义如下。

image

target的build setting选项卡中的每一行具体所代表的编译详情参见:Xcode 编译选项详解

2.2.6 target的build phase属性设置

target的build phase选项卡的的主要功能是配置编译器在不同编译阶段的参数,包括编译所需的资源文件(包括代码、配置以及各种资源文件),配置界面如下图所示,主要包括四方面的内容。

image

2.2.7 target的build rules属性设置

关于target的build rules这一块平时没有接触过,也没有进行相关的设置,网上查询了半天的资料也没有找到(囧),如果大家有相关的资料,麻烦评论里留一下,我可以补充上来。

引用:https://www.cnblogs.com/mukekeheart/p/8315229.html

上一篇下一篇

猜你喜欢

热点阅读