Xcode是一个强大的专业开发工具,可以简单快速、而且以您熟悉的方式执行绝大多数常见的软件开发任务。相对于创建单一类型的应用程序所需要的能力而言,Xcode要强大得多,它的设计目的是使您可以创建任何想像得到的软件产品类型,从Cocoa及Carbon应用程序,到内核扩展及Spotlight导入器等各种开发任务,Xcode都能完成。Xcode独具特色的用户界面可以帮助您以各种不同的方式来漫游工具中的代码,并且使您可以访问工具箱下面的大量功能,包括GCC,javac,jikes,和GDB,这些功能都是制作软件产品需要的。它是一个由专业人员设计的、又由专业人员使用的工具。

由于能力出众,Xcode已经被Mac开发者社区广为采纳。而且随着苹果电脑向基于Intel的Macintosh迁移,转向Xcode变得比以往的任何时候更加重要。这是因为使用Xcode可以创建通用的二进制代码,这里所说的通用二进制代码是一种可以把PowerPC和Intel架构下的本地代码同时放到一个程序包的执行文件格式。事实上,对于还没有采用Xcode的开发人员,转向Xcode是将应用程序连编为通用二进制代码的第一个必要的步骤。

无论您是已经有一定Xcode经验的开发者,还是刚刚开始迁移的新用户,都需要对Xcode的用户界面及如何用Xcode组织软件工具有一些理解,这样才能真正高效地使用这个工具。这种理解可以大大加深您对隐藏在Xcode背后的哲学的认识,并帮助您更好地使用Xcode。

Xcode工具定义的信息

在Xcode中的所有活动,从文件的创建和编辑,到应用程序的连编和调试,都是围绕着工具来进行的。Xcode工具对创建软件产品需要用到的文件和资源进行组织,并使您可以对其进行访问。无论您创建的是什么样的产品,Xcode都会为您管理三种类型的信息:

源文件的引用,包含源代码、图像、本地化的字符串文件、数据模型、以及更多的信息。

目标,定义要制作的产品。目标将制作产品需要的文件和指令组织为一个可以执行的连编动作序列。

执行环境,您可以在这个环境中运行和测试软件产品。执行环境定义了运行产品时使用的程序。在很多情况下,这个程序就是产品的本身,但是不一定是这样。另外,执行环境还可以定义命令行参数和需要用到的环境变量。

Xcode工具中的三个元素按图1所示的方式关联在一起。

图1:Xcode如何使用源文件引用、目标、和执行环境。

当您执行连编和运行命令(Command-R)时,Xcode会对指定的目标进行处理,该目标则执行一系列对源代码进行操作的动作,并最终生成一个产品。然后,Xcode就用当前活动的执行环境运行该产品。

"但是请等一下" ,您可能会问:"为什么要建立一个执行环境呢?难道我们不能直接运行产品吗?" 这是个好问题。如果这仅仅是运行一个连编了的Cocoa应用程序的话,则定义一个执行环境就太过复杂了。然而,有很多产品,比如插件,要求定义一个宿主应用程序才能运行产品。执行环境也用于在调试器中运行产品。您甚至可以定义多个执行环境,以便以不同的方式运行同样的产品。

工具的组&文件列表

在Xcode的用户界面上,组成工具的源文件引用、目标、和执行环境都显示在组&文件(Groups & Files)列表中。您现在已经认识这些组件了,让我们接着看看各个组件在组&文件列表中的位置,如图2所示。下面我们看一下DotView实例程序。

如果您喜欢的话,可以自行进行操作。打开/Developer/Examples/AppKit/DotView/DotView.xcodeproj文件就可以了。

图2:组&文件列表将很多不同类型的信息封装在一个简洁的界面上

您可以看到,所有的源文件引用都在一个工具中,您可以展开工具中的每个产品,看看它们是如何组织在一起的,如图3所示。

图3:将一个产品展开可以显示其所有的连编组件,本例显示的是一个Cocoa应用程序。

同样地,您也可以展开一个目标,其内容是生成产品所需要的各个步骤,如图4所示。

图4:展开一个目标,显示生成产品需要的所有步骤。

工具漫游

