第一步:解壓iPa包
unzip example.ipa
第二步:替換證書配置文件担神。配置文件名必須為embedded.mobileprovision
cp embedded.mobileprovision Payload/example.app
第三步:修改重簽后ipa包的bundle identifier(這一根據(jù)情況可以跳過)
open Payload/example.app/info.plist
第四步:重簽名纠炮。
codesign -f -s "iPhone Distribution: Hangzhou Ouer Technology Co., Ltd" --entitlements entitlements.plist Payload/example.app
第五步:將Payload重新打包
zip -r example_resign Payload
打包完畢!如果以上對你都一目了然办悟,這篇文章你就讀完了驱富!
簡單總結(jié)一下:重簽都需要需要準(zhǔn)備哪些東西?
待重簽ipa,配置文件(embedded.mobileprovision)扁远,授權(quán)文件(entitlements.plist),證書名稱。一共四樣刻像!
下面說一下授權(quán)文件畅买。授權(quán)文件長這樣的:
Executable=/Users/chiyou/Desktop/xxxx/Test 2016-05-04 00-11-33/Payload/Test.app/Test
??qq?<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/ PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>V9LX9F46VG.com.ouer.www.Test</string>
<key>com.apple.developer.team-identifier</key>
<string>V9LX9F46VG</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>V9LX9F46VG.com.ouer.www.Test</string>
</array>
</dict>
</plist>
詳細(xì)信息參考代碼簽名探析
關(guān)于iReSign,親測了一下细睡,發(fā)現(xiàn)簽名是ok的谷羞,簽名后的包使用codesign --verify example_resign.app驗(yàn)證也是沒問題的,但上傳到蒲公英后死活下載不來,建議可以放棄這個方案了E榷小(如果你使用iReSign成功實(shí)現(xiàn)了重簽名犀填,請告訴我)!
附上幾個關(guān)于重簽名的實(shí)用命令
查看本地所有能對代碼進(jìn)行簽名的證書:
security find-identity -v -p codesigning
查看一個可執(zhí)行文件簽名狀態(tài)信息:
codesign -vv -d example.app
檢查簽名app簽名是否完好:
codesign --verify eample.app
查看簽名信息中包含了什么授權(quán)信息:
codesign -d -- entitlements - example.app
查看mobileprovision文件信息命令:
security cms -D -i exaple.mobileprovision