iOS 应用重签名

471 阅读1分钟

应用重签名前,首先确定当前应用是否已经被砸壳,必须已经被砸壳的应用才能签名成功。

1.首先确定一个签名的证书以及一个此证书对应的描述文件,例如开发证书对应的开发描述文件。

2.security cms -Di (.app包里的embedded.mobileprovision),拷贝Entitlements下的那个中的内容,创建一个entitlements.plist,把中的内容写进entitlements.plist,再把entitlements.plist和.app放在同一目录下。

3.替换掉.app包里的embedded.mobileprovision(将步骤1里的描述文件改名为embedded.mobileprovision替换原先的embedded.mobileprovision)。

4.修改.app包中info.plist的Bundle identifier为步骤1描述文件对应的Bundle identifier(APP ID去掉前面的team id那部分)。

5.chmod +ax (.app包里的Mach-O文件),增加一个执行权限,所有人都可以执行。

6.先签framework:codesign -fs (步骤1中对应的证书) framework,再签应用:codesign -fs (步骤1中对应的证书) --no-strict --entitlements=entitlements.plist (应用名.app)

此时.app已经签名成功了,可以直接利用xcode的cmd+shift+2启动device的面板来安装应用。 或者zip -r (应用名.ipa) (.app所在路径)来生成ipa。

security find-identify -v -p codesign 这个指令可以查看mac中的证书。

otool -l 「Mach-O文件」 | grep crypt 这个指令可以查看mach-o是否加壳,0为未加壳。

删除.app包中的插件及带有插件的文件(比如Watch,PlugIns),你可能无法签名成功。