研究中常常遇到CP的包拿過來增加UDID之類,為了便于測試,需對IPA重簽名。重簽名就是將配置文件替換。
企業簽名小編表示配置文件在加工時和UDID相連,因此替換掉,就等于改動UDID。
1.工具iReSign
界面如下
1.就是ipa的路徑,點擊瀏覽就能添加
2.就是新的配置文件的路徑
3.是entitlement.plist的路徑
4.重新修改成的APPID ,后面要打對號(如果需要修改APPID的話,同樣開發者賬號中要新增或者修改成新的APPID)
5.就是所對應的證書,雙擊導入到鑰匙串,這里自然會顯示,如果不顯示,關掉iReSign再打開就可以了
一般只需要設置1 . 2 . 5,點擊重新簽名即可。不可多簽,會報錯,這類錯解決方式就刪了重新弄。
2.終端命令行,相對簡單,需要記憶,一下操作都是在終端進行。
1.解壓ipa包(這里用zz.ipa作為舊的ipa)
命令行: unzip youApp.ipa (youApp.ipa就是你的ipa路徑,拖進去即可)
2.刪除解壓后包內的_CodeSignature文件夾,解除之前的簽名
命令行: rm -rf Payload/YourApp.app/_CodeSignature (如果報錯,Payload前加上解壓的路徑即可。MyApp指的是解壓payload內的包名
3.替換解壓包內的配置文件
命令行: cp ~/Downloads/AdHoc.mobileprovision Payload/YouApp.app/embedded.mobileprovision
Downloads/AdHoc.mobileprovision 新配置文件路徑(這里在Downloads放,根據個人位置改動)
MyApp.app MyApp指的是解壓payload內的包名,ipa名稱可以改動,這里并不一定就是ipa的名字
embedded.mobileprovision舊的配置文件
4.簽名 codesign -f -s “證書名字” 目標文件
命令行: codesign -f -s "iPhone Developer: shize zhong (EMDFFQCRZQ)" /Users/hfios/Desktop/Payload/YouApp.app
MyApp指的是解壓payload內的包名
成功后的提示如下
/Users/hfios/Payload/YouApp.app: replacing existing signature
5.壓縮成ipa
命令行: zip -r new.ipa Payload
完成后查找new.ipa就是新的ipa
PS:前三步可以手動操作,點擊ipa,右鍵打開方式,歸檔實用工具 。 然后會有Payload文件夾,點開,里面的文件單機右鍵,顯示包內容。刪除里面的配置文件和簽名文件,并把新的配置文件拖進去,保存。
3.可用sign腳本(網上爬的,這里沒做嘗試,看著可行)
安裝好brew,先用brew安裝ruby,然后用gem安裝sigh。(brew去網上搜一下)
1、brew install ruby
2、sudo gem install sigh
使用就非常簡單了:
1、輸入sigh resign,回車
2、把要簽名的ipa文件拖到窗口上,回車
3、填寫用來簽名的證書,回車
4、把embedded.mobileprovision文件拖到窗口上,回車
5、好了,resign腳本會自動更改bundel id,簽名并重新打包。