在了解build Settings之前先了解下預(yù)備知識(shí),便于更好的學(xué)習(xí)build Settings
一個(gè)程序的生成可以分解為四個(gè)步驟:
預(yù)處理:解析宏定義,進(jìn)行宏替換等治力;
編譯:把預(yù)處理完的文件進(jìn)行一系列詞法、語法、語義分析屈溉,并且優(yōu)化后生成相應(yīng)的匯編代碼;
匯編:匯編器將匯編代碼生成機(jī)器指令抬探,輸出目標(biāo)文件(Object File子巾,所謂的 .o 文件);
鏈接:將目標(biāo)文件組合生成可執(zhí)行文件小压。
其中符號(hào)就是在鏈接過程中使用到的线梗。
鏈接(linking) 是將包含了各種代碼和數(shù)據(jù)片段的目標(biāo)文件收集并組合成為一個(gè)單一文件的過程。鏈接過程中要把多個(gè)不同的目標(biāo)文件之間相互“粘”到一起組合成一個(gè)可執(zhí)行文件怠益,為了使不同目標(biāo)文件之間能夠相互粘合仪搔,這些目標(biāo)文件之間必須有固定的規(guī)則。這些規(guī)則就是目標(biāo)文件中的符號(hào)表信息蜻牢。
在鏈接中烤咧,目標(biāo)文件之間的拼合實(shí)際是目標(biāo)文件之間對(duì)函數(shù)和變量的地址的引用偏陪。比如目標(biāo)文件 B 要用到目標(biāo)文件 A 中的函數(shù) “foo”,那么就成目標(biāo)文件 A 定義了函數(shù) “foo”煮嫌,稱目標(biāo)文件 B 引用了目標(biāo)文件 A 中的函數(shù) “foo”笛谦。定義和引用這兩個(gè)概念同樣適用于變量。每個(gè)函數(shù)或變量都有自己獨(dú)特的名字昌阿,這樣才能避免鏈接過程中不同變量和函數(shù)之間的混淆饥脑。我們將函數(shù)和變量統(tǒng)稱為符號(hào)(Symbol),函數(shù)名或變量名就是符號(hào)名(Symbol Name)懦冰。鏈接的過程好啰,也就是符號(hào)重定位。
源文件先是被編譯成一個(gè)個(gè)目標(biāo)文件, 再由鏈接器把這些目標(biāo)文件組合成一個(gè)可執(zhí)行文件或庫儿奶,鏈接的過程同衣,其核心工作是解決模塊間各種符號(hào)(變量古今,函數(shù))相互引用的問題,對(duì)符號(hào)的引用本質(zhì)是對(duì)其在內(nèi)存中具體地址的引用,因此確定符號(hào)地址是編譯蚯窥,鏈接,加載過程中一項(xiàng)不可缺少的工作诽里,這就是所謂的符號(hào)重定位手负。本質(zhì)上來說,符號(hào)重定位要解決的是當(dāng)前編譯單元如何訪問「外部」符號(hào)這個(gè)問題茬祷。清焕。
為了目標(biāo)文件能夠被正確的拼合,每一個(gè)目標(biāo)文件中都會(huì)有一個(gè)相應(yīng)的符號(hào)表(Symbol Table)祭犯,這個(gè)表里面記錄了目標(biāo)文件中所用到的所有符號(hào)秸妥,每個(gè)定義的符號(hào)有一個(gè)對(duì)應(yīng)的值,叫做符號(hào)值(Symbol Value)沃粗,對(duì)于變量和函數(shù)來說粥惧,符號(hào)值就是它們的地址。
為了理解簡(jiǎn)化最盅,符號(hào)有三類:
全局符號(hào):目標(biāo)文件外可見的符號(hào)突雪,可以被其他目標(biāo)文件引用,或者需要其他目標(biāo)文件定義涡贱;
局部符號(hào):只在目標(biāo)文件內(nèi)可見的符號(hào)咏删,指只在目標(biāo)文件內(nèi)可見的函數(shù)和變量;
調(diào)試符號(hào):包括行號(hào)信息的調(diào)試符號(hào)信息问词,行號(hào)信息中記錄了函數(shù)和變量所對(duì)應(yīng)的文件和文件行號(hào)督函。
對(duì)于 Mac/iOS 平臺(tái),有三類文件包含了符號(hào)信息:
可執(zhí)行文件:特指應(yīng)用的可執(zhí)行文件,包含了代碼和數(shù)據(jù)侨核,可以直接運(yùn)行草穆;
靜態(tài)庫:包含了代碼和數(shù)據(jù),是目標(biāo)文件的集合搓译;鏈接靜態(tài)庫時(shí)悲柱,鏈接器會(huì)從靜態(tài)庫中拷貝所需要的代碼和數(shù)據(jù)到目標(biāo)程序中;
動(dòng)態(tài)庫:包含了代碼和數(shù)據(jù)些己,相比于靜態(tài)庫豌鸡,動(dòng)態(tài)庫在被鏈接時(shí),并沒有拷貝代碼和數(shù)據(jù)到目標(biāo)程序中段标,只有程序在運(yùn)行起來時(shí)涯冠,才會(huì)去動(dòng)態(tài)庫中找到相應(yīng)代碼。
靜態(tài)庫和動(dòng)態(tài)庫都是為了代碼重用的目的而設(shè)計(jì)的逼庞;編寫完的代碼編譯后放到靜態(tài)庫或者動(dòng)態(tài)庫中蛇更,方便其他代碼模塊調(diào)用,從而提高開發(fā)效率赛糟。
iOS編譯粗略的分為編譯和鏈接兩個(gè)派任,xcode build Setting里面有很多跟這兩個(gè)相關(guān)的選項(xiàng)
下面說下常用的一些選項(xiàng)
編譯階段的選項(xiàng)
這里貼一份編譯時(shí)的部分日志,以便于接下來的分析
User Header Search Paths: 用戶自定義的頭文件的搜索路徑璧南,
Header Search Paths:頭文件的搜索路徑
System Header Search Paths:頭文件的搜索路徑掌逛,實(shí)驗(yàn)發(fā)現(xiàn)跟Header Search Paths一樣
舉個(gè)栗子
import "TestStaticLib/TestExterStaticLib.h",用雙引號(hào)import代表這個(gè)路徑可以從用戶自定義的頭文件的路徑搜索(User Header Search Paths)司倚,當(dāng)然也可以從Header Search Paths搜索
import <TestStaticLib/TestExterStaticLib.h>,只能在Header Search Paths定義的路徑搜索豆混,即使User Header Search Paths定義了該頭文件的路徑,依然會(huì)報(bào)錯(cuò)动知,說找不到頭文件,報(bào)錯(cuò)如下
'TestStaticLib/TestExterStaticLib+TestExterStaticlibCategory.h' file not found with <angled> include; use "quotes" instead
備注下:Search Paths中的路徑加上#import就是這個(gè)頭文件的完整路徑皿伺,要注意下不要重復(fù)路徑
比如:Search Paths中路徑是a/b
import cc.h
那么這個(gè)頭文件的完整路徑就是a/b/cc.h
import dd/cc.h
那么這個(gè)頭文件的完整路徑就是a/b/dd/cc.h
上面編譯日志紅框里面分為三種頭文件路徑
-iquote:來源于User Header Search Paths設(shè)置的路徑
-I:來源于系統(tǒng)自帶的頭文件路徑和Header Search Paths設(shè)置的路徑
-F:來源于Framework search path設(shè)置的路徑
鏈接階段的選項(xiàng)
先看下一個(gè)打包過程中的鏈接日志,下面的知識(shí)對(duì)著日志講解更加清晰拍柒,合理
Library Search Paths
顧名思義是庫搜索路徑心傀,主要鏈接階段查找符號(hào)使用的,可用于靜態(tài)庫(非framework)拆讯,也可以用于動(dòng)態(tài)庫(非framework),不過用于動(dòng)態(tài)庫沒啥意義养叛,
這里先補(bǔ)充個(gè)知識(shí)點(diǎn):
1.靜態(tài)庫和動(dòng)態(tài)庫是相對(duì)編譯期和運(yùn)行期的:
2.靜態(tài)庫在程序編譯時(shí)會(huì)被鏈接到目標(biāo)代碼中种呐,程序運(yùn)行時(shí)將不再需要改靜態(tài)庫;鏈接時(shí)直接將符號(hào)加入到目標(biāo)文件弃甥,
3.而動(dòng)態(tài)庫在程序編譯時(shí)并不會(huì)被鏈接到目標(biāo)代碼中爽室,只是在程序運(yùn)行時(shí)才被載入,鏈接時(shí)與動(dòng)態(tài)庫中的符號(hào)建立映射關(guān)系淆攻,符號(hào)并不存在目標(biāo)文件中阔墩,帶程序運(yùn)行時(shí)綁定符號(hào)嘿架,所以在使用NM命令 查看目標(biāo)文件符號(hào)時(shí)式,有些符號(hào)時(shí)U(Undefined)的啸箫,這表示這些符號(hào)都是在動(dòng)態(tài)庫中的耸彪,并未在目標(biāo)文件中,需要?jiǎng)討B(tài)鏈接忘苛,都是在程序運(yùn)行期間還需要?jiǎng)討B(tài)庫的存在蝉娜。
綜上所述,
動(dòng)態(tài)庫需要在運(yùn)行時(shí)依然在存在扎唾,而xcode當(dāng)前是不支持將動(dòng)態(tài)庫(非framework)文件嵌入到app召川,只支持將動(dòng)態(tài)的framework嵌入到app中,也就是說app運(yùn)行期間無法保持動(dòng)態(tài)庫(非framework)的存在胸遇,其實(shí)xcode里面動(dòng)態(tài)庫存在感很低荧呐,一般都以動(dòng)態(tài)的framework的形式存在,這里提出動(dòng)態(tài)庫主要用測(cè)試纸镊,在Library Search Paths加入動(dòng)態(tài)庫路徑坛增,僅僅是為了鏈接階段可以找到符號(hào),保證編譯通過薄腻,但是運(yùn)行時(shí)依然報(bào)錯(cuò)
dyld: Library not loaded: /Users/xxx/Library/Developer/Xcode/DerivedData/TestExternal-fmqfkxfqdcpgagdncsypplhslrdu/Build/Products/Debug-iphoneos/libTestExternalDMLib
Referenced from: /private/var/containers/Bundle/Application/AAC23F32-5613-4E7F-9C4A-7A8498A1914B/TestBuildSetting.app/TestBuildSetting
Reason: image not found
因?yàn)闊o法將libTestExternalDMLib嵌入到app文件夾中收捣,所以找不到
Library Search Paths只能定義文件夾路徑,定義具體的庫文件無效庵楷,該文件夾路徑里面存放具體的庫文件罢艾,
比如定義$(SRCROOT)有效
但是定義$(SRCROOT)/libTestExternalStaticLib.a無效
所以Library Search Paths一般需要搭配Other Linker Flags或者Link Binary With Libraries,這兩個(gè)選項(xiàng)都可以設(shè)置庫的名字尽纽,結(jié)合Library Search Paths找出絕對(duì)路徑鏈接咐蚯,這個(gè)稍后再說
看上面日志截圖第1部分(紅框部分),這個(gè)就是xcode buildSetting里面設(shè)置的Library Search Paths弄贿,可以看到都是開頭春锋,
從xcode buildSetting截圖可以看出中Library Search Paths有三項(xiàng),跟鏈接日志中的后三項(xiàng)路徑一一相對(duì)應(yīng)差凹,
鏈接日志中第一項(xiàng)是xcode鏈接時(shí)自己生成的庫文件路徑
-L/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos
這個(gè)很好理解期奔,如果一個(gè)app A和它依賴的靜態(tài)庫B在一個(gè)workspace,那B會(huì)隨著A一起編譯生成A.a,它的路徑就是/${BUILD_DIR}/A.a,即-L/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/A.a
危尿,xcode添加這個(gè)庫路徑就是為了找到A.a
再看看第3部分日志(淺藍(lán)色)
里面有個(gè)-lTestExternalStaticLib 這換行呐萌,這就是上面說的相對(duì)于Library Search Paths的路徑
鏈接的時(shí)候會(huì)從Library Search Paths中找出libTestExternalStaticLib.a,進(jìn)行鏈接, libTestExternalStaticLib.a在項(xiàng)目中絕對(duì)路徑是$/SCRROOT/libTestExternalStaticLib.a = /Users/chengjian/work/ios_git_git/TestBuildSetting /libTestExternalStaticLib.a,所以上面的寫法是可以找到庫文件的
這里的表示-l
需要從Library Search Paths尋找該庫文件谊娇,指的是相對(duì)路徑肺孤,而且使用-l
,搜索庫文件時(shí)會(huì)自動(dòng)加上lib和.a
關(guān)于Library Search Paths這部分就講完了
Framework Search Paths
先看看這個(gè)選項(xiàng)官方的解釋
Space-separated list of directory paths. Specifies directories in which the compiler searches for frameworks to find included header files. This list is passed to the compiler in the gcc -F option. You may specify a recursive path by appending ** to the path. When this build setting is defined, $SDKROOT is added to the end of the path list that is passed to the compiler.、
大概意思是編譯階段和鏈接階段都會(huì)搜索該路徑下的framework文件,以便尋找頭文件和符號(hào)鏈接
這就是說在編譯階段和鏈接階段都會(huì)使用它赠堵,編譯階段用于尋找頭文件小渊,鏈接階段用于尋找?guī)煳募M(jìn)行符號(hào)鏈接,注意Framework Search Paths只能設(shè)置文件夾路徑
看上面編譯階段第一部分日志和鏈接階段第2部分日志可以看出茫叭,F(xiàn)ramework Search Paths最終都是以
-F路徑的形式體現(xiàn)出現(xiàn)的
xcode buildsetting里面設(shè)置的Framework Search Paths也是上面日志中體現(xiàn)出的三個(gè)路徑酬屉,這里就不截圖了
另外如果Framework Search Paths設(shè)置一個(gè)文件夾路徑,那么編譯和鏈接時(shí)都會(huì)從這個(gè)文件夾下面尋找framework文件進(jìn)行編譯和鏈接杂靶,不需要指定具體的framework名字梆惯,這點(diǎn)跟Library Search Paths不一樣
比如:
Framework Search Paths 設(shè)置了一個(gè)$(PROJECT_DIR)/testexter路徑,這個(gè)路徑下面有A.framework和B.framework,那么之后的編譯和鏈接都可以從這兩個(gè).framework尋找頭文件和鏈接符號(hào)吗垮,如果是靜態(tài)framework還會(huì)直接把靜態(tài)framework的代碼鏈接到目標(biāo)文件垛吗,完全不需要指定framework的具體名字
不過以這種文件夾方式(類似于模糊匹配, 文件夾/**的方式)鏈接靜態(tài)framework有個(gè)特點(diǎn),那就是不受Other Linker Flags的參數(shù)(-ObjC,-all_load,-force_load)烁登,這樣有可能導(dǎo)致分類信息找不到怯屉,當(dāng)然也可能減少無用的文件(如果使用-ObjC參數(shù),那么所有精確匹配的靜態(tài)庫文件的所有代碼都會(huì)鏈接到目標(biāo)文件饵沧,不會(huì)刪除無用文件锨络,但是這種模糊匹配的文件不受此影響,進(jìn)而鏈接的時(shí)候會(huì)刪除一些無用代碼狼牺,當(dāng)然這種case主要用于沒有分類的靜態(tài)framework羡儿,可以優(yōu)化下包體積),
在真實(shí)的鏈接過程中搜索庫路徑和frame路徑不僅僅包括buildsetting里面設(shè)置的路徑是钥,它也包括iOS sdk路徑和build out路徑等等掠归,這個(gè)可以從鏈接日志看出
other linker flags
官方解釋
Space-separated list of option specifications. Specifies additional options for linking the binary. These options are passed (as given) to the linker whether other build settings also specify values that correspond to these options. Therefore, you should look for the appropriate linker build setting to specify a particular linker option before using this build setting.
大概意思就是在鏈接階段添加附加參數(shù),這個(gè)對(duì)應(yīng)上面鏈接日志的第三部分悄泥,
-ObjC
/Users/xxx/work/ios_git_git/TestBuildSetting/../../../Documents/libTestCC.a
-lTestExternalStaticLib
我們使用other linker flags一般只會(huì)使用兩個(gè)功能
1.指定鏈接參數(shù)
-ObjC
一般這個(gè)參數(shù)足夠解決前面提到的問題,這個(gè)flag告訴鏈接器把庫中定義的Objective-C類和Category都加載進(jìn)來虏冻。這樣編譯之后的app會(huì)變大,因?yàn)榧虞d了很多不必要的文件而導(dǎo)致可執(zhí)行文件變大。但是如果靜態(tài)庫中有類和category的話只有加入這個(gè)flag才行,但是-Objc也不是萬能的,當(dāng)靜態(tài)庫中只有分類而沒有類的時(shí)候,Objc就失效了,這就需要使用-all_load或者-force_load了弹囚。這個(gè)筆者做過實(shí)驗(yàn)厨相,即使靜態(tài)庫中只有分類而沒有類的時(shí)候,也會(huì)將分類信息鏈接到目標(biāo)文件鸥鹉,貌似xcode已經(jīng)解決了這個(gè)bug問題
-all_load
-all_load會(huì)強(qiáng)制鏈接器把目標(biāo)文件都加載進(jìn)來蛮穿,即使沒有objc代碼。但是這個(gè)參數(shù)也有一個(gè)弊端,那就是你使用了不止一個(gè)靜態(tài)庫文件宋舷,那么你很有可能會(huì)遇到ld: duplicate symbol錯(cuò)誤绪撵,因?yàn)椴煌膸煳募锩婵赡軙?huì)有相同的目標(biāo)文件 這里會(huì)有兩種方法解決 1:用命令行就行拆包. 2:就是用下面的這個(gè)參數(shù)
-force_load
這個(gè)flag所做的事情跟-all_load其實(shí)是一樣的,只是-force_load需要指定要進(jìn)行全部加載的庫文件的路徑祝蝠,這樣的話,你就只是完全加載了一個(gè)庫文件,不影響其余庫文件的按需加載 .注意-force_load只能加載絕對(duì)路徑绎狭,不能搭配Library Search Paths加載其相對(duì)路徑细溅,而且只能加載庫文件,不能加載framework(ld: can't map file, errno=22 file '/Users/chengjian/work/ios_git_git/TestBuildSetting/testexter/TestExternalStaticFW.framework' for architecture arm64
)
2.指定加載庫文件或者framework路徑
庫文件可以使用相對(duì)路徑和絕對(duì)路徑
比如
絕對(duì)路徑 :"$(SRCROOT)/libTestExternalStaticLib.a"
相對(duì)路徑:-l"TestExternalStaticLib",從Library Search Paths查找, ,其中Library Search Paths設(shè)置了$(SRCROOT)
framework只能使用絕對(duì)路徑
比如:-framework "TestExternalStaticFW (其中 TestExternalStaticFW真實(shí)路徑是"$(SRCROOT)/testexter/TestExternalStaticFW.frameowork")儡嘶,這樣會(huì) 從Framework Search Paths中設(shè)置的路徑查找該framework
如果Framework Search Paths設(shè)置了$(SRCROOT)/testexter/這個(gè)路徑喇聊,那么可以成功找到
補(bǔ)充:之前說過即使other linker flags沒有設(shè)置任何的具體framework。xcode也可以加載Framework Search Paths設(shè)置的文件夾里面的framework(分為遞歸和非遞歸蹦狂,可以設(shè)置)誓篱,但是這種加載的方式就不受other linker flags里面的參數(shù)控制,比如-ObjC凯楔,這樣就可能出現(xiàn)分類信息找不到的問題窜骄,當(dāng)然另一方面不受other linker flags影響,也可能對(duì)減包有好處摆屯,上面也說過
Build Phases之Link Binary With Libraries
這里提出Link Binary With Libraries,因?yàn)樗彩侵付虞d庫文件或者framework路徑
跟other linker flags很像邻遏,主要區(qū)別是Link Binary With Libraries只能識(shí)別相對(duì)路徑,必須搭配Library Search Paths和Framework Search Paths使用
在Link Binary With Libraries這樣設(shè)置
就相當(dāng)與在build setting這樣設(shè)置
它們對(duì)應(yīng)的鏈接日志都是
Ld .............
-lTestExternalStaticLib
-framework
TestExternalStaticFW
當(dāng)然都要配合Library Search Paths和Framework Search Paths一起使用虐骑,不然找不到庫或者Framework文件
Generate Debug Symbols [GCC_GENERATE_DEBUGGING_SYMBOLS]
官方文檔對(duì)這個(gè)設(shè)置的說明:
Enables or disables generation of debug symbols. When debug symbols are enabled, the level of detail can be controlled by the build 'Level of Debug Symbols' setting.
調(diào)試符號(hào)是在編譯時(shí)生成的准验。在Xcode中查看構(gòu)建過程,可以發(fā)現(xiàn)廷没,當(dāng)Generate Debug Symbols選項(xiàng)設(shè)置為YES時(shí)糊饱,每個(gè)源文件在編譯成.o文件時(shí),編譯參數(shù)多了-g和-gmodules兩項(xiàng)颠黎。但鏈接等其他的過程沒有變化另锋。
Clang文檔對(duì)-g的描述是:
Generate complete debug info.
當(dāng)Generate Debug Symbols設(shè)置為YES時(shí),編譯產(chǎn)生的.o文件會(huì)大一些盏缤,當(dāng)然最終生成的可執(zhí)行文件也大一些砰蠢。
當(dāng)Generate Debug Symbols設(shè)置為NO的時(shí)候,在Xcode中設(shè)置的斷點(diǎn)不會(huì)中斷唉铜。但是在程序中打印[NSThread callStackSymbols]台舱,依然可以看到類名和方法名,比如:
** 0 XSQSymbolsDemo 0x00000001000667f4 -[ViewController viewDidLoad] + 100**
在程序崩潰時(shí)潭流,也可以得到帶有類名和方法名的函數(shù)調(diào)用棧
Debug Information Level [CLANG_DEBUG_INFORMATION_LEVEL]
官方文檔的描述是:
Toggles the amount of debug information emitted when debug symbols are enabled. This can impact the size of the generated debug information, which can matter in some cases for large projects (such as when using LTO).
當(dāng)我把Debug Information Level設(shè)置為Line tables only的時(shí)候竞惋,然后構(gòu)建app,每個(gè)源文件在編譯時(shí)灰嫉,都多了一個(gè)編譯參數(shù):-gline-tables-only
Clang的文檔中這樣解釋-gline-tables-only:
Generate line number tables only.
This kind of debug info allows to obtain stack traces with function names, file names and line numbers (by such tools as gdb or addr2line). It doesn’t contain any other data (e.g. description of local variables or function parameters).
這種類型的調(diào)試信息允許獲得帶有函數(shù)名拆宛、文件名和行號(hào)的函數(shù)調(diào)用棧,但是不包含其他數(shù)據(jù)(比如局部變量和函數(shù)參數(shù))讼撒。
所以當(dāng)Debug Information Level設(shè)置為Line tables only的時(shí)候浑厚,斷點(diǎn)依然會(huì)中斷股耽,但是無法在調(diào)試器中查看局部變量的值:
Strip Linked Product [STRIP_INSTALLED_PRODUCT]
在Xcode7.2.1中,Strip Linked Product在DEBUG和RELEASE下均默認(rèn)為YES钳幅。
這是一個(gè)讓我困惑了很久的設(shè)置選項(xiàng)物蝙。當(dāng)我把這一設(shè)置選項(xiàng)改為NO的時(shí)候,最終構(gòu)建生成的app大小沒有任何變化敢艰,這讓我覺得很奇怪诬乞。
原來,Strip Linked Product也受到Deployment Postprocessing設(shè)置選項(xiàng)的影響钠导。在Build Settings中震嫉,我們可以看到,Strip Linked Product是在Deployment這欄中的牡属,而Deployment Postprocessing相當(dāng)于是Deployment的總開關(guān)票堵。
Xcode7.2.1中,Deployment Postprocessing在DEBUG和RELEASE下均默認(rèn)為NO湃望。
現(xiàn)在我們把Deployment Postprocessing設(shè)置為YES换衬,對(duì)比Strip Linked Product設(shè)為YES和NO的這兩種情況,發(fā)現(xiàn)當(dāng)Strip Linked Product設(shè)為YES的時(shí)候证芭,app的構(gòu)建過程多了這樣兩步:
在app構(gòu)建的開始瞳浦,會(huì)生成一些.hmap輔助文件;(為什么會(huì)多出這一步我好像還不太清楚)
在app構(gòu)建的末尾废士,會(huì)執(zhí)行Strip操作叫潦。
當(dāng)Strip Linked Product設(shè)為YES的時(shí)候,運(yùn)行app官硝,斷點(diǎn)不會(huì)中斷矗蕊,在程序中打印[NSThread callStackSymbols]也無法看到類名和方法名:
** 0 XSQSymbolsDemo 0x000000010001a7f4 XSQSymbolsDemo + 26612**
而在程序崩潰時(shí),函數(shù)調(diào)用棧中也無法看到類名和方法名
Strip Style [STRIP_STYLE]
官方文檔中對(duì)Strip Style的描述:
Defines the level of symbol stripping to be performed on the linked product of the build. The default value is defined by the target's product type. [STRIP_STYLE]
All Symbols - Completely strips the binary, removing the symbol table and relocation information. [all, -s]
Non-Global Symbols - Strips non-global symbols, but saves external symbols. [non-global, -x]
Debugging Symbols - Strips debugging symbols, but saves local and global symbols. [debugging, -S]
選擇不同的Strip Style時(shí)氢架,app構(gòu)建末尾的Strip操作會(huì)被帶上對(duì)應(yīng)的參數(shù)傻咖。
如果選擇debugging symbols的話,函數(shù)調(diào)用棧中岖研,類名和方法名還是可以看到的卿操。
如果我們構(gòu)建的不是一個(gè)app,而是一個(gè)靜態(tài)庫孙援,需要注意害淤,靜態(tài)庫是不可以strip all的。這時(shí)構(gòu)建會(huì)失敗拓售。想想符號(hào)在重定位時(shí)的作用窥摄,如果構(gòu)建的靜態(tài)庫真的能剝離所有符號(hào),那么它也就沒法被鏈接了础淤。
Debug Information Format [DEBUG_INFORMATION_FORMAT]
Xcode7.2.1中崭放,Debug Information Format在DEBUG下默認(rèn)為DWARF哨苛,在RELEASE下默認(rèn)為DWARF with dSYM File。
官方文檔的解釋是:
This setting controls the format of debug information used by the developer tools. [DEBUG_INFORMATION_FORMAT]
DWARF - Object files and linked products will use DWARF as the debug information format. [dwarf]
DWARF with dSYM File - Object files and linked products will use DWARF as the debug information format, and Xcode will also produce a dSYM file containing the debug information from the individual object files (except that a dSYM file is not needed and will not be created for static library or object file products). [dwarf-with-dsym]
當(dāng)Debug Information Format為DWARF with dSYM File的時(shí)候莹菱,構(gòu)建過程中多了一步Generate dSYM File:
最終產(chǎn)出的文件也多了一個(gè)dSYM文件移国。
不過吱瘩,既然這個(gè)設(shè)置叫做Debug Information Format道伟,所以首先得有調(diào)試信息。如果此時(shí)Generate Debug Symbols選擇的是NO的話使碾,是沒法產(chǎn)出dSYM文件的蜜徽。
dSYM文件的生成,是在Strip等命令執(zhí)行之前票摇。所以無論Strip Linked Product是否開啟拘鞋,生成的dSYM文件都不會(huì)受影響。
不過正如文檔中所說矢门,無法為靜態(tài)庫生成dSYM文件盆色。即便為給一個(gè)靜態(tài)庫的Debug Information Format設(shè)置為DWARF with dSYM File,構(gòu)建過程中依然不會(huì)有生成dSYM文件的步驟祟剔。
打包的全日志如下
Showing All Messages
Prepare build
note: Using new build systemnote: Planning buildnote: Constructing build description
Build target TestBuildSetting of project TestBuildSetting with configuration Debug
CreateBuildDirectory /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
builtin-create-build-directory /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products
CreateBuildDirectory /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
builtin-create-build-directory /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex
MkDir /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
/bin/mkdir -p /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app
MkDir /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Frameworks (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
/bin/mkdir -p /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Frameworks
ProcessProductPackaging /Users/xxx/Library/MobileDevice/Provisioning\ Profiles/327f4b26-0b99-428d-8b29-8882568cd5ce.mobileprovision /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/embedded.mobileprovision (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
builtin-productPackagingUtility /Users/xxx/Library/MobileDevice/Provisioning\ Profiles/327f4b26-0b99-428d-8b29-8882568cd5ce.mobileprovision -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/embedded.mobileprovision
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources/Entitlements.plist (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources/Entitlements.plist
ProcessProductPackaging "" /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting.app.xcent (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
Entitlements:
{
"application-identifier" = "65T72LT3SH.cj.test.oi.TestBase";
"com.apple.developer.team-identifier" = 65T72LT3SH;
"get-task-allow" = 1;
"keychain-access-groups" = (
"65T72LT3SH.cj.test.oi.TestBase"
);
}
builtin-productPackagingUtility -entitlements -format xml -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting.app.xcent
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/all-product-headers.yaml (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/all-product-headers.yaml
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-project-headers.hmap (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-project-headers.hmap
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting.hmap (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting.hmap
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-own-target-headers.hmap (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-own-target-headers.hmap
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-generated-files.hmap (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-generated-files.hmap
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-target-headers.hmap (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-target-headers.hmap
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-non-framework-target-headers.hmap (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-non-framework-target-headers.hmap
DataModelCompile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/ /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/TestBuildSetting.xcdatamodeld (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
/Applications/Xcode.app/Contents/Developer/usr/bin/momc --sdkroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk --iphoneos-deployment-target 13.1 --module TestBuildSetting /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/TestBuildSetting.xcdatamodeld /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/
CompileC /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/main.o /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -target arm64-apple-ios13.1 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu11 -fobjc-arc -fobjc-weak -fmodules -gmodules -fmodules-cache-path=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -Wunguarded-availability -fembed-bitcode-marker -index-store-path /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Index/DataStore -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-generated-files.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-own-target-headers.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-target-headers.hmap -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-project-headers.hmap -iquote /Users/xxx/work/project/TestStaticLib -iquote /Users/xxx/work/project/TestExternalDMLib/TestExternalDMLib -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/include -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources-normal/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources -F/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -MMD -MT dependencies -MF /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/main.dia -c /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/main.m -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/main.o
CompileC /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/AppDelegate.o /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/AppDelegate.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -target arm64-apple-ios13.1 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu11 -fobjc-arc -fobjc-weak -fmodules -gmodules -fmodules-cache-path=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -Wunguarded-availability -fembed-bitcode-marker -index-store-path /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Index/DataStore -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-generated-files.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-own-target-headers.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-target-headers.hmap -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-project-headers.hmap -iquote /Users/xxx/work/project/TestStaticLib -iquote /Users/xxx/work/project/TestExternalDMLib/TestExternalDMLib -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/include -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources-normal/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources -F/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -MMD -MT dependencies -MF /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/AppDelegate.d --serialize-diagnostics /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/AppDelegate.dia -c /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/AppDelegate.m -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/AppDelegate.o
CompileC /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/ViewController.o /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/ViewController.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -target arm64-apple-ios13.1 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu11 -fobjc-arc -fobjc-weak -fmodules -gmodules -fmodules-cache-path=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -Wunguarded-availability -fembed-bitcode-marker -index-store-path /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Index/DataStore -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-generated-files.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-own-target-headers.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-target-headers.hmap -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-project-headers.hmap -iquote /Users/xxx/work/project/TestStaticLib -iquote /Users/xxx/work/project/TestExternalDMLib/TestExternalDMLib -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/include -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources-normal/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources -F/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -MMD -MT dependencies -MF /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/ViewController.d --serialize-diagnostics /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/ViewController.dia -c /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/ViewController.m -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/ViewController.o
CompileC /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestMockHeader.o /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/TestMockHeader.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -target arm64-apple-ios13.1 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu11 -fobjc-arc -fobjc-weak -fmodules -gmodules -fmodules-cache-path=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -Wunguarded-availability -fembed-bitcode-marker -index-store-path /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Index/DataStore -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-generated-files.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-own-target-headers.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-target-headers.hmap -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-project-headers.hmap -iquote /Users/xxx/work/project/TestStaticLib -iquote /Users/xxx/work/project/TestExternalDMLib/TestExternalDMLib -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/include -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources-normal/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources -F/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -MMD -MT dependencies -MF /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestMockHeader.d --serialize-diagnostics /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestMockHeader.dia -c /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/TestMockHeader.m -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestMockHeader.o
CompileC /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/SceneDelegate.o /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/SceneDelegate.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export LANG=en_US.US-ASCII
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -target arm64-apple-ios13.1 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu11 -fobjc-arc -fobjc-weak -fmodules -gmodules -fmodules-cache-path=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DDEBUG=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -Wunguarded-availability -fembed-bitcode-marker -index-store-path /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Index/DataStore -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-generated-files.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-own-target-headers.hmap -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-all-target-headers.hmap -iquote /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-project-headers.hmap -iquote /Users/xxx/work/project/TestStaticLib -iquote /Users/xxx/work/project/TestExternalDMLib/TestExternalDMLib -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/include -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources-normal/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources/arm64 -I/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/DerivedSources -F/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -MMD -MT dependencies -MF /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/SceneDelegate.d --serialize-diagnostics /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/SceneDelegate.dia -c /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/SceneDelegate.m -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/SceneDelegate.o
WriteAuxiliaryFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestBuildSetting.LinkFileList (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
write-file /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestBuildSetting.LinkFileList
Ld /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/TestBuildSetting normal arm64 (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -target arm64-apple-ios13.1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.1.sdk
-L/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos
-L/Users/xxx/work/ios_git_git/TestBuildSetting/../../../Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/SDWebImage
-L/Users/xxx/work/ios_git_git/TestBuildSetting
-L/Users/xxx/work/ios_git_git/TestBuildSetting
-F/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos
-F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter/
-F/Users/xxx/work/ios_git_git/TestBuildSetting/testexter -filelist
/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestBuildSetting.LinkFileList
-Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -map -Xlinker
/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting-LinkMap-normal-arm64.txt
-dead_strip -Xlinker -object_path_lto -Xlinker /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestBuildSetting_lto.o
-Xlinker -export_dynamic -Xlinker -no_deduplicate -fembed-bitcode-marker -fobjc-arc -fobjc-link-runtime
-ObjC
/Users/xxx/work/ios_git_git/TestBuildSetting/../../../Documents/libTestCC.a
-lTestExternalStaticLib
-Xlinker -dependency_info -Xlinker /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Objects-normal/arm64/TestBuildSetting_dependency_info.dat
-o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/TestBuildSetting
ld: warning: directory not found for option '-L/Users/xxx/work/ios_git_git/TestBuildSetting/../../../Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/SDWebImage'
CompileAssetCatalog /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Assets.xcassets (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
/Applications/Xcode.app/Contents/Developer/usr/bin/actool --output-format human-readable-text --notices --warnings --export-dependency-info /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/assetcatalog_dependencies --output-partial-info-plist /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/assetcatalog_generated_info.plist --app-icon AppIcon --compress-pngs --enable-on-demand-resources YES --filter-for-device-model iPhone10,2 --filter-for-device-os-version 13.1.2 --sticker-pack-identifier-prefix cj.test.oi.TestBase.sticker-pack. --development-region en --target-device iphone --target-device ipad --minimum-deployment-target 13.1 --platform iphoneos --product-type com.apple.product-type.application --compile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Assets.xcassets
/* com.apple.actool.compilation-results */
/Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/assetcatalog_generated_info.plist
CompileStoryboard /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Base.lproj/Main.storyboard (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export XCODE_DEVELOPER_USR_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin/..
/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool --errors --warnings --notices --module TestBuildSetting --output-partial-info-plist /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj/Main-SBPartialInfo.plist --auto-activate-custom-fonts --target-device iphone --target-device ipad --minimum-deployment-target 13.1 --output-format human-readable-text --compilation-directory /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Base.lproj/Main.storyboard
CompileStoryboard /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Base.lproj/LaunchScreen.storyboard (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export XCODE_DEVELOPER_USR_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin/..
/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool --errors --warnings --notices --module TestBuildSetting --output-partial-info-plist /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj/LaunchScreen-SBPartialInfo.plist --auto-activate-custom-fonts --target-device iphone --target-device ipad --minimum-deployment-target 13.1 --output-format human-readable-text --compilation-directory /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Base.lproj/LaunchScreen.storyboard
ProcessInfoPlistFile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Info.plist /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Info.plist (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
builtin-infoPlistUtility /Users/xxx/work/ios_git_git/TestBuildSetting/TestBuildSetting/Info.plist -producttype com.apple.product-type.application -genpkginfo /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/PkgInfo -expandbuildsettings -format binary -platform iphoneos -additionalcontentfile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj/LaunchScreen-SBPartialInfo.plist -additionalcontentfile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj/Main-SBPartialInfo.plist -additionalcontentfile /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/assetcatalog_generated_info.plist -requiredArchitecture arm64 -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Info.plist
LinkStoryboards (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export XCODE_DEVELOPER_USR_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin/..
/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool --errors --warnings --notices --module TestBuildSetting --target-device iphone --target-device ipad --minimum-deployment-target 13.1 --output-format human-readable-text --link /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj/LaunchScreen.storyboardc /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/Base.lproj/Main.storyboardc
PBXCp /Users/xxx/work/ios_git_git/TestBuildSetting/testexter/TestExternalDMLib.framework /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Frameworks/TestExternalDMLib.framework (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -exclude Headers -exclude PrivateHeaders -exclude Modules -exclude \*.tbd -bitcode-strip replace-with-marker -bitcode-strip-tool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip -resolve-src-symlinks /Users/xxx/work/ios_git_git/TestBuildSetting/testexter/TestExternalDMLib.framework /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Frameworks
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/xxx/work/ios_git_git/TestBuildSetting/testexter/TestExternalDMLib.framework/TestExternalDMLib -m -o /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Frameworks/TestExternalDMLib.framework/TestExternalDMLib
CodeSign /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Frameworks/TestExternalDMLib.framework (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
Signing Identity: "Apple Development: cj3479@126.com (J67S4W3KWM)"
Provisioning Profile: "iOS Team Provisioning Profile: cj.test.oi.TestBase"
(327f4b26-0b99-428d-8b29-8882568cd5ce)
/usr/bin/codesign --force --sign 3D08DC409A9B67635F36B86060790837B37C783B --timestamp=none --preserve-metadata=identifier,entitlements,flags /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/Frameworks/TestExternalDMLib.framework
Strip /Users/chengjian/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/TestBuildSetting (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/chengjian/work/ios_git_git/TestBuildSetting
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip /Users/chengjian/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app/TestBuildSetting
CodeSign /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
Signing Identity: "Apple Development: cj3479@126.com (J67S4W3KWM)"
Provisioning Profile: "iOS Team Provisioning Profile: cj.test.oi.TestBase"
(327f4b26-0b99-428d-8b29-8882568cd5ce)
/usr/bin/codesign --force --sign 3D08DC409A9B67635F36B86060790837B37C783B --entitlements /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Intermediates.noindex/TestBuildSetting.build/Debug-iphoneos/TestBuildSetting.build/TestBuildSetting.app.xcent --timestamp=none /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app
Validate /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
builtin-validationUtility /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app
Touch /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app (in target 'TestBuildSetting' from project 'TestBuildSetting')
cd /Users/xxx/work/ios_git_git/TestBuildSetting
/usr/bin/touch -c /Users/xxx/Library/Developer/Xcode/DerivedData/TestBase-bhnupfuqhrrdlodaigjeavintpjb/Build/Products/Debug-iphoneos/TestBuildSetting.app
Build succeeded 2019/12/24, 12:05 PM 1.7 seconds