Xcode 配置文件xcconfig

TARGETS:

  • TARGETS:定義了生成的唯一的product,PROJECT會(huì)包含一個(gè)或者多個(gè)TARGETS,每一個(gè) TARGET將會(huì)產(chǎn)出一個(gè)product。TARGETS將構(gòu)建該 product 所需的文件和處理這些文件所需的指令集,并且將這些指令集整合進(jìn)編譯器中。
  • 構(gòu)建product的指令集在TARGETS 中的build settingsbuild phases中以表格的方式展示,你可以進(jìn)行查看和編輯。
  • A target inherits the project build settings, but you can override any of the project settings by specifying different settings at the target level. TARGET 中的 Build Settings 參數(shù)繼承自 PROJECT 的 Build Settings, 但是你可以在 TARGET 中修改任意 Build Settingss->Level 來(lái)重寫 PROJECT 的Build Settings。
  • TARGETS 依賴:如果一個(gè)TARGETS生產(chǎn)的product需要依賴另外一個(gè)TARGETS,可以在Build Phasess->Target Dependencies。

PROJECT:

  • PROJECT 是一個(gè)倉(cāng)庫(kù),里面包含了所有的代碼文件、資源文件和可以編譯一個(gè)或者多個(gè)product的信息。
  • PROJECT 包含了一個(gè)或者多個(gè)TARGETS。
  • PROJECT 為其擁有的所有 TARGETS 定義了默認(rèn)的 Build Settings。

Build Settings:

Build Settings中包含了 product 生成過(guò)程中所需的參數(shù)信息。
可以在 PROJECT->Build Settings->Level層和 TARGETS->Build Settings->Level層指定 Build Settings。
PROJECT 的 Build Settings 適用于 PROJECT 中的所有TARGETS,當(dāng)TARGETS重寫了Build Settings,編譯是會(huì)以TARGETS中的Build Settings為準(zhǔn)。

導(dǎo)出項(xiàng)目中所有的Build Settings:

$ cd 項(xiàng)目的根目錄
$ xcodebuild -list
終端執(zhí)行的命令結(jié)果.png
$ xcodebuild -scheme "runtime_app" -showBuildSettings >> mynew.xcconfig
mynew中含有Build Settings的所有參數(shù).png

刪除第一行的說(shuō)明.png

創(chuàng)建

image.png

xcconfig 使用

語(yǔ)法

  • 注釋:
  • 沒(méi)有多行注釋
  • 單行注釋以//開(kāi)頭。
  • 包含語(yǔ)句:
  • #include 開(kāi)頭,后面添加文件路徑。#include "Debug.xcconfig"
  • 多層路徑的#include:#include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig"
  • 變量:
  • 開(kāi)始以_、大寫字母或者小寫字母,可以含有:_、0~9a~z、A~Z。
  • 在兩個(gè)變量名或者變量與值之間使用=。
  • 變量分配
  • 如果想使用變量默認(rèn)值,就不用在此變量的=后面添加任何值。
  • 重寫
// Variable set in the project file
OTHER_LDFLAGS = -ObjC

// lib.xcconfig
OTHER_LDFLAGS = -framework Security

編譯時(shí),OTHER_LDFLAGS 會(huì)是-framework Security,-ObjC 會(huì)被-framework Security 重寫。

  • 繼承
// Variable set in the project file
OTHER_LDFLAGS = -ObjC

// lib.xcconfig
OTHER_LDFLAGS = $(inherited) -framework Security

編譯時(shí),OTHER_LDFLAGS 會(huì)是-ObjC -framework Security

思維擴(kuò)展

怎么通過(guò)腳本修改,build setting 中的配置數(shù)

參考資料

Xcode使用xcconfig文件配置環(huán)境
Using xcconfig files for your XCode Project
環(huán)境變量配置
The Unofficial Guide to xcconfig files

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容