有没有办法知道用哪个证书应用程序签名?
我想防止应用程序因其他开发者证书而辞职。
假设我们有客户端服务器应用程序。服务器保留与开发人员证书关联的唯一密钥。
因此,对于服务器的每个请求,我们都将传递此密钥,如果将应用程序与其他开发人员的证书重新组装在一起,则服务器将知道这一点。
这个有可能?还是有另一种防止辞职的方法?
通过手动解析embedded.mobileprovision
应用程序捆绑包中包含的文件中的数据,您可以了解用于对应用程序进行签名的证书和配置文件。如果浏览文件,将看到有关证书和配置文件的信息。
以下是如何以编程方式从应用程序中获取嵌入式配置文件数据的示例:
NSString* bundleDirectory = [[NSBundle mainBundle] bundlePath];
NSString* db = [NSString stringWithFormat:@"%@/embedded.mobileprovision", bundleDirectory];
NSData* data = [NSData dataWithContentsOfFile:db];
// parse through the data to get your provisioning profile info. I'd recommend opening up the profile that is inside your .app to see how it is structured.
然而:
我不确定您为什么需要这样做,因为除非有人拥有正确的证书以匹配为您的应用程序包ID设置的配置文件,否则没人可以重新签名您的应用程序。
唯一的方法是拥有拥有捆绑包ID的Apple开发人员帐户的凭据,或者如果有人“无法访问”您的证书和配置文件,则拥有该凭据。
如果发生后者,我相信您应该从apple开发人员帐户中撤消该配置文件,并创建一个新的解决方案来解决安全漏洞。这样,只要您有权访问开发者帐户,就可以始终以这种方式破坏这种安全性,而不必在客户端和服务器之间编写代码来检查它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句