For security reasons, you need to code sign your application or sign your updates with a DSA key. See Sparkle’s documentation for more information.
按照上面的提示信息就可以知道大概是出了什么问题了,问题的关键在于修改之后的应用去掉了签名信息,因而在启动的时候弹出了这个东西。
按照提示信息可以通过签名或者通过dsa签名来解决问题,但是通过hopper去掉签名信息之后的ipa重新签名报错了:
obabydeiMac:~ obaby$ codesign -fs "iPhone Developer: Obaby (aabbccddeeff)" /Users/obaby/Desktop/imazing_crack/iMazing_crack_remove_signature
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate: file not in an order that can be processed (link edit information does not fill the __LINKEDIT segment): /Users/obaby/Desktop/imazing_crack/iMazing_crack_remove_signature
/Users/obaby/Desktop/imazing_crack/iMazing_crack_remove_signature: the codesign_allocate helper tool cannot be found or used
出现这个问题并不是签名工具出错了,而是hopper生成二进制文件时去除签名信息过程中导致的LINKEDIT段错误。对比文件会发现出了自己修改的汇编代码还有别的数据一起被改掉了,并且被改掉的数据还是挺多的。要解决问题也很简单,生成可执行文件的时候不要去掉签名信息。
点击Cancel来生成带着签名信息的文件,此时虽然签名信息是错误的,但是通过xcode的codesign工具对生成的文件重新签名就ok了:
/Users/obaby/Desktop/imazing_crack/iMazing_crack_with_sinature: replacing existing signature
再次运行app,那个蛋疼的窗口就没了。当然还有另外的办法就是通过修改sparkel更新sdk来实现去掉这个窗口,相关sdk的内容可以看这个链接:https://sparkle-project.org/documentation/
之所以能够直接带着签名处理是因为这个应用不是通过appstore下载的,虽然是带着签名信息但是并没有加密代码因而并不需要进行解密之类的相关操作,而修改完之后用自己的xcode账号重新签名就可以了。