Webrtc編譯篇

此篇是源于自己跟團(tuán)隊小伙伴在運(yùn)行源碼demo時一些稀奇古怪問題的坑,望眾基共勉之。由于比較雜,所以主要針對命令行跟蹤所遇到的問題出發(fā)做筆記。

mobileprovision-read -f app/embedded.mobileprovision

該命令行用于查看app對應(yīng)的provisonning文件是否和簽名對應(yīng),其中有幾個key可供對比使用:

1、com.apple.developer.team-identifier
2、Name
3、ProvisionedDevices
4、TeamName
5、UUID
1、該命令行中有許多類似key值的string與其相同,用于存儲開發(fā)者團(tuán)隊的TeamIdentifier
2、為provisonning文件的文件名
3、當(dāng)前項目開發(fā)者團(tuán)隊組中授權(quán)的設(shè)備UUID數(shù)組
4、開發(fā)者團(tuán)隊名
5開發(fā)者團(tuán)隊的ID

附帶貼一個鏈接(.mobileprovision文件查詢工具)
https://github.com/0xc010d/mobileprovision-read
關(guān)于provisonning文件,以'iOS Team'開頭的文件,現(xiàn)在只能在xcode中進(jìn)行管理,developer apple中不顯示
對比兩個APP中的embedded.mobileprovision是否一樣,使用

md5 embedded.mobileprovision
例:MD5 (embedded.mobileprovision) = 91a3dc5a9c4ec0edc035231ced41dbfe

附上一個地址/Users/ducky/Library/MobileDevice/Provisioning Profiles

關(guān)于webrtc的源碼管理(from大佬)

gclient是用來同步代碼,在和src同級目錄會有一個隱藏.gclient文件,里面記錄了基本的代碼拉取設(shè)置
src里面的各個目錄、甚至子目錄,基本上都是一個獨(dú)立的git庫
 gclient sync的命令回去檢查整個項目的完整情況,并同步代碼
如果gclient sync無法通過,一般都不是代碼的問題,是因為工具鏈或依賴庫和當(dāng)前代碼需要的不一致
gclient是用來同步代碼和工具鏈的
gn 是用來產(chǎn)生ninja所需的配置文件
ninja 才是編譯的
代碼里面有很多*.gni,可以認(rèn)為是和make腳本差不多的,是告訴ninja,我要編譯某個項目
例如AppRTCMobile,需要哪些代碼文件、以來哪些庫

git status

該命令行可查看自己的對該git的改動

gn clean < out_dir>

刪除輸出目錄的內(nèi)容,除了args.gn和創(chuàng)建一個足以重新生成構(gòu)建的忍者構(gòu)建環(huán)境。
個人見解:該命令行作用應(yīng)與xcode中clean操作功能相識,clean后out中目錄相關(guān)目錄會被刪除,
但不需要重新gn新的一份,可直接用ninja編譯。

gn args < out_dir> [--list] [--short] [--args]

該命令行其實在生成項目篇有提及到,--list可查看所有參數(shù)默認(rèn)值,若指定為--short則只給出當(dāng)前設(shè)置的參數(shù)。
其實根據(jù)gn的官方文檔,該命令行有很強(qiáng)大檢索功能,但這點我一直設(shè)置錯誤,待補(bǔ)充。

ios_enable_code_signing=false

這是gn項目時的一個設(shè)置參數(shù),當(dāng)沒有簽名時,設(shè)置false可不簽名,仍可以編譯,但不能部署到真機(jī)。
應(yīng)該是打包出來的AppRTCMobile.app里面沒有了_CodeSignature文件夾(來自大佬的推測)

xcrun security find-identity -v -p codesigning

該命令行可查詢當(dāng)前環(huán)境中可用的有效簽名。

ios_code_signing_identity

同是gn項目的設(shè)置參數(shù),用于設(shè)置證書ID。
此處證書為iPhone Developer證書。

iOS Code Signing

由于項目中自動簽名一直出錯,需要對其中的.APP文件進(jìn)行重簽名,此處用到iOS Code Signing。
貼上一個相關(guān)學(xué)習(xí)網(wǎng)址http://www.cocoachina.com/ios/20141017/9949.html

1、codesign -vv -d /Users/linzq/WebRTC/src/out/arm/AppRTCMobile.app 
    該命令行用于查詢APP的簽名信息
2、$ codesign -f -s 'iPhone Developer: Thomas Kollbach (7TPNXN7G6K)' Example.app
    該命令行可對已簽名的APP進(jìn)行重簽名,如果APP未被簽名,需用其他命令。上面的網(wǎng)址有詳細(xì)介紹,此處跳過。

證書匹配的兩個點

1、( mobileprovision-read -f AppRTCMobile.app/embedded.mobileprovision )
與 (codesign -vv -d AppRTCMobile.app )
2、通過命令得到簽名的UUID后,增加編譯參數(shù)( ios_code_signing_identity="UUID" )
與 ( xcrun security find-identity -v -p codesigning )  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 此篇是源于自己跟團(tuán)隊小伙伴在運(yùn)行源碼demo時一些稀奇古怪問題的坑,望眾基共勉之。由于比較雜,所以主要針對命令行跟...
    朱曉曉的技術(shù)博客閱讀 1,960評論 0 0
  • 什么是Code Signing Code Signing是用于驗證一個APP是否由你創(chuàng)建的安全技術(shù)。一旦一個應(yīng)用被...
    楠溪山人閱讀 2,602評論 0 5
  • 今日求職已經(jīng)快到了死皮賴臉強(qiáng)行登門拜訪一些好點的創(chuàng)業(yè)公司的地步。既然走到這一步,那就梳理下我未經(jīng)驗證的套路,日后驗...
    kevinzhon閱讀 640評論 0 1
  • 如果告訴十年前的自己,現(xiàn)在追求和現(xiàn)況。我會心疼還是嘲笑。 當(dāng)年那么那么的趾高氣昂,如今的委屈求全。曾經(jīng)追求的海闊...
    GYKifan閱讀 100評論 0 0
  • 聽到這么高端霸氣的名字頓覺自己極致土鱉,介是何方神圣呢,其全稱是Resource Acquisition Is I...
    縱橫而樂閱讀 1,129評論 0 1

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