三 2手動(dòng)簽名圖文說(shuō)明

nx_001.jpeg

應(yīng)用簽名原理手動(dòng)簽名中,我們說(shuō)到了手動(dòng)簽名的步驟以及手動(dòng)簽名需要用到的相關(guān)終端命令,這一篇文章中,我們就來(lái)圖文說(shuō)明一下手動(dòng)簽名的過(guò)程。

準(zhǔn)備工作:
1.macOS 10.15.2 
2.Xcode 11.3.1
3.手動(dòng)簽名的微信ipa包(Wechat7.0.2越獄版本)
4.這里我們使用個(gè)人的免費(fèi)的開發(fā)者賬號(hào)進(jìn)行開發(fā)測(cè)試

微信ipa包(Wechat7.0.2越獄版本),密碼:hyya

1. 拿到微信的越獄資源包
  • 將資源包后綴ipa改成zip格式
  • 解壓zip文件
  • 打開資源包->Payload->WeChat顯示包內(nèi)容
  • cd 到 Payload 文件夾內(nèi)
// 查看當(dāng)前項(xiàng)目的可執(zhí)行文件
codesign -d WeChat.app 

// 查看簽名信息
codesign -d -v WeChat.app

// 查看更詳細(xì)的簽名信息
codesign -d -v WeChat.app
3.1_簽名信息.png
2.查看自己證書
// 查找并列出鑰匙串中可用于簽名的證書 注意這里找自己的證書
security find-identity -v -p codesigning
3.查看WeChat文件

1.查看 Payload 文件夾內(nèi)WeChat文件,選擇顯示包內(nèi)容。
2.我們可以看到一個(gè)和WeChat同名的exec類型的可執(zhí)行文件,我們重簽名簽的就是這個(gè)文件。
3.我們可以通過(guò) otool -l WeChat 命令來(lái)查看WeChat的文件信息。
4.由于信息比較多,我們可以使用管道將內(nèi)容重定向到文件中 otool -l WeChat > ~/Desktop/123.txt
5.在文件中我們查找cryptid 會(huì)發(fā)現(xiàn) cryptid后面是0,說(shuō)明WeChat文件沒(méi)有加密,非0的數(shù)字代表的app的可執(zhí)行文件是加密的,表示的是app的可執(zhí)行文件使用的是某一種加密方式為1的方式進(jìn)行的加密。
6.我們也可以用管道篩選 otool -l WeChat | grep crypt 此時(shí)可能得到2個(gè)cryptid,表明這個(gè)可執(zhí)行文件有2種架構(gòu)。通過(guò)file WeChat 查看

4.重簽名

1.將Payload文件夾和我們自己的工程項(xiàng)目放到同同一級(jí)目錄下。

3.2_目錄結(jié)構(gòu).png

2.刪除WeChat中插件(Plugin)和帶有插件的.app包(比如Watch)

3.對(duì)Frameworks里面的文件進(jìn)行重簽名。(每個(gè)都要重新簽名)
codesign -fs "Apple Development: xxx@126.com (9FX3697KS2)" ConfSDK.framework

5.注意查看執(zhí)行文件是否有可可執(zhí)行權(quán)限,如果沒(méi)有可執(zhí)行權(quán)限也是簽不成功的。chmod +x 可執(zhí)行文件(給可執(zhí)行文件添加可執(zhí)行權(quán)限)

6.對(duì)整個(gè)app重新簽名。

  • 找剛創(chuàng)建的項(xiàng)目->Products->WeChat.app->show in finder ->顯示包內(nèi)容,將 embedded.mobileprovision 文件拷出,暫時(shí)先放在 Payload文件夾同級(jí)目錄下。
  • 將 embedded.mobileprovision 拷貝一份放在 Payload->WeChat中,替換掉之前的文件。
  • 修改 Payload->WeChat 的build id 改成我們自己的。
  • 查看剛才拷出來(lái)的embedded.mobileprovision文件,找到Entitlements, 使用命令security cms -D -i embedded.mobileprovision
  • 在Xcode中新建plist文件entitlements.plist,將剛才看的權(quán)限dict放到新的文件中。
  • 將 entitlements 文件放在Payload文件夾中,和WeChat在同一級(jí)目錄下。
  • 對(duì) Payload 文件夾下的文件進(jìn)行簽名。codesign -fs "Apple Development: xxx@126.com (9FX3697KS2)" --no-strict --entitlements=entitllements.plist WeChat.app
  • 此時(shí),使用codesign -d -vv WeChat.app命令查看 簽名信息會(huì)發(fā)現(xiàn)簽名信息已改變。
  • 刪除 Payload 文件夾中的權(quán)限文件,退出到 Payload 的上一級(jí)文件夾中,將 Payload 打包成ipa包。zip -ry WeChat.ipa Payload
  • 打開Xcode,執(zhí)行command+shift+2,選擇剛才的ipa包,安裝。

可能出現(xiàn)的問(wèn)題:

  • 第一次安裝是沒(méi)有描述文件的,需要先去信任個(gè)人開發(fā)賬號(hào)。
  • 打開可能會(huì)閃退,原因是描述文件不是Xcode安裝的所以會(huì)閃退,此時(shí)使用Xcode先運(yùn)行下空工程,再次安裝app。

不清楚的地方,歡迎留言評(píng)論
應(yīng)用重簽名

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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