工程化学习_Xcode工程管理

138 阅读2分钟

1、WorKSpace和project

当我们随意打开一个demo的.xcworkspace文件的时候 比如: image.png

image.png 可以看到有这么几点需要注意的:workSpace、project、targets 可以大概给这几个概念一个层级的结构图:

image.png 我们可以显示下.xcworkspace的包内容,然后打开contents.xcworkspacedata这个文件,你可以看到这么一串代码,圈出来的部分就是能将workspace和project联系起来的关键

image.png

xcshareddata这个目录表示工程想要分享给别人知道的一些配置, xccuserdata这个目录刚好相反,自己使用,不然别人知道的配置 那么这两个是在xcode那里进行配置呐,其实是在scheme里进行配置的,请看如下两图:

image.png

image.png 勾选shared就会放到xcshareddata中去,不勾选就会放到xccuserdata中去

Target指定product,并包含从project或workworkspace的一组文件,一个Target只能产生一种产物

2、xcode内置Shell环境

可以在Target的Build Phases中添加脚本,换句话说就是Xcode就是一个终端, Xcode吧生成产物需要的参数如clang需要的参数,以定义shell环境变量的形式,定义在Xcode的shell环境中

  1. 环境变量是什么 终端上输入:cat ~/.bashrc 看到一些 export开头的环境变量 可以定义一下环境变量,然后再使用echo $""进行导出,就比如下图终端中操作:

image.png

2、一些需要记录指令

image.png

PATH 罗列出 shell 搜索 ⽤户 输⼊的执⾏命令所在的⽬录。

递归检测输⼊⽂件是否有变更 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

3、Xcode环境配置

先在Xcode中创建一个空的xcworkspace和xcodeproj,如图: image.png 然后把project添加到xcworkspace中去 image.png 接着去创建target,步骤如下:

image.png

image.png 接下来我们要创建我们的pod文件,那么我们需要创建framework,取名为Pods image.png

image.png 可以看到现在工程像那么回事了,紧接着我们要将Pods添加到我们的xcworkspace中去 image.png 再给ZDHApp添加个frameworks

image.png 编译下,看下编译信息会发现这时会build一下这个Pods image.png

好了重点来,我们这个时候就可以去创建我们自己的三方库了,比如我自己想创建一个AFNetworking的工程库 image.png 再将AFNetworking显示地依赖到Pods中去,如图操作

image.png

image.png

到目前来看,我们总结下,这个时候,ZDHApp-->隐式依赖Pods-->显示依赖AFNetWorking,这个时候,我们只有编译ZDHApp那么我们就可以触发Pods和AFNetWorking的编译了。那么我们编译下看下结果如何:

image.png 可以看到AFNetWorking、Pods、ZDHApp都进行了编译。