1、WorKSpace和project
当我们随意打开一个demo的.xcworkspace文件的时候
比如:
可以看到有这么几点需要注意的:workSpace、project、targets
可以大概给这几个概念一个层级的结构图:
我们可以显示下.xcworkspace的包内容,然后打开contents.xcworkspacedata这个文件,你可以看到这么一串代码,圈出来的部分就是能将workspace和project联系起来的关键
xcshareddata这个目录表示工程想要分享给别人知道的一些配置, xccuserdata这个目录刚好相反,自己使用,不然别人知道的配置 那么这两个是在xcode那里进行配置呐,其实是在scheme里进行配置的,请看如下两图:
勾选shared就会放到xcshareddata中去,不勾选就会放到xccuserdata中去
Target指定product,并包含从project或workworkspace的一组文件,一个Target只能产生一种产物
2、xcode内置Shell环境
可以在Target的Build Phases中添加脚本,换句话说就是Xcode就是一个终端, Xcode吧生成产物需要的参数如clang需要的参数,以定义shell环境变量的形式,定义在Xcode的shell环境中
- 环境变量是什么 终端上输入:cat ~/.bashrc 看到一些 export开头的环境变量 可以定义一下环境变量,然后再使用echo $""进行导出,就比如下图终端中操作:
2、一些需要记录指令
PATH 罗列出 shell 搜索 ⽤户 输⼊的执⾏命令所在的⽬录。
递归检测输⼊⽂件是否有变更 USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
3、Xcode环境配置
先在Xcode中创建一个空的xcworkspace和xcodeproj,如图:
然后把project添加到xcworkspace中去
接着去创建target,步骤如下:
接下来我们要创建我们的pod文件,那么我们需要创建framework,取名为Pods
可以看到现在工程像那么回事了,紧接着我们要将Pods添加到我们的xcworkspace中去
再给ZDHApp添加个frameworks
编译下,看下编译信息会发现这时会build一下这个Pods
好了重点来,我们这个时候就可以去创建我们自己的三方库了,比如我自己想创建一个AFNetworking的工程库
再将AFNetworking显示地依赖到Pods中去,如图操作
到目前来看,我们总结下,这个时候,ZDHApp-->隐式依赖Pods-->显示依赖AFNetWorking,这个时候,我们只有编译ZDHApp那么我们就可以触发Pods和AFNetWorking的编译了。那么我们编译下看下结果如何:
可以看到AFNetWorking、Pods、ZDHApp都进行了编译。