组&文件列表中的源代码文件、工具、目标、和执行环境的下面是一组对工具内容进行漫游的工具。这些条目以智能组(Smart Groups)的形式存在,智能组的工作方式和Finder中的智能文件夹(Smart Folders)及iTunes中的智能播放列表(Smart Playlists)一样。这些工具如图5所示。

图5:Xcode的组&文件列表中含有几个工具,可以帮助您在工具中进行漫游。

在某些时候,Xcode的新用户会发现组&文件列表提供的功能太多了,特别是和他们在其它环境中用惯了的简单文件列表相比较的时候。然而,一旦您熟悉了这些项目的功能,工具面板就会变成一个强大的工具,帮助您访问Xcode提供的所有功能。

深入理解源文件引用

现在,您已经了解了Xcode工具的基本组件,是时候将我们的注意力关注在源文件引用上了。如果您双击一个源文件引用,Xcode就会弹出一个适合的编辑器,使您可以对该文件进行修改。然而,您可能可以从上面的图示中推断出来,一个源文件引用也意味着一套指令,在源文件被加入到某个目标的时候执行。举例来说,当您将一个Objective-C源代码文件(带有.m后缀)加入到工具、并和某个目标相关联的时候,该文件将会被加入到目标中的编译源代码(Compile Sources)步骤中,由GCC编译器进行处理。

您可以通过Xcode的工具界面来控制一个源文件引用是否为某个目标的一部分,如图6所示。

图6:Xcode界面,使您可以快速调整源文件引用和目标的关联关系。

您也可以通过源文件引用的Get Info(获取信息)窗口来调整这些设置,访问File > Get Info菜单项或者输入Command-I可以打开该窗口。该窗口如图7所示。

图7:文件引用的Info窗口,使您可以指定当前文件属于哪个目标,以及设置其它连编选项。

将之前图示的Objective-C源文件包含到活动的目标中会使其被GCC编译,并连接到最后的执行文件中。如果您不希望将它包含到最后的产品中,则简单地将它从生成产品的目标中删除就可以了。

目标是如何被处理的

现在,让我们把注意力转移到目标上,并关注目标是如何被处理的。如果您详细察看组&文件中的目标,就可以大致看出生成产品时发生了什么。图8更加详细地解释了生成DotView产品的过程。

图8:文件被加入到目标后进行的动作。

通过图9所示的连编结果(Build Results)窗口,您可以看到连编一个目标的整个工作过程。您可以访问Build > Build Results菜单项或输入Command-Shift-B来弹出连编结果窗口。

图9:连编结果窗口中按步骤显示的目标连编过程。

连编规则和设置

那么,Xcode怎么知道如何处理目标中的文件引用呢?这个问题很简单:Xcode根据与目标相关联的连编规则和设置来进行连编。缺省的规则和设置指定:任何使用GCC支持的语言写成的代码文件,都由GCC来编译。然而,如果您希望用先前的GCC版本来编译C的源代码文件,则可以通过目标的Info窗口来简单地进行设置,如图10所示。

图10:目标的连编设置和连编规则,可以在相应的Info窗口进行修改。

现在,您已经详细了解了源文件引用和目标,让我们看看Xcode工具的最后一部分:执行环境。

执行环境

我们之前已经说过,执行环境指的是产品如何在Xcode中运行。执行环境定义了Xcode应该运行什么程序,以及如何运行这个程序。您可以建立多个执行环境,以便在不同的条件下对产品进行测试。

简单地说,执行环境定义了下列内容:

使用什么执行文件,可能是目标连编之后生成的产品之一,或者系统中的其它执行文件。

要传递给执行文件的命令行参数。

启动执行文件之前需要在执行环境中设置的环境变量。

应该使用的调试器,以及如何在调试器中运行执行文件。

您可以在Info窗口中看到如何为执行文件定义这些项目,如图11所示。

图11:您可以通过执行文件的Info窗口考察产品运行的细节。

