在开发中经常遇到CP的包拿过来少添加了UDID之类的,为了方便测试,需要对ipa重签名,重签名就是把配置文件替换掉(配置文件制作的时候和UDID关联,所以替换掉,就相当于改动UDID,个人理解)。

重签名有多种多样的,

1.工具iReSign

iosipa包重签名 ios app签名_配置文件

界面如下

iosipa包重签名 ios app签名_配置文件_02

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,签名并重新打包。