关于Xcode的buildSettings

在命令行打包的过程中,出现如下的错误:

“error: Specified application doesn’t exist or isn’t a bundle directory : ‘build/Products/Release-iphoneos/xxx.app” 

这样的error。

很明显这个原因是因为在项目目录下的build文件下找不到相应的.app文件。

但是当时还是有点摸不着头脑的。因为两边的代码一样,打包脚本都是一样的,而且因为用的是cocoapod做的第三方托管,所以相对来说工程文件的差异我当时觉得也是没有的。但是不得不承认问题是出在工程文件上。

之后用

xcodebuild -showBuildSettings

分别查看了下当前项目下的build setting的配置。

发现BUILD_DIR和 BUILD_ROOT
这两项在两台电脑是不一样的:

一个是在项目下
另一个是在 /Users/xxx/Library/Developer/Xcode/DerivedData下。

当时就郁闷了,不知道什么时候设置了这个路径。看了关于BuildSetting的设置之后发现,在xcode->preference->locations里面有个advanced的设置build location 里面的说明也很明了,选择自定义custom 里面的 “relative to workspace”就可以了。其中下面还可以自定义文件路径。具体如下图所示:

关于Xcode的buildSettings_第1张图片
![Uploading blog2_500373.jpeg . . .]
关于Xcode的buildSettings_第2张图片
blog2.jpeg
关于Xcode的buildSettings_第3张图片
blog3.jpeg
关于Xcode的buildSettings_第4张图片
blog4.jpeg

看了图片之后其实已经是一目了然了。当选择Relative to Derived Data的时候,打包的build文件会在xcode应用的derivedData下,而选择Relative to Workspace的时候build的文件是在项目目录下的build下。

而之前我所使用的打包脚本,所取的文件地址就是项目目录下的。看完之后才恍然大悟,但是我现在还是没有想起来当时是什么时候修改的这个参数。这个东西平常的时候也不会去关注。

那么既然说到了这个打包时候的build文件,就顺带介绍一下build文件夹下到底有哪些东西。

一般情况下build下面主要的是下面两个文件夹

Intermediates ————主要是编译中产生的一些文件

Products ————编译最终产品的文件(如果是debug下的编译 那么是Debug-xxx,相对的如果是release下的是Release-xxx)。

关于xcode的buildSetting的东西还有很多。大家可以进到项目文件下 用 xcodebuild -showBuildSettings自己去看看

你可能感兴趣的:(关于Xcode的buildSettings)