日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS使用 xcconfig配置文件的若干坑

發(fā)布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS使用 xcconfig配置文件的若干坑 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有一些文章介紹.xconfig文件的使用,如這篇,但是經(jīng)過親自實(shí)踐,發(fā)現(xiàn)還是有一些坑,這里記錄下。

構(gòu)建新的configuration

這一步在“project-info-configuration”位置進(jìn)行,點(diǎn)擊“+”構(gòu)建“-”消除,沒什么問題,這個很簡單也不會出錯。

只是原來使用xcodebuild進(jìn)行自動打包時的-configuration指的是就是這里啊。每個項(xiàng)目默認(rèn)就有的Debug和Release配置。

這個Configuration是對于同一個項(xiàng)目的配置的一個完整的最高的總結(jié)了。

使用.xcconfig文件

新建這個文件很簡單,xcode自帶了這個模板。然后是在Configuration里配置,比如在debug時使用First.xcconfig在release時使用Second.xcconfig,如圖:

這一步也簡單。但是我開始使用的時候,思維就走錯方向了:

根據(jù)各種文章的指示,配置文件(.xcconfig)里面的內(nèi)容會覆蓋當(dāng)前的Build Settings里面的東西,所以我以為是我在配置文件里面寫了一個配置,那么Build Settings里面的東西會跟著變。

比如我現(xiàn)在是Debug環(huán)境,然后對應(yīng)的就是First.xcconfig,我在它里面寫入:

//:configuration = Debug OTHER_LDFLAGS = -Objcxxx//:configuration = Release OTHER_LDFLAGS = -Objcxxx//:completeSettings = some OTHER_LDFLAGS 復(fù)制代碼

其實(shí)就是Other Linker flags的配置,可是外面Build Settings里的東西并沒有變。

我就暈了,這到底怎么回事。

