小白请教,MonkeyDev打包出的ipa中为什么要包含原ipa

用MD打包完ipa发现是原来的2倍多,然后解压看了一下,里面还包含了原来的xxx.ipa文件。之后我试着删除所包含的原ipa,重新压成ipa后发现就不能安装了。
特来请教大佬,希望能指点一二。谢谢。

1、MonkeyDev是一个工程,拖进去的.app包相当于一个资源文件,所以编译后的产物(.app包)中带有另外一个.app文件

2、移除.app重新压缩相当于破坏了外层.app的签名(对整个包做的哈希),该签名存在于_CodeSignature文件夹中,需要重签名

感谢大佬的指点,重签之后果然可以了。
还有一个问题请教,如果我不想MD打包时包含原ipa,我应该修改哪里呢?

MonkeyDev是空的主工程+dylib,Xcode启动的是product下面的.app,原理大概是把包含的ipa解压出app替换Xcode工程的空app达到替换空app从而启动包含app的效果再注入dylib。

1 Like