在命令行打包的過程中挪哄,出現(xiàn)如下的錯誤:
“error: Specified application doesn’t exist or isn’t a bundle directory : ‘build/Products/Release-iphoneos/xxx.app”
這樣的error予弧。
很明顯這個原因是因為在項目目錄下的build文件下找不到相應(yīng)的.app文件不铆。
但是當(dāng)時還是有點摸不著頭腦的四敞。因為兩邊的代碼一樣,打包腳本都是一樣的桐玻,而且因為用的是cocoapod做的第三方托管迟螺,所以相對來說工程文件的差異我當(dāng)時覺得也是沒有的冲秽。但是不得不承認(rèn)問題是出在工程文件上。
之后用
xcodebuild -showBuildSettings
分別查看了下當(dāng)前項目下的build setting的配置矩父。
發(fā)現(xiàn)BUILD_DIR和 BUILD_ROOT
這兩項在兩臺電腦是不一樣的:
一個是在項目下
另一個是在 /Users/xxx/Library/Developer/Xcode/DerivedData下锉桑。
當(dāng)時就郁悶了,不知道什么時候設(shè)置了這個路徑浙垫∨俾兀看了關(guān)于BuildSetting的設(shè)置之后發(fā)現(xiàn),在xcode->preference->locations里面有個advanced的設(shè)置build location 里面的說明也很明了夹姥,選擇自定義custom 里面的 “relative to workspace”就可以了杉武。其中下面還可以自定義文件路徑。具體如下圖所示:
看了圖片之后其實已經(jīng)是一目了然了辙售。當(dāng)選擇Relative to Derived Data的時候轻抱,打包的build文件會在xcode應(yīng)用的derivedData下,而選擇Relative to Workspace的時候build的文件是在項目目錄下的build下旦部。
而之前我所使用的打包腳本祈搜,所取的文件地址就是項目目錄下的∈堪耍看完之后才恍然大悟容燕,但是我現(xiàn)在還是沒有想起來當(dāng)時是什么時候修改的這個參數(shù)。這個東西平常的時候也不會去關(guān)注婚度。
那么既然說到了這個打包時候的build文件蘸秘,就順帶介紹一下build文件夾下到底有哪些東西。
一般情況下build下面主要的是下面兩個文件夾
Intermediates ————主要是編譯中產(chǎn)生的一些文件
Products ————編譯最終產(chǎn)品的文件(如果是debug下的編譯 那么是Debug-xxx蝗茁,相對的如果是release下的是Release-xxx)醋虏。
關(guān)于xcode的buildSetting的東西還有很多。大家可以進(jìn)到項目文件下 用 xcodebuild -showBuildSettings自己去看看