這里有兩個坑

  • 項(xiàng)目的Build Settings里直接寫的內(nèi)容是會優(yōu)先顯示的,就是說Xcode有一個默認(rèn)的配置文件(yourAppName.xcodeproj/project.pbxproj),如果你直接在Build Settings里編輯,是寫到它里面去,比如只是修改了other linker flag,再看github的修改:
  • 這個文件里的配置會優(yōu)先在Configuration里指定的.xcconfig文件里的配置,那要怎么使用.xcconfig文件里的配置?刪掉Build Settings里的配置就好了。Command+delete搞定。

  • 因?yàn)?xcconfig配置文件很難寫,主要是各種配置名你記不住,所以就到實(shí)際的Build Settings里面去拷貝,就在對應(yīng)的配置項(xiàng)Command+C就有了,所以內(nèi)容就變成了上面那樣,我以為3句話是在不同環(huán)境下起作用的,是互不干擾的,其實(shí)是OTHER_LDFLAGS設(shè)了3遍,左后一次生效,最后是啥?空的啊,所以即使刪除了Build Settings里的內(nèi)容也不出現(xiàn),我還以為.xcconfig文件沒起作用!

    所以改成:OTHER_LDFLAGS = -Objcxxx然后就有了。

  • 環(huán)境切換配置也跟著切換?

    首先使用配置文件的作用就是,在環(huán)境切換后,配置可以跟著一整套的切換,.xcconfig就相當(dāng)于一個把相關(guān)的配置打包了。

    這里就有了另一個坑,或者說理解失誤:

    我以為是你在Build Configuration里選擇什么,那么Build Settings里的內(nèi)容會跟著改變。

    實(shí)際上Build Settings還是原來那樣,改變的是每一項(xiàng)里面的內(nèi)容,比如First.xcconfig配置里寫入OTHER_LDFLAGS = -Objc_first,而Second.xcconfig里寫入OTHER_LDFLAGS = -Objc_second,在外面看到的是這樣的:

    每一項(xiàng)配置里面會再分成Debug、Release等不同的Configuration,而不是Build Settings整體切換了。

    或者說這是一個結(jié)構(gòu)上的問題,讓新接觸者會改不清楚Xcode到底是什么做到不同情況使用不同配置的。

    整個配置的結(jié)構(gòu)

    實(shí)際結(jié)構(gòu)是這樣:

    • 最上層就是Project-info-Configuration里的配置了
    • 然后每個配置里可以有不同配置文件(.xcconfig),每個target一個配置文件
    • 然后是每個配置文件里面有許多的配置項(xiàng)

    但是在Build Settings的顯示里,這個結(jié)構(gòu)是倒過來的:

    • 配置文件
    • 配置項(xiàng)
    • 不同Configuration

    另外,關(guān)于宏

    在整個Build Settings里,可以在代碼里直接使用的,Preprocess Mcros就是其中之一。

    在這里定義不同的宏,就可以在代碼里由此做不同處理,比如默認(rèn)的DEBUG宏就經(jīng)常用來做條件編譯。

    在Build Settings里可以$(xxx)來引用其他配置里的東西,那么也就可以在這里定義宏并且跟隨其他配置而改變。

    總結(jié)

    以上是生活随笔為你收集整理的iOS使用 xcconfig配置文件的若干坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 影音先锋中文字幕在线 | 人人干人人干 | 亚洲一区二区三区麻豆 | 欧美在线一级 | 美国性生活大片 | 丁香六月激情 | 粉嫩aⅴ一区二区三区四区五区 | 成人免费视频一区二区三区 | 免费观看一级一片 | 色就色综合 | 嫩草视频在线看 | 色综合久久中文字幕无码 | 91福利在线免费观看 | 欧美 日韩 国产 一区二区三区 | 在线免费黄 | 亚洲综合一区中 | 91亚洲国产成人久久精品麻豆 | 波多野结衣视频免费在线观看 | 中文字幕在线视频一区 | 久久婷婷av | 韩国女主播裸体摇奶 | 国产网站在线免费观看 | 91精品久久久久久久久久 | 色a视频| 日批av| www麻豆| 国产jizz18女人高潮 | 男人的天堂你懂的 | 久久y| 国产又黄又爽视频 | 涩涩天堂| 精品视频在线一区 | 久久久久久久女国产乱让韩 | 欧美播放器| 91香蕉嫩草 | 欧美巨乳美女 | www久久久久久| 人人天天夜夜 | 亚洲一区二区免费视频 | 日韩 国产 一区 | 日韩中文字幕在线 | av手机免费看 | 午夜日韩在线 | 波多野结衣一区二区在线 | 饥渴丰满的少妇喷潮 | 99视频国产精品 | 日韩一级片免费在线观看 | av在线不卡免费看 | www.久久成人 | 亚洲国产精品视频在线 | 黄色网日本 | 国产精品入口麻豆九色 | 欧美一区不卡 | 骚虎av在线| 午夜av电影在线观看 | 国产欧美激情 | 手机成人av | 麻豆伊甸园 | 日韩精品卡通动漫网站 | 99精品国产免费 | 国产网站免费在线观看 | 精产国品一区二区三区 | 欧美在线视频免费 | 在线免费观看av网站 | 亚洲jlzzjizz少妇 | 国产美女毛片 | 久久免费黄色网址 | 国产又粗又猛又爽 | 日本三级免费看 | 亚洲性猛交富婆 | 夜夜爱夜夜操 | 国产精品三级在线 | 欧美综合自拍亚洲综合图片区 | 北岛玲一区二区 | 看一级黄色大片 | 日韩激情片 | 免费看黄在线看 | 国产乱了高清露脸对白 | 我要操av | 国产乱人乱精一区二视频国产精品 | 手机看片午夜 | 香蕉性视频 | 欧美日韩一区二区三区 | 色图社区| 中国丰满老太hd | 精品在线一区二区三区 | 国产欧美一区二区 | 午夜影视在线观看 | 欧美日韩一区二区三区在线 | 噜噜色av| 日本韩国免费观看 | 日韩黄色av网站 | 欧美做受xxxxxⅹ性视频 | 貂蝉被到爽流白浆在线观看 | 久精品视频| 亚洲AV无码国产精品 | 欧美精品99久久久 | 国产免费999 | 无码国产69精品久久久久同性 |