上一篇iOS APP簽名詳解我們了解了iOS簽名的機(jī)制和原理,這一篇我們一起來動手寫一個自動重簽名的腳本,懶是程序員乃至人類進(jìn)步的終極力量,造輪子寫工具可以極大的避免重復(fù)性工作,為我們節(jié)省更多的時間放在思考上,話不多說擼起袖子開始干:
成都創(chuàng)新互聯(lián)公司專注于康巴什企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)??蛋褪簿W(wǎng)站建設(shè)公司,為康巴什等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)第一步:獲取脫殼的ipa包
這里我下載了微信的越獄版ipa包用來演示。
第二步:命令行實現(xiàn)重簽名
1、將ipa解壓縮后前往.app所在目錄,輸入
codesign -d -vv WeChat.app
查看可執(zhí)行文件的簽名信息:
可以看到簽名信息現(xiàn)在還是騰訊的
2、輸入:
security find-identity -v -p codesigning
查看Mac本地的證書列表:
記下你要用來簽名的證書雙引號(包括雙引號)中的字符串,一會兒會用到
3、確認(rèn)ipa包是否已經(jīng)脫殼,輸入:
cd WeChat.app
otool -l WeChat | grep crypt
會輸出:
cryptid為0即為已脫殼,為1為加密狀態(tài)。這里有兩組數(shù)據(jù)是因為這是個支持兩種CPU架構(gòu)的可執(zhí)行文件,可輸入file WeChat
查看可執(zhí)行文件支持的架構(gòu):
4、刪除無法簽名的插件文件:PlugIns文件夾、Watch文件夾
5、對.app文件夾內(nèi)的Frameworks文件夾中的每一個framework強制重簽名:codesign -fs 步驟2中記下的證書信息 要簽名的.framework
注意不要遺漏,每一個framework都要用自己的證書重簽一下
6、將自己的描述文件名改為embedded.mobileprovision,并拖入到.app中,再將.app中info.plist文件里的Bundle identifier改成我們自己的BundleID
7、在.app同級目錄下新建一個entitlements.plist文件,查看描述文件內(nèi)容:
security cms -D -i embedded.mobileprovision
將Entitlements節(jié)點下的
... ...
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。