Xcode 的 Build Settings 選中 Levels 時不同列的含義
Build Settings 顧名思議,用於表示 Xcode 工程的編譯配置項。
我們在 Xcode 工程中,開啟一個 Project 或者 Target 的 Build Settings 時,會得到如下圖所示,此時在頂部分欄中一般預設選中 All
和 Combined
。
其中,圖中左側紅框內的 Basic
, Customized
, All
分別表示 基礎配置項
, 已經自定義修改過的配置項
和 全部配置項
。
而圖中右側的紅框內,有 Combined
和 Levels
兩項,我們最熟悉的是在 Combined
模式下,直接修改下方各配置項的值。
當我們選中 Levels
模式時,會得到如下圖所示:
我們發現,此時每一個配置項都對應了 4 列值(左側選中 Project 時只有 3 列;選中 Target 時有 4 列),分別為 Resolved
, TargetName
, ProjectName
, iOS Default
。它們的含義如下:
-
iOS Default
列:Xcode 工程各編譯配置項的預設值, 無法修改 ; -
ProjectName
列:用於配置 Project 的編譯配置項,它會影響其下的所有 Targets 的 Build Settings,優先順序高於iOS Default
列, 可以手動修改 ; -
TargetName
列:用於配置某一 Target 的編譯配置項,優先順序高於ProjectName
列, 可以手動修改 ; -
Resolved
列:根據前面 3 列的優先順序關係,得到最終的值。 它不可手動修改 ,優先取TargetName
列的值,如果該列沒設定,則取ProjectName
列的值,最後才取iOS Default
列的預設值(Resolved
列的各項最終取的那一列的值,會被淺綠色框選高亮顯示)。
通過對比這幾列資料,你可以很清晰地看出我們都改了哪些預設配置,都是在哪改動的。其實我們可以發現, Resolved
列各項的值,就是選中 Combined
模式下,各配置項的值。
PS:在 Pods 工程中各 Targets 的 Build Settings 可能會有 5 列值,多了一項 Config.File
,它的優先順序位於 Target 和 Project 之間。
以上,希望對大家在 Xcode 中設定 Build Settings 時有所幫助。