iOS Xcode苹果专业开发工具相关推荐

  1. Xamarin ios C#苹果应用开发第二讲配置环境和编写代码

    Xamarin ios C#苹果应用开发第二讲配置环境和编写代码 Xamarin ios C#苹果应用开发第二讲配置环境和编写代码 观看地址://v.youku.com/v_show/id_XNzE1 ...

  2. ios系统和android开发工具,开发者对比安卓和iOS系统

    安卓和iOS哪个好?今天就从开发者的角度来谈谈安卓和iOS有哪些区别,以及它们各自的优缺点. 一.开发环境对比 首先在开发环境的配置上,二者就表现出了极大的差异. 1.配置过程 iOS的开发环境非常完 ...

  3. Windows下安装苹果iPhone开发环境xcode图文教程

    因为只有在mac系统上才能安装xcode哦~所以我们只有在Windows下先安装虚拟机,然后在虚拟机上安装mac系统. Xcode for Mac(苹果软件开发工具)  官方最新版 http://ww ...

  4. 用友BIP 安装配置专业脚手架开发工具(图文)

    对于一些专业的开发,还是需要专业开发工具的,需要自行先上网下载Idea的IntelliJ,这个软件强大到我在刚接触java的时候就用过它,这么多年她是越来越漂亮了哈哈. 安装完之后,现在的版本需要先激 ...

  5. 开发APP的java工具_app傻瓜式开发工具_app开发工具

    我想要制作一个app软件需要什么工具 android app开发工具:eclipse or Android Studio ios app开发工具:Xcode eclipse : Eclipse 是一个 ...

  6. IOS开发系列之阿堂教程:构建开发IOS应用的虚拟机开发环境实践

    说到IOS的开发,不能不说 到一个问题,如何配置和构建一个IOS的开发环境!我下面要说的主要是针对没有MAC Apple机的网友,如何安装和配置一个属于自己的IOS开发环境.如果已经有MAC 苹果机的 ...

  7. 选择游戏开发工具的原则

    本文首发于微信公众号: 小蚂蚁教你做游戏.欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识. 嗨!大家好,我是小蚂蚁. 昨天为了给我的精致1010游戏方便的增加更多关卡,我用 Unit ...

  8. 专业的开发工具:Xcode 13 for Mac

    xcode13正式版已经更新,这是Mac平台上一款专业的开发工具,Xcode 13 for Mac添加了强大的新团队开发功能,非常适合与Xcode云以及GitHub.Bitbucket和GitLab协 ...

  9. IOS开发工具介绍之Xcode开发工具使用

    IT在线教育专家--麦子学院特约授课老师柯博文<iOS开发入门实战>向我们详细的讲述了ios开发实战过程.Xcode开发工具是ios开发的流程使用范围最广的工具. 在所有课程开始之前,柯博 ...

最新文章

  1. 西工大开源拥挤人群数据集生成工具,大幅提升算法精度 | CVPR 2019
  2. 如何识别能把桥压塌的大车?快看!能救命!
  3. 双作用叶片泵图形符号_液压气动图形符号及识别
  4. 基于数据挖掘的旅游推荐APP(三):热门景点模块
  5. linux 删除大量文件
  6. 直流电动机matlab仿真实验,直流电动机的MATLAB仿真.doc
  7. python序列类型唯一的映射类型_python2.x学习笔记(8)-映射和集合类型
  8. c++如何将两个if函数合并_设计一个 add 函数
  9. 7步让你get首个数据科学实习
  10. 细说 Vue.js 3.2 关于响应式部分的优化
  11. SilverLight MD5加密
  12. Lua开发工作笔记0004---交互式编程与脚本式编程及注释的写法
  13. 电脑音箱有电流声_音箱造成电流声的原因
  14. JZ50第一个只出现一次的字符JZ50第一个只出现一次的字符JZ25合并两个排序的链表思路
  15. DivCss 布局应用案例实践总结
  16. 最新AZ自动发卡网源码
  17. devise安装使用指南
  18. 罗技无线网卡linux,Linux Kernel 5.2将改进对Logitech无线设备的支持
  19. Android应用开发期末复习题
  20. DDD话语评价之二:“值对象”是DDD的创新吗(上)

热门文章

  1. 关于计算点到线段的距离
  2. 如何理解either or
  3. 计算机控制等学科,控制理论的学科定位(及其他)
  4. Linux Skype 4.3 下载地址
  5. IDEA使用Git上log解析
  6. XTU OJ 1087
  7. 批量提取多个excel文件指定单元格内容,并汇总到一个新excel文件里
  8. python 列表 笛卡尔积_python-列表字典的笛卡尔积
  9. Android 开发之EditText属性详解
  10. 超甜来袭!治愈系数字藏品限时免费,速抢!