python 腳本實現(xiàn)自動配置iOS工程證書文件

? ? ? ?在實現(xiàn)iOS項目的自動打包工程中,我們需要配置好工程的證書文件信息,為了能夠自動的根據(jù)bundle id來設(shè)置不同的profile文件,我們可以通過腳本文件來修改工程的projext.pbxproj文件幫助我們進行自動設(shè)置。

? ? ? ?測試環(huán)境:xcode8 多target

1. Project.pbxproj

Xcode項目中的xxx.xcodeproj其實是一個文件夾,右鍵單擊xxx.xcodeproj,顯示包內(nèi)容:

Project.pbxproj的解析

關(guān)于這個配置文件的結(jié)構(gòu),請參考project.pbxproj,最熟悉的”陌生人(http://www.olinone.com/?p=215),解析該文件可以使用現(xiàn)有的解析工具mod-pbxproj,該工具是一個python的腳本。其github地址為:https://github.com/kronenthaler/mod-pbxproj。

為了修改不同taget的profile,我們需要知道這些配置在文件中的具體位置,不難發(fā)現(xiàn):

我們的目標(biāo)是為不同的bundle id設(shè)置不同的profile,所以只需要找到不同target的XCBuildConfiguration,修改其中PROVISIONING_PROFILE的值即可。通過分析project.pbxproj文件結(jié)構(gòu),你會發(fā)現(xiàn)其找到這些target的buildSettings的路徑如下:

rootObject=> PBXNativeTarget=> XCConfigurationList=> XCBuildConfiguration。

XCBuildConfiguration會有Debug和Release兩個版本,這里我們以修改Release版本的為例進行說明。

2. Python腳本修改profile

需要在工程目錄下配置如下腳本文件,通過從json文件中讀取配置信息,然后根據(jù)不同的bundle id來設(shè)置不同的profile文件和其他字段信息。其中xcode_configurator_profile.py為修改profile的腳本文件,profile.json為配置的證書信息。demo如下圖所示:

首先在profile.json文件中配置好bundle id和對應(yīng)的profile文件,如下如所示:

然后在工程目錄下執(zhí)行xcode_configurator_profile.py:

檢查profile修改結(jié)果:

如果設(shè)置了以后有任何問題, 你可以在對應(yīng)的xxx.xcodeproject下找到對應(yīng)的備份。

文章中源碼及demo可見github:https://github.com/cornyu/xcode_auto_configurator_profile

最后編輯于
?著作權(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)容

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