1、情景一

第一步:创建一个测试项目,添加一个全局变量num
截屏2022-06-07 22.24.47.png第二步:编译得到.app包
第三步:将.app包放到Payload文件夹中,压缩生成.ipa文件
截屏2022-06-07 22.25.27.png
第四步:使用Xcode将.ipa文件安装到iOS设备上截屏2022-06-07 22.26.01.png

Xcode - Window - Devices and Simulators

这个流程.ipa文件可以被正常安装到iOS设备上。

2、情景二

第一步:编译得到.app包,利用MachOView打开.app包中的可执行文件,将全局变量num在内存中的值修改成10
截屏2022-06-07 22.27.33.png截屏2022-06-07 22.27.17.png
第二步:将.app包放到Payload文件夹中,压缩生成.ipa文件
截屏2022-06-07 22.28.55.png
第三步:使用Xcode将.ipa文件安装到iOS设备上
截屏2022-06-07 22.29.28.png
这个流程.ipa文件不能被正常安装到iOS设备上

3、总结

通过控制台查看安装.ipa文件时的报错信息:
截屏2022-06-07 22.31.02.png
可以看到是因为.app包被修改,导致了签名验证不通过,如果想修改.app包后仍然可以被安装到非越狱的iOS设备上,就需要进行重签名。

注意: .app包中的可执行文件必须是经过脱壳的,重签名才会生效。 .app包内部的所有动态库(.framework、.dylib)、AppExtension(PlugIns文件夹,扩展名是appex)、WatchApp(WatchApp文件夹)都需要重新签名。