在开发中经常遇到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,签名并重新打包。