第一步:解压iPa包
unzip example.ipa
第二步:替换证书配置文件。配置文件名必须为embedded.mobileprovision
cp embedded.mobileprovision Payload/example.app
第三步:修改重签后ipa包的bundle identifier(这一根据情况可以跳过)
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
打包完毕!如果以上对你都一目了然,这篇文章你就读完了!
简单总结一下:重签都需要需要准备哪些东西?
待重签ipa,配置文件(embedded.mobileprovision),授权文件(entitlements.plist),证书名称。一共四样!
下面说一下授权文件。授权文件长这样的:
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>
详细信息参考代码签名探析
关于iReSign,亲测了一下,发现签名是ok的,签名后的包使用codesign --verify example_resign.app验证也是没问题的,但上传到蒲公英后死活下载不来,建议可以放弃这个方案了!(如果你使用iReSign成功实现了重签名,请告诉我)!
附上几个关于重签名的实用命令
查看本地所有能对代码进行签名的证书:
security find-identity -v -p codesigning
查看一个可执行文件签名状态信息:
codesign -vv -d example.app
检查签名app签名是否完好:
codesign --verify eample.app
查看签名信息中包含了什么授权信息:
codesign -d -- entitlements - example.app
查看mobileprovision文件信息命令:
security cms -D -i exaple.mobileprovision
网友评论