iOS手動(dòng)重新簽名ipa包

  • 使用Offline砸殼過(guò)的ipa示范
  • 簡(jiǎn)單使用到到命令介紹
codesign -d Offline.app   #查看可執(zhí)行文件路徑
codesign -d -v Offline.app   #查看更詳細(xì)的信息
codesign -d -vv Offline.app  #查看更詳細(xì)的信息,包含簽名信息
codesign -fs “證書(shū)串” --no-strict --entitlements=權(quán)限文件.plist APP包 #簽名.app包
codesign -fs “證書(shū)串” 目標(biāo)文件.framework  #簽名Frameworks目錄下的可執(zhí)行文件
codesign --force --verify --verbose --sign "證書(shū)串" 目標(biāo)文件.dylib  #dylib 簽名
security find-identity -v -p codesigning  #查看本地可用的證書(shū)
security cms -D -i embedded.mobileprovision #查看描述文件
chmod -R 777 二進(jìn)制文件  #給二進(jìn)制可執(zhí)行文件權(quán)限
Zip -ry 壓縮后輸出文件名 要壓縮的文件 #壓縮文件
  • 創(chuàng)建一個(gè)Xcode iOS項(xiàng)目

主要是獲取embedded.mobileprovision描述文件
編譯 -- 真機(jī)調(diào)試 -- 才能生成描述文件


img.png

img.png

有效期只有6天,拷貝embedded.mobileprovision描述文件到Offline.app目錄下


img.png

img.png

修改需要簽名文件夾里面的Info.plist文件,將之前Xcode里面的BundleID替換到Info.plist文件對(duì)應(yīng)的地方


img.png

img.png

修改Info.plist文件后保存


img.png
  • 創(chuàng)建權(quán)限文件
security cms -D -i embedded.mobileprovision  #查看描述文件

復(fù)制紅框內(nèi)代碼


img.png

com + N 選擇創(chuàng)建 XX.plist文件


img.png

切換模式編輯plist文件
img.png

復(fù)制紅框內(nèi)代碼粘貼到plist文件


img.png

切換回來(lái)的模式
img.png

img.14.png

拷貝文件,.plist文件 可以重命名,建議不要有空格
我把Property List.plist重命名為 re.plist
img.png
  • 準(zhǔn)備簽名

  • 簽名注意-免費(fèi)證書(shū)不能簽名的東西

第三方庫(kù)簽名不了,注意檢查第三方庫(kù),沒(méi)有就過(guò)濾掉,有就刪除
例如:Pluglns目錄下的文件
Offline.app/XXX.app下包含有第三方庫(kù) 把整個(gè)XXX.app刪除

  • 可簽名

Frameworks目錄下有.framework可執(zhí)行文件必須一個(gè)一個(gè)簽名

codesign -fs “證書(shū)串” 目標(biāo)文件.framework  #簽名Frameworks目錄下的可執(zhí)行文件

dylib 文件簽名

codesign --force --verify --verbose --sign "證書(shū)串" 目標(biāo)文件.dylib  #dylib 簽名
  • 查看證書(shū)串
img.png
security find-identity -v -p codesigning  #查看本地可用的證書(shū)
  • 開(kāi)始簽名.app
img.png
codesign -fs “證書(shū)串” --no-strict --entitlements=權(quán)限文件.plist APP包 #簽名.app包

這里算把Offline.app簽名完成了
新創(chuàng)建Payload目錄,把Offline.app放進(jìn)去
然后Payload目錄壓縮,壓縮后文件后綴名重命名為ipa

Zip -ry 壓縮后輸出文件名 要壓縮的文件 #壓縮文件
  • 安裝簽名好的ipa
img.png

img.png

安裝的手機(jī) ID 必須是和證書(shū)的一樣,否則會(huì)提示設(shè)備不一,等待安裝完成,安裝完成后手機(jī)桌面會(huì)顯示安裝好的圖標(biāo)

  • 安裝報(bào)錯(cuò)解決

The executable was signed with invalid entitlements.

The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).

注意BundleID 包名不能有非法數(shù)字開(kāi)頭
重新檢查編寫(xiě)的權(quán)限文件.plist 是否有錯(cuò)誤

  • 制作越獄版ipa

只需要對(duì)砸殼的二進(jìn)制可執(zhí)行文件重新簽名就可以了

codesign -fs “證書(shū)串” 可執(zhí)行文件 #簽名二進(jìn)制可執(zhí)行文件
img.png

前提需要安裝有AppSync Unified插件(第一次安裝需要重啟才生效)
不簽名可能會(huì)安裝失敗或者打開(kāi)閃退
.app 目錄下的embedded.mobileprovision描述文件刪除
Payload
-----xxx.app
壓縮后,后綴名重命名為ipa

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 簽名前言: 1.獲取ipa包的渠道 a.助手下載,各種助手;例:PP助手(非加密的) b.從越獄手機(jī)里面拷貝!(加...
    OXHO閱讀 7,865評(píng)論 11 6
  • 聲明:此文章僅是學(xué)術(shù)探討類(lèi)文章,僅僅用于學(xué)習(xí)研究,也請(qǐng)讀者不要用于商業(yè)或其他非法途徑上,否則一律與筆者無(wú)關(guān)。 Ap...
    黑夜夢(mèng)閱讀 1,662評(píng)論 0 2
  • [TOC] 先來(lái)學(xué)習(xí)下三個(gè)重要概念:public/private keys, entitlements, and ...
    一吻江山閱讀 2,089評(píng)論 0 0
  • 為什么要重簽名? 1、在沒(méi)有源代碼的情況下,你已經(jīng)對(duì)某個(gè)應(yīng)用進(jìn)行了資源修改(比如修改了啟動(dòng)圖或圖標(biāo)等)。修改完成以...
    Yochi閱讀 8,733評(píng)論 9 11
  • 七律·長(zhǎng)征作者: 毛澤東紅軍不怕遠(yuǎn)征難,萬(wàn)水千山只等閑。五嶺逶迤(wēi yí)騰細(xì)浪,烏蒙磅礴(páng bó)...
    冰雨9527閱讀 867評(píng)論 0 0

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